01、
9 年前,我从象牙塔里走出来,正式踏入社会,懵懵懂懂地在一家日企开始了职业生涯。那时候,技术功底非常差,因为在学校的时候每天就一副吊儿郎当的样子,编程自然也没有好好学。
和我同一时间入职的新人有 19 个,大家都怀着一颗敬畏的心,因为生怕自己被淘汰出局。毕竟是实习期,如果工作表现不符合预期的话,是直接被辞退的,没有任何补偿。
所以在签正式的劳务合同之前,每天都紧张兮兮的。记得有一次,领导说我笔试的成绩非常差,可能会被辞退,晚上躺着宿舍的床上辗转反侧,想着第二天被辞退后茫然不知所措的样子,那叫一个沮丧啊。
惊险的是,领导认为我笔试差,是因为没有看到我答在背面的答案——还是领导的领导当着我的面提醒了领导,那一幕至今记忆犹新。
初入社会的我,性格内向、沉默寡言,操着一口只有自己才能听得懂的“普通话”,之所以能留存到后(我们那批人被辞退了 10 个),靠的就是——日渐过硬的技术。
其实,程序员这行业,入门是比较难的,需要你十足的勇气,和被 bug 无数次吞噬后仍然不折不挠的坚持。一旦你入了门,还肯花时间去读理论知识,敲代码实战的话,成长是肉眼可见的——我就感觉实习的那一个月,进步神速。
02、
兢兢业业工作了两年半后,我被提升为一名 Team Leader,负责技术攻坚、新人培训,以及代码 Review。
Team Leader 恐怕是一个小的管理职位了,但毕竟是一个管理职位啊。你得参加各种会议,写各种培训资料,这都好应付,难应付的是,你得向领导汇报成员的工作表现,以及要和成员“打成一片,鼻青脸肿”。
做管理前,你所有的重心就只有代码,你把代码写得完善了、优雅了,再把难点攻破了,bug 解决了,就能赢得领导的信赖,就能拿到匹配的薪资。
但做管理后,就不太一样了。与人打交道是一件很复杂、很耗时间和精力的事,还有可能会出力不讨好。
为什么这么说呢?
每次聚会上,你得带领小伙伴们去给领导敬酒啊、奉承啊——这是一件极其难为情的事!很多程序员不喜欢这一套,我也不喜欢,但总有人喜欢你这样做。
你不去做的话,某些领导可能就要给你上上课,教育一下了,批评你不通情达理,不知道人情世故,以后要多学着点,后不忘加上一句:“不然的话,你的上升空间就很有限了。”
这可比单纯做技术难多了——不能纯粹地做一名理想主义的程序员,这不是我的初衷。
03、
5 年前,我回到了洛阳,在一家迷你型的公司做开发——没有人需要你管理,需要管理的就只有自己。
所以,我的重心又回到了代码上,人也变得轻松了起来。
我每天有了大把的时间去钻研技术,甚至还能够在 ITeye、CSDN 上写博客,甭管开始的时候写得有多差,总会时不时有读者留言说:“谢谢博主啊,你的分享解决了我的问题。”
那时候,也没有“知识付费”的概念,单纯就是为了分享,把自己在技术上遇到的坑、填的坑像记流水账一样记下来——这种状态让我内心非常地踏实。
一般情况下,工作了三五年的程序员,都会面临一种选择,要不要转型做管理呢?
个人拙见是,有机会的话就尝试做——技而优则仕嘛。毕竟做了管理就能够拿到更多的话语权,有了话语权就能够做更多的事,也就是所谓的大展宏图。
崇尚技术的程序员可能会比较崇拜比尔·盖茨,因为盖茨的技术功底有目共睹。创办微软赋予了他更多的权力,也就有了创造神话的可能性——个人电脑真的“飞入了寻常百姓家”。
但假如不适合管理岗的话,还是要尽早退出,不要陷入办公室政治斗争的泥沼中。大丈夫要能屈能伸嘛,安心做技术、做开源,没准会开辟一片新的天地。
借此机会,厚着脸皮再吹嘘一下自己。你看我,回洛阳之前,还是一名“富有权力”的 Team Leader;回洛阳之后,丧失了继续在管理岗上晋升的机会,但真的开辟了一片新的天地。
首先,出版了一本技术书籍,把积累的经验和知识分享给了初学者,还能顺便挣点版税。
其次,靠着不断地分享原创文章,在互联网上积攒了一些名气,读者乐于和我交流;更多的机会也随着而来——再光明正大地声明一下,有项目做不完的甲方,请过来找我。
04、
我生于八九年,算是赶上了八零后的末班车。八零后成长的三十多年,是我们国家疯狂造富的三十多年,经济增长的速度能维持在 10% 左右,是的奇迹。
经济之所以如此迅猛地发展,一方面是因为我们的起点低,另一方面在于我们对未来的乐观主义——我们不断地拥抱世界,拿来的同时默默地努力着、奋斗着、改善着。
我们程序员是幸运的,赶上了经济发展的浪潮。并且互联网的世界是开放的、包容的,所以我们不必深谙人事、逼迫自己陷入办公室政治的泥沼中也能体面的生存。
可能有人会说,“35 岁是程序员的年龄天花板,你能写多长时间的代码,要未雨绸缪”。但我想表达的是,作为一名正儿八经的程序员,我想做一名纯粹的理想主义者,每天敲敲代码,活在程序的世界里。
到底理想主义的程序员是什么样子呢?
他首先是一个单纯快乐的手艺人,其次有着天真烂漫的好奇心,后还乐于分享。他不想被管理,也不太想去管理别人,一旦需求来了,他就会立马全情投入,直到交付一个至善的产品。
那怎样才能做一名理想主义的程序员呢?
1)保持专注,别总去想卖个肉夹馍发点额外的财。
2)善于思考,面对一个 bug 的时候,不急躁,不慌张,能够从容地思考 bug 背后发生的原因。
3)富有自我驱动力,哪怕刚入职的时候工资很低,依然能够全身心地投入,不被外界因素干扰,直到把自己锤炼成不可或缺。
4)不找借口,敢于承担责任。
5)善于管理时间,人这一辈子,缺的不是金钱,而是时间。
那程序员的理想到底应该是什么呢?
我希望未来有一天,因为我的代码,让这个世界上的一些人生活的更便利,感觉到一点点幸福或愉悦。不管这些人多还是少。