05年毕业,到今年12年了,对一个人的工作经验来说,不长不短。一直想写个十年总结,但迟迟没有动笔,受某偶像刺激,好好整理一下日常的点滴,写下这篇狗尾续貂之作。愿我走过的弯路不会有人再走,愿我的翅膀能帮助别人飞过和我一样飞过的高山。

05年毕业,到今年12年了,对一个人的工作经验来说,不长不短。一直想写个十年总结,但迟迟没有动笔,受某偶像刺激,好好整理一下日常的点滴,写下这篇狗尾续貂之作。愿我走过的弯路不会有人再走,愿我的翅膀能帮助别人飞过和我一样飞过的高山。

 

聊聊工作那点事(一):面试与工作的坑

 

面试经验谈:

  1. 面试经验要“有条理”  

     这些年,我面试了很多人。当我看着那份或“丰满”或“纤瘦”的简历,总是会问这样一个问题:“你先做个自我介绍吧”。我得到99%的回复是,流水账式的介绍。当我在聆听对方经验分享的时候,插上这样一句话“有没有想过其他方法和其他方法的缺陷”。只有很少的人,能举一反三的把想关方法都从头到尾的分析优劣。

       有一次,我和一个长辈一起面试一个人,我看那个长辈一直在静静地听,不论对方说的对错,都是静静地听。从不打断。事后,他和我说,不管说的对不对,他就是想听听,他经验的条理,他觉得,如果面试的时候都没有条理,平时处理问题,条理性也不强。这个判断姑且放在一边。但是面试中,经验的条理性,非常重要。那么,什么是经验有条理呢。比如五年前我想介绍我的优化技术,出了一开始我会把想关工作经验快速介绍一遍。然后我会按照我的的逻辑,把优化分为算法优化和非算法优化。

  1. 算法优化可以分成周期性算法优化和非周期性算法优化。
  1.      1.  周期性算法优化指余弦类变换优化,比如fit,dct,二维dct,mdct,mclt,qmf等,都是这类变换,通常利用公式的周期性进行优化,fft比较简单,可以用库。其他的可以转为fft优化。但是有时转为fft优化不如直接利用公式周期性方便。甚至不好处理。比如mp3的mdct是base 3的算法。用一般的fft是画蛇添足。等等。这时我会结合我的工作经验,哪个哪个项目,我是怎么怎么做的。
  1.      2.  非周期性算法优化指超越函数的优化,主要有两类,熵编解码算法优化和量化算法优化(指数量化器,除法量化器,三角函数量化器)这两类算法多用查表法或泰勒级数展开法(量化适用)。但是查表法有什么弊端,有什么优势,泰勒级数展开有什么优势弊端,什么时候适用,我们可以结合我的工作经验再加以介绍。然后是算法系统优化,比如在作ac3在私有芯片的优化,就是调整了整个bit allocation的算法,把基于算法的实现改为基于数据的实现打到多次内存吞吐改为2次内存吞吐。提高解码效率。
  1. 非算法优化包括
    1. 数据并行,MIPS/TI/ADI/ARM/ST的芯片的SIMD介绍。仔细分,这些芯片的SIMD特点都不一样。甚至ARM一款CPU架构不同版本的差别都很大。结合具体经验介绍。比如在ARMv5TE和ARMv7架构上,优化分别遇到什么问题。
    2. 指令并行,这类主要是指super scalar架构的芯片,例如ZSP,Tensilica,CEVA等,特点是AGU和ALU单元各一个ALU,把数据地址计算和数值计算并行起来。但是不同的CPU 数据加载位宽和指令加载位宽不同。有的是64bit加载,有的是128bit加载。提高片內内存吞吐效率等等。
    3. 任务并行,利用多核。
    4. 系统优化,针对浏览器,网络等模块的优化。这块不是我的善长的部分。(技术介绍不是本文特点,我只是想花不多不少的笔墨说明经验条理性的重要性)

          如果我要介绍编解码技术,则有语音编解码,有音乐编解码,为什么这样分,语音编解码有ITU的G系列,AMR/EVRC等3GPP系列,有超低码率系列,有开源VOIP宽带系列。都有什么特点,算法有什么优劣,怎么选择,怎么学习。音乐编吗,有唱片的dolby系列,dts系列,有mpeg系列11172-3,13818-3/7,14496-3,有无损系列,如果把编解码分为E(熵编码器),P(预测算法),T(变换算法),Q(量化器)作纵坐标,横坐标是各种标准。我们是不是可以设计出一种基于音频编解码的玩具出来。叫做技术找差异。然后把这种学习和总结的方法介绍给面试官,是不是会有眼前一亮的感觉。如果能把知识点和差异化作纵轴,项目经验为横轴,立体化介绍,效果会非常好。

 

       2.  功夫在线下,多利用“喝咖啡”的时间

      面试的时候,面试官会问面试人员有什么业余活动。就算不问,在例行的问题考察里也能看出面试人员对技术的投入。是否有触类旁通。而这类触类旁通是需要时间保障的。对音频算法而言,AAC和MP3有什么区别,和AC3有什么区别,语音编码器和音乐编码器有什么区别,ILBC,SILK,Opus,AMR有什么区别,不同的FEC有什么区别等等,时间总是很有限,工作只是工作的时间。很多内容需要线下补。很多触类旁通的标准,都是线下

       在公司,我最佩服两个人,一个是冯大哥,一个是刘大哥。碰巧这两个人都做过水木清华C++板块的版主。我佩服刘大哥的原因是,上班时间,你看他,他在coding,下班时间你看他,他在看C++的ISO标准文档。出了吃饭和马拉松,他永远在技术的道路上。所以,无论多难的语法问题,刘大哥被我们评价为“专治各种不服”。在这个浮躁时代,可能买车买房成了我们生活的主旋律。刘大哥的做法像是一股清流。告诉了我们经验为王的真谛。

       3.  对自己要有“全面概括”

  很多时候,一句话的全面总结不经常出现在面试中。但自己能做什么,适合做什么,什么是强项,如果你能一句话总结甚至化一张图。不仅让对方便于了解,也是对自己的一种交代。五年前,我用了一个画饼图的方式介绍我自己。这种方法只适用一定经验段。

        4. 工作要有“成就感”

       工作了几年也好,十几年也好。要有成就感。越年纪大,约容易。但是无论时间长短。如果连一件给自己印象最深,或是收获最大都没有是非常不合适的。一定要有一个属于自己认为最好的“第三个小木凳”。并深刻的能说出,为什么他是我们心中的第三个小木凳。

        5.  做一个“面试狂”

          年轻时(姑且认为是6年经验以下的时候),要多面试。不要认为没有诚意入职的面试可耻。一次面试,大有学问。从面试官的角度出发,可能他的目标本身就不是招人,是学习(面试官也要学习),是了解。HR 要摸清行业薪资水平,也许猎头需要通过可面试人的数量拿到回报(不是不可能哦)。一次,面试是给所有人一个了解和纠正自己错误的机会。

          曾经,我几乎每个月就会面试一次,面试有很多好处,第一,帮你了解你有哪些不足。记得有一次,我那时对cache的理解还不深,虽然我知道重要,但是总是不重视。终于,一次面试问到了。我没解释好。回来,我仔细的补了一下cashe的结构,cacheline,什么时候用cache,速度,成本,软件使用技巧,硬件和SRAM的成本比较。不久,公司內的工作就用到了。第二,面试帮你了解行业发展,也许你认为你的行业很好,但是面试了,你就知道,哦,原来那个“山”更好。第三,面试帮你调整心态,也许,你会认为你工作的很累,很不公平,但是出去看看,你会发现,原来自己是多么的幸福。第四:面试能帮你了解薪资水平。第五:面试给面试的双方带来机会。一次成功的跳槽不容易。但是一次成功的面试相对容易。工程师的很多朋友,难道不是面试和被面试时交下的嘛。“世界这么大,要出去看看”。

 

 

