谈谈工作

本文是之前的文章『谈谈大学』的姊妹篇。也是拖了非常久。才下定决心,写上一写。

我的工作历程不算太长,但也不短。11年工龄。30岁出头,要写这么篇文章,事实上非常尴尬。

刨去创业两年时光,我也就是9年在企业里工作的经验,更尴尬的是,这9年时间我就呆了两家公司。并且还在同一行业。这在瞬息万变的IT公司看上去比較少见,所以所述未必合大家的心。

为了便于描写叙述。我还是以时间为轴。来展开讨论。

本篇先讲我在神州数码的经历。

在『谈谈大学』里我说到本科毕业后。自己便增加了神州数码网络公司(DCN)。DCN前身是联想网络,脱胎于中科院,有浓郁的研发背景,相对于神码大家庭来说,DCN像是个正在创业的小兄弟。03年正是郭总(郭为)踌躇满志一展拳脚的时候 —— 与联想的「兄弟盟约」业已到期,便迫不及待杀入PC市场;同一时候眼红于正在兴起的移动市场,也玩起了手机,结果多线作战节节败退。巨额亏损,財报上单单为手机业务就计提上亿港币(这些也要归功于麦肯锡给定的战略啊)。「计提」这样的高大上词汇。我是这时掌握的。神码大环境的状况尽管不佳。DCN的小环境却非常好,非常「联想style」地被称作是二级火箭,相对于整个公司的主营业务 —— 分销这个现金奶牛,DCN算是神码的未来。所以氛围相对宽松。接触的HR姐姐,程序猿哥哥都非常nice。

初入公司懵懵懂懂间我就被集合做了为期一周的「入模子培训」—— 这是联想系经典的企业文化培训,非常多鸡汤,非常多正能量。如今大家被过多的鸡汤搞得逆反。闻「汤」变色,唯恐避之不及。事实上,仅仅要带着脑子听,鸡汤还是蛮好的。反正一周的培训下来。我是感觉收获非常多。要在一个企业做好。你须要接受它的文化,并怀有工作的荣誉感。柳总(柳传志)说的非常多话:「企业是个模子。你来了以后,必须融入到我们企业的模子其中」,「办公司就是办人」。「垒一层土,夯实,再垒一层」等等我都是非常认同的。在「入模子培训」里。我最大的收获是认识了一群「书生意气。挥斥方遒」的才子佳人。11年来,风云变幻,我们依然相互关心,肝胆相照。

培训完毕后,能量满满地投入工作。DCN当时在主打路由器和交换机,我被分到了路由组,主要负责接手即将离任的一个project师xiahm手上的OSPFv2(一个路由协议)。而他。也顺理成章地成为我的mentor。

他给了我非常大的帮助。尽管在学校里我已经累计了非常多开发的经验,但并未真正接触过协议(使用socket接触到的tcp/ip不算),也没读过Linux kernel,所以面对由linux + gated(一个开源路由协议平台)组织起来的路由器系统是两眼一抹黑。xiahm尽心尽责,手把手把我领入了行。

人生中总是非常多「第一次」让你难以忘怀,比方说第一个mentor,第一行执行在商业系统里的代码。当我为解一个bug第一次提交了代码,并在凝视中写下了自己的大名,别提多兴奋了。

一个月后,我领到了第一笔试用期工资,扣完税后大概不到两千五。这相对于我还在进行中的兼职项目每月能拿到的不菲收入,简直不值一提。

只是,兼职项目能给我收入。却给不了我成长空间。做人和做公司事实上也非常相似,是牺牲成长性换取高收益,还是牺牲收益换取高成长性?各有利弊。

人生的不同阶段须要做不同的选择。这选择是非常个人的选择。

那时回龙观的房子三居室一千八,我和两个同事zhangchi和chenyj合租。zhangchi是硬件部门的,chenyi和我都是软件部门的。我和chenyj经常会讨论些软件的问题,所以聊得多些。他经常劝我花五万元买个回龙观经济适用房的号。然后贷款买房。我认为回龙观这样的鸟不拉屎的地方还要2600元/平,简直是打劫,坚决不买。

如今想想自己那时真是井底青蛙。世界观无比狭隘。就想着亚运村的花花世界,看不起回龙观的荒凉贫瘠。一年以后,我以差点儿类似的理由拒绝了女友在天通苑买个100平50w的房子。如今想想。真是可笑可叹可气。

