规划你的职业生涯:驾驭你的“职场布朗运动”(4)

发表于:2012-12-19来源:51CTO作者:李云点击数: 标签:职业
E-Box是一个企业级电话交换产品,其中还存在一块基于ADSL的互联网接入数据板(与现在的ADSL猫功能一样),用于实现企业网对互联网的数据接入功能,这一数

  E-Box是一个企业级电话交换产品,其中还存在一块基于ADSL的互联网接入数据板(与现在的ADSL猫功能一样),用于实现企业网对互联网的数据接入功能,这一数据板使用的是VxWorks5.5.0实时操作系统(PNE 2.0),处理器是Intel的XScale IXP425。那时VxWorks的IP协议栈还是基于BSD的,但Wind River对之做了一定增强。这段时期我的工作重点全在IP协议栈上(《TCP/IP详解》这套书帮上了大忙)。这一时期的开发经历,让我对PNE的Bridge、FastPath、MUX、PPPoE协议、Radix路由算法和VLAN协议很熟悉,也学会了用SmartBit仪器和Chariot软件做网络性能测试。总之,让我对IP(v4)协议栈方面的知识和软件实现有了长足的进步。

  E-Box产品数据板上的开发工作进行了半年后,管理层决定放弃,于是我被调到了E-Box产品的软件平台组。那时平台组刚好面临一个比较麻烦的问题 — 在命令行上运行reboot命令后,有时会出现整个系统挂起,而不是期望的重启。平台组的同事花了一个多星期的时间仍没有解决这一问题。

  进入平台组之际,同样是在没有任何人安排的情况下,我自己主动承担解决reboot命令功能异常的工作。在我的职业生涯中,我一直热衷于去解决别人难以解决的技术问题,因为我的职场第十七感悟:越难的技术问题,其所蕴藏的知识越丰富,也越具学习价值。经过一天半的时间,问题被解决了。其根源在于,reboot之前没有禁用CPM协处理器。我能那么快地解决这一问题,完全是因为之前熟读过PowerPC 8250处理器的资料。

  我在UTStarcom工作的后期,致力于ACE在E-Box产品中的一些应用,借助ACE的网络通信功能帮助实现在Windows平台上通过Visual Studio调试E-Box产品。我在《专业嵌入式软件开发》一书的《可开发性设计,一种高效且经济的开发模式》一章中所阐述的内容其实就是这一工作经历的总结与延伸。

  另外,我还在E-Box产品上做过难度比较大的一个特性是,利用PowerPC 8250的MMU功能在VxWorks操作系统上实现了对任务栈的保护 — 当一个任务被调度而处于运行状态时,它的栈就处于可读写状态,而其他任务的栈全处于只读状态(VxWorks5.5.0内核中,还没有RealTime Process的概念,这一概念是从6.0开始有的,所以那时我所做的这一特性很具实用性)。通过这一特性,可以有效地防止任务栈被意外篡改(比如野指针操作),即便出现篡改也能尽早发现根源。这个功能的实现过程需要调试VxWorks内核,那时VxWorks的源码虽对公司提供,但Wind River公司对所提供的GNU的binutils做了特殊处理,使得无法为内核代码生成调试所需的信息,结果是无法对内核进行源码级程序调试。由于我之前的RTEMS操作系统移植经历让我对binutils非常熟悉,通过使用一定的方法(说来话长了)绕过了Wind River公司所设置的障碍,成功地实现了对VxWorks的源码级程序调试。

  在职场中,我不时能成功解决复杂问题和克服技术障碍。我的职场第十八感悟:每次积累的点滴知识,一定会在将来不知不觉地发挥效能。

  2006年4月份左右,我离开了UTStarcom。在UTStarcom所学到的,不只是前面所介绍的那些技术知识,更让我知道了软件开发的“正规军”是怎样的,与小公司相比,UTStarcom的软件开发流程要正规得多;也经历了英文写作的“挤牙膏”时期过渡到轻松时期(好友周海东在我的英语学习中帮了不少忙);看到了好友于善成如何通过大量阅读成为一个知识渊博的人(他的阅读量现在仍是我的学习榜样);还有上司夏青的技术敏感度到现在仍让我为之称道,是我职场至今所见过的二位具有良好技术敏感度的技术管理者之一(另一位是我在Motorola工作期间认识的,后面会谈到他);团队实力之强使得开发出的E-Box产品在我离开UTStarcom后不时能听到正面的评价。

对了,我在大立公司工作时期,就很注重软件设计文档的编写,而且在我离开之时,不仅完善了所有文档,还为后继同事做了全面的培训。我始终坚守我的职场第十九感悟:通过文档化的方式传承知识给后继者是你的基本责任,因为你作为后继者时也希望如此,这也是对自己负责的一种表现(文档的重要性请参见《该死的“代码就是文档”》一文)。在UTStarcom工作期间,我进一步形成了将自己的技术想法写成文章与大家分享的习惯(那时同事贺旭东称我为“作家”,而我则称他为“点评家”
),也因为自己在嵌入式软件开发技术上的长期点滴积累,开始有了写书的想法。

  离开UTStarcom后,我入职了杭州华数集团旗下的雷科通技术(杭州)有限公司。公司当时的意向是安排我负责某宽带接入产品的软件开发工作。在这个公司,尽管只有两个月的时间但也做了些事。除了一个月内完成了宽带接入产品以太网交换芯片在VxWorks操作系统上的驱动开发,并使得产品支持VLAN功能外,还解决了好几个影响整个产品系统稳定性的严重遗留缺陷。这两个月的工作不光让我在技术团队中很快地树立了自己的威望,也使得公司高层管理者真切地看到了我的能力而在我提出离开时极力地挽留。这短暂两个月的工作经历带给我职场第二十感悟:别人对你价值的认可,其实不是简单地根据你的自身能力,而是根据你对他人和团队的贡献。

  入职2006年初在杭州成立的Motorola研发中心的故事得从面试开始。在入职雷科通不久,我收到了猎头的电话,虽然那时并没有换工作的想法,但也没有拒绝猎头投简历。随后我收到了Motorola的面试电话。那次面试过程记得很清楚,因为那是我所经历的第一次英语口语技术面试。虽然工作中从没有锻炼过英语口语,好在对于自己做过的技术知识很熟悉,也经常需要查阅英文资料,所以对于所做过的内容还能用英语勉强解释清楚。在面试的最后,我对印裔技术面试官说,“现在我的英语口语不好,但我相信只要有合适的环境,能很快地提高”。印裔技术面试官最后将我领到HR那,说了一声“Yes” — 我的技术面试通过了!

  面试结束的第二天,收到了Motorola HR的电话,告知Offer的相关信息(我的入职级别是E09,E09及以上的人在整个Motorola杭州研发中心占比大约为10%)。那时由于并没有换工作的想法,所以拒绝了Offer。想法很简单,因为曾在UTStarcom这样的公司呆过了,所以对外企的工作并不是很向往,反而认为在雷科通这种小公司更能施展。在我拒绝了Motorola的Offer后,我将这件事告诉了身边的同事,他们的反馈几乎都是“你应当去Motorola”。

原文转自:http://www.ltesting.net