谈谈工作 - 神州数码篇
时间:2023-06-14 22:24:01 | 来源:网站运营
时间:2023-06-14 22:24:01 来源:网站运营
谈谈工作 - 神州数码篇:本文是之前的文章『谈谈大学』的姊妹篇。也是拖了很久,才下定决心,写上一写。
我的工作历程不算太长,但也不短,11年工龄,30岁出头,要写这么篇文章,其实很尴尬。刨去创业两年时光,我也就是9年在企业里工作的经验,更尴尬的是,这9年时间我就呆了两家公司,而且还在同一行业,这在瞬息万变的IT公司看上去比较少见,所以所述未必合大家的心。
为了便于描述,我还是以时间为轴,来展开讨论。本篇先讲我在神州数码的经历。
在『谈谈大学』里我说到本科毕业后,自己便加入了神州数码网络公司(DCN)。DCN前身是联想网络,脱胎于中科院,有浓郁的研发背景,相对于神码大家庭来说,DCN像是个正在创业的小兄弟。03年正是郭总(郭为)踌躇满志一展拳脚的时候 —— 与联想的「兄弟盟约」业已到期,便迫不及待杀入PC市场;同时眼红于正在兴起的移动市场,也玩起了手机,结果多线作战节节败退,巨额亏损,财报上单单为手机业务就计提上亿港币(这些也要归功于麦肯锡给定的战略啊)。「计提」这种高大上词汇,我是这时掌握的。神码大环境的状况虽然不佳,DCN的小环境却很好,很「联想style」地被称作是二级火箭,相对于整个公司的主营业务 —— 分销这个现金奶牛,DCN算是神码的未来,所以氛围相对宽松。接触的HR姐姐,程序员哥哥都很nice。
初入公司懵懵懂懂间我就被集合做了为期一周的「入模子培训」—— 这是联想系经典的企业文化培训,很多鸡汤,很多正能量。现在大家被过多的鸡汤搞得逆反,闻「汤」变色,唯恐避之不及。其实,只要带着脑子听,鸡汤还是蛮好的,反正一周的培训下来,我是感觉收获很多。要在一个企业做好,你需要接受它的文化,并怀有工作的荣誉感。柳总(柳传志)说的很多话:「企业是个模子,你来了以后,必须融入到我们企业的模子当中」,「办公司就是办人」,「垒一层土,夯实,再垒一层」等等我都是很认同的。在「入模子培训」里,我最大的收获是认识了一群「书生意气,挥斥方遒」的才子佳人。11年来,风云变幻,我们依旧相互关心,肝胆相照。
培训完成后,能量满满地投入工作。DCN当时在主打路由器和交换机,我被分到了路由组,主要负责接手即将离任的一个工程师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是个很好的提高生产率的例子。之前公司内部文档的分享,都采用邮件+文件服务器的方式,效率低下,找个内容太麻烦。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这样一个「小」团队里,个人的贡献比较容易度量(比如说我自己一个写igmpv3,好坏均由我自己承担),而类似于自动化测试平台这样的工具,则具备可放大性,因为它影响着整个开发团队几十号人的工作效率 —— 每个人每天提升10分钟(实际完成整个流程所花时间远不止如此),那么总体的效率提升是非常可观的。我想,我得益于这两点。
获得「金马奖」的最大的好处是,我获得了于05年免费去欧洲旅游的机会。一次欧洲游至少要上万元,这钱放在如今算不得什么,但对于当时月薪还仅仅五六千的我来说,简直如天赐的恩惠。二十三岁,我人生中第一次拥有了护照,出了国门。在罗马的许愿池下,我许下了一个愿望:三年内,我要重回此地。结果,两年后,这个愿望就达成了。这是后话。
人生就是这样,当你非常想要一件事的时候,哪怕再艰难,你也能找到各种途径达成它。05年对我而言是一个转折。在女友的鼓励下,我读了一个自己很感兴趣的北航的IT项目管理的在职硕士。这个课程非常紧凑,第一年每周周一到周四下午6:30-9:30都是课,隔周的周末两天也都是课,更令人发指的是,当年五一十一的长假,外加还需要请一整周的假,用来上五六门由来自美国的教授集中讲授的课程。上课几乎占用了我所有的业余时间,可我惊喜地发现,
把自己逼得越紧,时间似乎就越多。因为上课,我无法每天加班(加班在IT公司几乎是必然),这引起了我老板的不满,但我用更高效地方式完成工作将这不满消弭于无形;沉重的课业反而促使我更好地管理时间,在不得不去啃PMBOK的同时,我还阅读了更多和管理,尤其是项目管理相关的书籍。05年3月到06年3月的整整一年,我过得异常充实。
很多人把在职硕士作为混文凭的一种手段,但我纯粹靠兴趣激发 —— 我觉得自己在这一行这么做下去总有一天会带团队,带项目,那么在实践之前做好理论的准备,总比临时抱佛脚,或者被赶鸭子上架要好,所以我看了不少这方面的资料,最后发现并报了北航的这个在职研究生项目。很多学生读者问我本科毕业后究竟是读研还是工作,我都是建议
如果能找到不错的工作,那么就先工作,在工作中发现自己的兴趣和不足,带着这种兴趣再去读一个在职研究生,这样更有意义;另外,花着自己的血汗钱读书,和花父母的钱读书的感觉是远不一样的,钱来的辛苦,也会更加珍惜。一家之言,仅供参考。
05年下半年,工作对我而言越来越轻松,已经成为一种近乎重复的劳动,而身边来自IBM/Oracle的朋友不断诉说和展现着外企的好处。那时候外企风头正劲,不像现在普遍萎靡,IBM,Microsoft,HP甚至Motorola都是所有工程师梦想的舞台。我的行业背景和语言背景(C语言)很难去这样的软件公司,于是我只好把目光瞄向了同行业的Cisco和Juniper。Cisco当时在杭州没有R&D,Juniper便成了几乎唯一的选择。本来,像我这样并非绝对名校出身,并且工作刚刚两年的小本是入不了Juniper的法眼,但当时Juniper中国研发中心成立不久,正是求贤若渴的时候,而我的前同事yangkai刚刚跳槽去了Juniper做QA,愿意为我引荐,我的简历便辗转到了当时的hiring manager shalang的手上。shalang当时想找人做test automation,看我简历上做的那个自动化测试平台很感兴趣,于是便约我面试。
面试的结果很理想。shalang看中了我身上的某种潜力,所以没有纠结于我的工作年限和学历,给了我offer,而且我的工作范围和防火墙开发有关,而非工具,这令我非常开心。我一直把自己定位在软件工程师,做工具对我而言只是副业,而且我一直认为,如果不在第一线干活,是无法体会到各种酸甜苦辣,从而也无法做出有效的工具。所以能在Juniper这样的外企做开发,而且是做保护各种耳熟能详的高大上企业(如AT&T,NTT,BOA,中移动,五大银行等)的网络的防火墙产品,我当时感到非常自豪。毫不夸张地说,加入Juniper后,我的职业生涯和人生轨迹都彻底变了。
在05年这个节点加入Juniper对我而言还有另一个意想不到的收获,就是获得超常规的发展空间。如果说这篇文章对你而言有何takeaway,那么以下这点值得铭记:
如果可以选择,那么尽量加盟规模较小,处在上升期,快速发展的企业。我所知道的例子便有01年以前的华为,04-06年的百度。当然,回过头来看历史很简单,但站在历史的漩涡中,我们很难判断一家规模较小的企业是否有机会存活下去(比如3721,03/04年名头比百度大),所以这样选择风险略大。对于风险厌恶者,我们可以从上面那点衍生出一个风险较小,收益较大的变体,那就是:
如果可以选择,尽量加盟一家在其它市场上已经获得成功(或者初步成功)的外企在国内设立不久的分支。04-06年上半年的Juniper便是典型。我加盟的时候,ScreenOS team才十个人出头,人少事多,visibility大,很符合「可测量性」和「可放大性」,只要足够努力,足够优秀,便能脱颖而出;而Juniper在全球市场上已经相对成熟,倒闭的风险几乎为零。06年下半年以后,团队骨架基本成型,再加盟的人往往要付出更多的努力才有机会脱颖而出。当然,这样的职场「定律」我并非一开始就懂,而是在Juniper浸淫了两年才慢慢发现的。如果要问今年符合这条定律的外企,我觉得至少有Airbnb和LinkedIn吧。
在拿到了Juniper的offer后,05年9月26日,我正式来到Juniper报道。
欢迎订阅公众号『程序人生』(搜索微信号 programmer_life)。每篇文章都力求原汁原味,早8点与您相会。
同时也欢迎订阅我百度阅读上的电子书「途客圈创业记:不疯魔,不成活」。