zhangchi和chenyi这俩老兄都是努力奋斗的有位青年。对我影响非常大。我们仨非常少使用客厅的电视 —— 周末的球赛除外。zhangchi是阿森纳的球迷。chenyj是曼联的铁杆,那正是英超双雄死死互掐的年代,每逢比赛。两人就乐呵呵地冷言嘲讽对方的球队。除此之外,他们都各自躲在自己的小屋里刻苦学习。一个准备雅思,一个筹划移民澳大利亚。这让每天下班回到小窝里打打游戏看看小说的我非常不自在。总感觉自己一个人"show me the money"玩星际争霸1v7充满了罪恶感。后来我索性卸了笔记本中装着的这唯一的游戏。一门心思地读起书来。孟母择邻而居真是非常有道理,你周围的朋友某种程度上定义了你。

谈到朋友,就不得不提在入模子里认识的朋友们。

我们那时没事就聚会。一群年轻人在一起游山玩水。K歌打球之余。就是聊自己的工作。他们每一个人都非常有上进心,在这个陌生的城市里奋力打拼。这一直激励着我。

假设说成功以个人的成就或是社会地位来定义的话。我的这群朋友们都称得上是成功人士 —— 现在不少人混得都比我强。岁月是把杀猪刀,也是块试金石,人和人的差距在毕业那一刻并无太大分别,大家的学校也无明显优劣,但十年的时光,足以将两个人拉出无法企及的距离。

工作两三个月后。我已经成为团队里的熟手。十一长假来临。我无所事事,决定翻译rfc2328(OSPFv2)。我这么做并不是心血来潮 —— 工作过程中除了跟linux打交道,就跟这份长长的英文文档过不去。协议这玩意,用语非常讲究。MUST。SHOULD,MAY有严格的定义。为了一个小小的行为是否符合协议,我得读一大段精炼到干巴巴的文字,然后细细咀嚼。当时我的英文阅读能力还非常差。rfc2328通读过两三遍,总是读了后面忘了前面,所以遇到问题,还得又一次翻开再读。

不堪其苦后。我最终决定,利用假期边读边翻译,边练手。

三五天差点儿日以继夜地过去后,这份文档的核心部分最终都翻译完了,以至于后来我成了团队中对OSPF把握最清晰的那个人,再读gated里ospf相关的代码。就好像一行行代码争先恐后地向我解释他们的来路一样,顿时轻松了很多。

(可惜的是。当时互联网还不发达。UGC并不时髦,这份翻译稿仅在团队内部传递,如今我自己已经找不到一个拷贝了)

04年我成了团队的骨干力量,工资也翻了番。

那时DCN正在和ipinfusion谈合作,全面使用对方的商业源代码ZebOS(和gated类似的一个商用路由协议平台,包括ospf,bgp,rip等协议,对ipv6有完整支持,ZebOS来源于开源软件Zebra),我由于英文口语还凑合(事实上就是脸皮厚。敢说),便被团队推举为代表和ipinfusion的技术人员学习沟通协调。ipinfusion对这次合作很重视。创始人(兼CTO)ishiguro亲自过来给我们展示和教授ZebOS的技术。ishi是个美籍日本人,口音略生硬。但他的英语比把computer发成「狂皮尤塔」的「标准」日式英语耐听得多。这是我第一次接触业界传说中的高人(ishi也是Zebra的创始人)。心情忐忑而激动。在解说代码逻辑的过程中。ishi使用17寸的macbook(当时应该叫powerbook)做各种演示,让我惊异而艳羡;但最让我感到震撼的一幕是当我们报给ishi一个bgp的bug时,这哥们从包里变戏法似的又拿出两个mac,简单连成一个网络拓扑,然后就開始调试执行。仅仅见他双手如梭。指尖在键盘上迅猛敲击,光标在屏幕肆意移动,不一会儿,就转过头来,说ok了。后来我才知道,有个编辑器叫vim,有种操作系统叫MacOS(现在的OSX),有种工作状态叫flow。

那段时间我学东西学得特别快。似乎全身的细胞都被动员起来。我不放过不论什么一个细节。有问题抓住机会就向ishi问。后来我非常快能把netlink(linux下kernel和user space通讯的一种机制)从2.2的kernel back port回DCN当时使用的2.0。而且和ZebOS配合完美,也得益于此。

假设ishi让我领略了一个「大师」是什么样子的,那么公司里驱动组的leader suzg则让我 把眼界放宽。拥抱更大的世界

做数通产品路子事实上非常窄,公司的成就也就是个人成就的最大值,像我这样才智平凡的人,差点儿无法单枪匹马做个产品出来,所以职业生涯往后走,要么依靠对系统底层的了解强势转型,要么在这个圈子里一直混下去。似乎别无他法。

而suzg则不同,他闲暇时候会琢磨非常多新技术。

