我是一名程序员,工作了七年的老程序员。婚姻上有“七年之痒”的说法,不知道职场上有没有?反正我觉得有点痒了。今天就来聊聊这七年。
刚毕业那年,我辞掉了长沙的一份offer,来到大深圳。至今回想起来,还算是比较正确的选择,虽然为此付出了毕业三方协议违约金的代价。这件事情也告诉我,要有自信,不要急着出手,后面还有更好的机会。
第一阶段:初入职场,原始积累
第一家公司是做移动互联网的初创公司,当时名气还可以,在功能机时代拥有视频编解码方面的核心技术,业务盈利能力也很强。我在校时就偏向于微软的 .Net 体系,在这家公司就顺理成章地从事 .Net 后台系统的开发。一开始是做一些产品的业务后台管理系统,基本上就是数据的增删改查,再做一些Web界面。当时还没有前后端分离的概念,整个 B/S 架构都是用 Asp.Net 技术,前后端一体化,最多就是结合 Ajax 做一些页面局部更新。开发组leader人也不错,像一个老大哥一样带着大家往前走。说起这个leader,还有点小佩服。他不是计算机科班出身,之前是学旅游管理的,半路出家自学了编程,后来还有过大公司经验,技术视野比较开阔。实习期间对我帮助很大,给我一种跟对人的感觉。
那个时候上班,感觉时间都不够用。每天都有新任务,新问题,做事也比较有激情。甚至上下班路上都在脑子里回想工作中碰到的难题,想到解决方案了恨不能马上跑回去开机写代码。这样的状态,成长也是比较快的。
大半年之后,公司人员迅速扩张,公司管理上对信息化的需求越来越紧迫,加上公司自己购买的办公系统不是很接地气,干脆决定自己开发一套。于是在人员组织架构上被安排到信息管理中心,专门从事办公自动化系统的开发。也就在这个时候,leader突然说要离职。我们组的几个人听到消息瞬间都懵了,好端端的为啥要走?后来才知道他是去跟朋友创业搞事情去了。蛟龙岂是池中物,据说老板升他做技术副总都留不住。这也是我第一次经历亲密战友离职,第一次意识到职场的不确定性。
后来就跟着组里一位比较资深的大哥,一门心思做OA系统了。他比较有想法,连工作流引擎都是我们自己开发,还做了流程编辑的可视化界面。那段时间接触了比较多的数据库操作,各种SQL查询语句不在话下。同时也开始了前后端分离的尝试,使用了前端UI框架。那个时候还是 jQuery 横行天下的年代,各种插件层出不穷。那个时候还没有 Vue,React,Angular 这样的 MVC 框架,也没有 webpack 这样的模块打包工具,开发模式完全不同。用的做多的就是 jQuery,各种页面动效全靠它了。
这段时间智能机开始兴起,功能机市场逐渐被蚕食,公司的主营业务也日渐式微。由于转型不及时,公司迅速走下坡路。后来公司经历了一次业务违规事件,遭受重创。人员迅速减半,开启裁员模式。其实公司的状况大家也都看在眼里,有想法的人早就另作打算了,剩下的都是在观望。公司有意裁员,但又不想付出裁员成本(也就是N+1赔偿金),有段时间像是跟员工耗着,变相让员工主动辞职。不少人都耐不住性子了,比如我。在我之前已经有些部门被裁员了,还拿到了赔偿。我也不确定自己的部门是否会被裁,面对前途未卜的工作,我心中早生离意。
我开始出去找工作。两年左右的工作经验,非名企名校背景,找工作确实不太容易。记得有一天面试了三家公司,还分别位于深圳不同的区,奔波之苦可见一斑。几次面试失利让我开始反省,自己的优势劣势到底在哪?如果继续做后台,以往的工作经验不足以获得大公司青睐,而且以我当时粗浅的了解, .Net 技术栈多用于企业内部管理系统,继续做下去也没多大空间。这时我想到了另一条出路:Web 前端。当时已经是 2013年, Web 技术蓬勃发展,Node.js 也早已崭露头角,各种前端框架层出不穷。以自己过去对 jQuery 的积累,全面转向 Web 也是不错的选择。
第二阶段:走上正轨,渐入佳境
经过一段时间的求职,终于有一家外企给我抛来橄榄枝。这是一家做金融服务的公司,在业内也有相当的知名度。办公环境一流,管理上也比较规范。最重要的是,工作内容是 Web 前端开发,偶尔兼顾下 WPF 桌面客户端开发,与之前的技术背景刚好契合。
说起这次换工作,还有一段小小的插曲。就是在我离职后一个星期,整个部门就被裁了,全都拿到了赔偿。你说气不气?三个月工资啊!看来我注定与横财无缘,只能靠勤劳的双手了。不过换来了一份心仪的工作,也算是一点安慰吧。
技术上,我开始接触单页面应用,前后端分离,MVC/MVVM 模式,使用前端框架,如 ExtJS、Backbone等。也深入学习了 JavaScript 语言,研究页面性能优化,做一些开发工具等。现在回想起来,当时还是没有及时跟上业界最新的技术潮流,过多依赖于重型框架如 ExtJS,没有积极探索其他可能性。以至于后来去腾讯这样的大公司面试,都拿不出像样的技术和开发工具经验。平台很大程度上决定了视野,如果不能跳出平台的局限,很难有大的提升。
团队上,有完整的产品、设计、开发、测试、运维,算是正规军。这是在之前的公司没经历过的,算是走上正轨吧。公司是外企,国际化的氛围还是不错的。总部在芝加哥,经常有老外领导过来出差,给大家讲行业,讲公司战略,全程英文。每开发完一个版本,需要给总部的PM演示,也需要英文交流。工作邮件、办公系统、开发工具等,都是英文环境。以至于国内同事之间交流,也时不时地夹杂英文,估计很多外企都有这个毛病吧。
企业文化上,整体氛围比较轻松,员工业余活动也很丰富,有20多个员工俱乐部。工作压力不大,基本没有加班。每年还有1000块的书费报销,可以购买投资、技术、英语学习方面的书籍。经常有各种职场培训,CFA考试和MBA也可以报销费用。现在回头看,如果能好好利用这段宝贵的时间,考个CFA啥的也不错。
总的来说,其他都好,就是太轻松。待了快2年的时候,我就意识到再这样下去就要废了。从公司内部突破是不太可能了,公司节奏就是稳扎稳打,迟迟不肯拥抱新技术。那就只能重新寻找机会,做好跳槽准备了。随后就开始了长达数月的骑驴找马的日子,更有去腾讯各部门累计面试不下10次被拒的惨痛经历。这段经历告诉我,平台很重要。我一直自认为勤奋好学,资质也不算差,善于钻研技术和解决问题。当然缺点也是明显的,面试表达欠佳,不善于总结经验教训。这期间也有一个小插曲,当时拿到了一个offer,正准备离职,部门经理却极力挽留我,最后破格为我争取到了30%的加薪。当时公司的待遇是众所周知的偏低,我也没想过要跟领导提加薪。这样一来,新offer的吸引力就下降了,抱着再试试看的心态,我就留下了。都说开弓没有回头箭,提了离职就不要留下。原因通常是领导留你只是权宜之计,后面不需要你的时候就会找机会开掉你。不过凡事都要具体情况具体分析,就我的情况来说,这个理由不太成立。然而,后面两三个月工作内容依然没什么起色,看来留下来真的不是长久之计。
第三阶段:初创公司,团队主力
既然没有机会去大公司,如果能在小团队承担主力开发重任,也是个不错的选择。这样的机会说来就来,前leader去了一家互联网金融行业的初创公司,准备组建技术团队,于是找到了我。一杯咖啡的功夫,我被说服了。就这样,我加入了这家刚成立不久的公司。当时整个公司才十来个人,绝大多数是技术开发,没有产品经理,没有UI设计师,没有测试,没有运维。一切从零开始。一开始还是遵循leader的指示,采用非主流的重型框架,目的只是为了利用丰富的现成组件,快速开发。后来发现这个框架体积太大,可定制的空间太小,不方便扩展。我开始关注业内主流框架,当时已经有 Angular,React,Vue了,Backbone,Ember,Knockout这些都算比较过时了。当然,每个框架都是为了解决当时的问题,也都有自己的局限性。最后我被Vue 吸引了:轻量、简洁、上手快,开发效率很高。于是向leader力推,后来就在新的几个项目里用上了。
公司背景雄厚,发展很快,团队也逐渐扩充。前端团队招了几个初级开发,技术方面基本由我主导。在移动端Web领域,我也是刚刚接触,处于摸索阶段。就这样在毫无积累的基础上,摸着石头过河,完成了几个移动端的Web项目,有纯移动端站点,也有 App 混合页面。这也是我第一次真正从头到尾主导一些项目,无论在技术上还是团队协作和管理方面,对我都有较大的提升。那段时间,项目计划特别紧张,工作量巨大,经常加班加点。但为了光明的未来,再辛苦也不觉得累了。
如果故事照这样发展下去,看起来会有个不错的结局。然而现实往往是残酷的。公司背景是非常雄厚,也从名企挖了不少高管过来,大家看上去也都在拼命工作,但结果却不尽如人意。拼了两年多,产品用户量迟迟上不去,更别说盈利了。也许是产品定位问题,也许是行业本身的局限,总之,业务半死不活的。后来,连技术核心人物都走了,有想法有抱负的人纷纷离职。
再一次,我要为前途奔波了。本来以目前的状况,公司不至于倒闭,我可以继续维护现有项目,带带团队,过着安逸的日子。但我骨子里不是个乐观、安于现状的人,总是为前途担忧,换句话说就是劳碌命。
再出发
回首过往,七年职业生涯,三家公司履历。职业路径差强人意,背景不够光鲜。有机遇的原因,也有自身的问题。夜深人静时,经常会有一种莫名的无力感,到底该如何挣扎,才能摆脱焦虑?年近三十,早已被优秀的同龄人甩开距离,往后的日子,拿什么来与命运对抗?
天无绝人之路,有志者事竟成。这段时间也收到过不少面试邀请,也拿到过几个offer。是时候收拾下心情,整理下状态,重新出发了。
作者:空引
链接:https://www.jianshu.com/p/e0e03a834a6f
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。