工作选择:

很多人(相对的)喜欢选择大公司,虽然这些年已经变化很大了,越来越多的人选择创业公司,选择小公司。其实我这里想说的不是选择公司大小,选择创业公司就一定对。相反有些时候,大公司也非常好。那么该怎么选择公司。

  1. 没有大公司,只有行业和现金流

   我工作过的公司有台湾的嵌入式系统公司(全球3台家用路由器是他们O的),有曾经全国前三芯片设计公司,有初创的芯片设计公司,有残念的国际巨头,有圈内很有名气软件公司,有一鸣惊人的互联网公司。算是个行业“老油条”了。我的经验告诉我,没有大公司,只有行业和现金流。motolora和诺基亚的到下,是股东不看好公司,不愿意再投资,并不是他们本身不赚钱。当时moto和nokia还都有相对的现金奶牛,裁员和倒闭是波及不到他们的。broadcom的芯片裁员,intel的裁员,阿里解散阿里星球也是一个道理。大公司,纵然有几万人。我们也是其中一个部门的一员。公司赚再多的钱,如果我们所在的部门亏钱,一样裁员。不要图公司的虚名。

  

      2. 没有大公司,只有好老板

       很多人意识到这一点了,cc某v上充斥着要当老板司机的新闻。抛开这些杂音不说,快速员也能跟着老板去纳斯达克敲钟。我记得有个朋友,离职前和我吐槽。12年的时候,某杭州公司,收入是百度的七分之一,利润出奇的高。你说是好公司还是差公司。我那个朋友一手给他们搭建起音频系统。就给3500的薪水。跳槽的时候,我朋友说,给涨30%就留下了。但是他老板是信佛的,劝我朋友不要太在意钱财。我朋友离开了,现在是某讯一个音频组的组长了。后来这个公司再招人的的时候,逐渐的,开到1w招人了。哎。

老板,懂你很重要。

 

      3. 没有大公司,只有好职位

       面试过很多外企的员工,很多名校毕业的,我个人出身也就是一个普通的211。我既不对名校崇拜,也不想高抬自己的身价。在当今的现行体制下,可以说,至少名校证明过他们曾经很“聪明”。但是就是这样聪明的毕业生,长期在外企的体制内,只能作“体制内”的一小块技术,这里的小不是指那种小而精的技术。而是无法在外部被用到的技术。除非,这块技术能单独售卖,比如无线模拟芯片集成调教。小而窄。但是更多大公司体制内技术,既无法单独售卖,也不能为外部使用。长期的惯性思维,用费了这些聪明人。如果一旦一个行业出了问题。至少,我非常替他们惋惜。

 

      4. 工作选择,我要什么。

     05年的时候,CCTV总是采访,某某是外企高管。后来变了,CCTV总是采访,某某是互联网公司高管,后来又变了,某某是90后创业天才。本文无意评估采访选择的正确性。

我想说,紧跟时代脉搏,你能看到,市场变换的趋势。11年,我们公司很早就拿到了PC增长变缓,平板上升的报告。虽然,没有裁员,pc增长变缓。pc软件的行业一定会是冬天。

   选现金流,选行业,选老板,选职位。

   不知道大家有没有这样的感觉,当你有一个点子的时候,上网一查,好多人有同样的想法。中国,最不缺的就是聪明人,要动手,早做打算,选行业,宁愿选择两三点中的太阳。引用我们公司著名BD的一句话,“起来晚,汤都没了”。。。。。。。。。。

 

下一篇章,聊聊工作那点事(二):薪水与股票的坑