当wikipedia流行的时候,他在公司内部使用mediawiki搭了个KB(knowledge base)。各组有自己的板块。能够分享整个公司的研发知识。我当时是个wikipedia的重度使用者(04年它还没被封)。当看到他搭建的系统后。我被震惊了,业余时间就折腾出来这么个东东,让整个公司受益。太了不起。

在suzg的指导下。非常快我弄清楚了mediawiki所用的lamp/wamp整套软件栈。发现了在php领域有如此之多的开源软件(这和dotnet相当不同),于是開始在自己的电脑上捣鼓各种各样的互联网开源软件。

自那以后,我便迷恋上了通过工具来提高生产率。mediawiki是个非常好的提高生产率的样例。

之前公司内部文档的分享,都採用邮件+文件server的方式,效率低下,找个内容太麻烦。mediawiki这样的协同工具一下子就让好几十人的开发团队的分享体系高效了非常多,并且。更为关键的是。我们渐渐形成了沉淀下来的知识库。

这就是工具的力量。

04年DCN開始推行日集成(那时还没有到持续集成的高度)。开发者每次提交代码前须要先跑一个測试组提供的測试套件,这是个非常麻烦的流程:

1) 首先要向有设备的人(測试 or 开发)借好一套測试环境

2) 在自己的机器上编译出目标系统的image

3) 将image载入到測试设备上

4) 执行測试套件

我那时学php正学得不亦乐乎。认为这事能够自己主动化,于是就跟老板申请了一台PC和三台设备。搭建了一个測试环境。PC用来跑我做的web服务,基本思想是用户仅仅须要提交image。生成一个job,剩下的事情由web服务包圆。

做着做着发现了php的局限(这是我当时的偏见) —— 它用来做站点还不错,但做后台服务就捉襟见肘。所以我又在suzg的推荐下学习了Python —— 由于,做这样一个系统。假设用C写,要累死非常多脑细胞的。

于是这么个自己主动化測试平台就搭起来了:

1) 用户能够訪问一个url来提交要測试的image,生成一个job,这是用WAMP实现的。

2) python服务会在空暇的时候轮询mysql数据库,找到未处理的任务(当时我还不知道有message queue这种利器),然后使用pyserial和secureCRT的python接口,连接被測设备,上传image,调用測试脚本測试。

这个没花太大功夫的界面丑陋、相对简单的工具为team提高了工作效率。也正是这么个小玩意儿。让我先是得到了那年神码「金马奖」十佳技术的提名,进而获得了这一奖项 —— 在一个包含DCN,DCS等众多子公司,研发人员少说也有几百上千的公司获得这样一个相对「稀有」的奖项。实属幸运。

当然,帮我获得这一奖项的不光是这么个「不务正业」的工具,还有我开发的一系列的产品功能。ospf2/3(主要是维护)。igmpv3,sntp,netlink back port等等。做好该做的,老板才会给你很多其它的发挥空间。你才有机会「不务正业」,才会获得很多其它的赏识。

Paul Graham在『黑客与画家』中说,好的工作是同一时候具备「可度量性」和「可放大性」。在DCN这样一个「小」团队里。个人的贡献比較easy度量(比方说我自己一个写igmpv3,好坏均由我自己承担),而类似于自己主动化測试平台这种工具。则具备可放大性,由于它影响着整个开发团队几十号人的工作效率 —— 每一个人每天提升10分钟(实际完毕整个流程所花时间远不止如此),那么整体的效率提升是很可观的。我想,我得益于这两点。

获得「金马奖」的最大的优点是,我获得了于05年免费去欧洲旅游的机会。一次欧洲游至少要上万元。这钱放在现在算不得什么。但对于当时月薪还只五六千的我来说。简直如天赐的恩惠。二十三岁,我人生中第一次拥有了护照,出了国门。在罗马的许愿池下,我许下了一个愿望:三年内。我要重回此地。人生就是这样,当你很想要一件事的时候,哪怕再艰难,你也能找到各种途径达成它。

结果,两年后。这个愿望就达成了。这是后话。

05年对我而言是一个转折。在女友的鼓舞下,我读了一个自己非常感兴趣的北航的IT项目管理的在职硕士。这个课程非常紧凑,第一年每周周一到周四下午6:30-9:30都是课,隔周的周末两天也都是课,更令人发指的是,当年五一十一的长假。外加还须要请一整周的假。用来上五六门由来自美国的教授集中讲授的课程。上课差点儿占用了我全部的业余时间。可我惊喜地发现。把自己逼得越紧,时间似乎就越多。由于上课,我无法每天加班(加班在IT公司差点儿是必定),这引起了我老板的不满,但我用更高效地方式完毕工作将这不满消弭于无形;沉重的课业反而促使我更好地管理时间。在不得不去啃PMBOK的同一时候,我还阅读了很多其它和管理。尤其是项目管理相关的书籍。05年3月到06年3月的整整一年,我过得异常充实。

非常多人把在职硕士作为混文凭的一种手段,但我纯粹靠兴趣激发 —— 我认为自己在这一行这么做下去总有一天会带团队,带项目,那么在实践之前做好理论的准备,总比暂时抱佛脚,或者被赶鸭子上架要好,所以我看了不少这方面的资料,最后发现并报了北航的这个在职研究生项目。非常多学生读者问我本科毕业后到底是读研还是工作。我都是建议 假设能找到不错的工作,那么就先工作。在工作中发现自己的兴趣和不足。带着这样的兴趣再去读一个在职研究生。这样更有意义;另外。花着自己的血汗钱读书,和花父母的钱读书的感觉是远不一样的,钱来的辛苦,也会更加珍惜。一家之言,仅供參考。

05年下半年,工作对我而言越来越轻松,已经成为一种近乎反复的劳动,而身边来自IBM/Oracle的朋友不断诉说和展现着外企的优点。

那时候外企风头正劲,不像如今普遍萎靡。IBM,Microsoft,HP甚至Motorola都是全部project师梦想的舞台。我的行业背景和语言背景(C语言)非常难去这种软件公司,于是我仅仅好把目光瞄向了同行业的Cisco和Juniper。Cisco当时在北京没有R&D。Juniper便成了差点儿唯一的选择。本来,像我这样并不是绝对名校出身,而且工作刚刚两年的小本是入不了Juniper的法眼。但当时Juniper中国研发中心成立不久,正是求贤若渴的时候。而我的前同事yangkai刚刚跳槽去了Juniper做QA,愿意为我引荐,我的简历便辗转到了当时的hiring manager shalang的手上。shalang当时想找人做test automation。看我简历上做的那个自己主动化測试平台非常感兴趣,于是便约我面试。

面试的结果很理想。

shalang看中了我身上的某种潜力,所以没有纠结于我的工作年限和学历,给了我offer,并且我的工作范围和防火墙开发有关,而非工具,这令我很开心。

我一直把自己定位在软件project师,做工具对我而言仅仅是副业,并且我一直觉得,假设不在第一线干活,是无法体会到各种酸甜苦辣,从而也无法做出有效的工具。所以能在Juniper这种外企做开发,并且是做保护各种耳熟能详的高大上企业(如AT&T,NTT,BOA,中移动,五大银行等)的网络的防火墙产品,我当时感到很自豪。毫不夸张地说,增加Juniper后,我的职业生涯和人生轨迹都彻底变了。

在05年这个节点增加Juniper对我而言还有还有一个意想不到的收获,就是获得超常规的发展空间。假设说这篇文章对你而言有何takeaway,那么下面这点值得铭记:假设能够选择。那么尽量加盟规模较小。处在上升期,高速发展的企业。我所知道的样例便有01年曾经的华为,04-06年的百度。

当然,回过头来看历史非常easy,但站在历史的漩涡中,我们非常难推断一家规模较小的企业是否有机会存活下去(比方3721。03/04年名头比百度大),所以这样选择风险略大。对于风险厌恶者。我们能够从上面那点衍生出一个风险较小,收益较大的变体,那就是:假设能够选择,尽量加盟一家在其他市场上已经获得成功(或者初步成功)的外企在国内设立不久的分支

04-06年上半年的Juniper便是典型。

我加盟的时候。ScreenOS team才十个人出头,人少事多,visibility大。非常符合「可測量性」和「可放大性」。仅仅要足够努力,足够优秀,便能脱颖而出;而Juniper在全球市场上已经相对成熟,倒闭的风险差点儿为零。06年下半年以后,团队骨架基本成型。再加盟的人往往要付出很多其它的努力才有机会脱颖而出。

当然。这种职场「定律」我并不是一開始就懂,而是在Juniper浸淫了两年才慢慢发现的。

假设要问今年符合这条定律的外企。我认为至少有Airbnb和LinkedIn吧。

在拿到了Juniper的offer后,05年9月26日,我正式来到Juniper报道。


欢迎订阅公众号『程序人生』(搜索微信号 programmer_life)。

每篇文章都力求原汁原味,早8点与您相会。

同一时候也欢迎订阅我百度阅读上的电子书「途客圈创业记:不疯魔,不成活」。


原文地址:https://www.cnblogs.com/mfrbuaa/p/5332614.html