# 引子

小 C 由于学习成绩不好,高中毕业没有考上大学,找了一份业务员的工作匆匆开始了职业生涯。混了两年,业绩一直上不去,在家人的建议下,去了一家高职学习物流管理。两年后,小 C 顺利毕业,在当地一家物流公司当叉车司机。几个月后,小 C 觉得这份工作太苦太累、收入低,平时喜欢玩网游的他听说做游戏很赚钱,所以暗下决心要转行。很快,小 C 辞职了,并说服家人让他到一家培训机构学习游戏开发。本来计划的学习时间是一年,但小 C 的基础不扎实,没能通过考核,经过沟通,培训机构同意让小 C 免费再学一年。很快一年又过去了,由于小 C 缺少练习和思考,虽然勉强通过考核,但仍然找不到他想象中的游戏开发工作。几个月后,在培训老师的推荐下,去了一家小公司做 APP 开发。由于是小公司,而且大多是外包业务,工作节奏快,小 C 屡次不能按时完成任务,并且在一次会议上和上司吵架了。于是,小 C 被解雇了,得重新找工作,但过了半年还是屡屡碰壁。后来迫不得已,在家人的推荐下,去了一家餐厅上班。现在已经在那里工作两年了,做过服务员,也做过帮厨。最近开了分店,老板决定让他当个轮岗店长,所以小 C 特意请我吃饭庆祝一下。我问小 C:“现在还想做游戏开发吗”?小 C 笑了一下说:“早就不想了,不过游戏还得玩”!

小 C 是我的小学同学,小时候他比我聪明多了,兵乓球也打得好,但是他已经好久没有打过乒乓球了。小 C 说做餐饮要起早摸黑、忙里忙外的,每天下班就已经很累了,再玩两局游戏就差不多要睡觉了,没时间做别的事情了,当然也没有对象啦。唉,这种状态也不知道什么时候才到头?

写到这里,小 C 离高中毕业已经八年时间了,但断断续续的状态,以及行业的转换,使得他所积累的工作经验大打折扣。

说这个故事的目的是为了引出核心观点:工作经历 ≠ 工作经验。“经历” 需要经过总结、归纳和升华,才能有效转化为 “经验”。


结合工作中的一些见闻,我整理了下面几点,看看大龄码农是如何一步步把自己逼死的。

# 空窗期变成空白期

由于各种原因,很多程序员难免会频繁跳槽。比如由于加班太多想放空自己,于是辞职去旅游个大半年。又比如公司效益不好,被解雇了。不管是什么原因,你不应该让空窗期变成空白期!

你可以出去旅游,长长见识,收获一堆风土人情;你可以出去创业,辛勤付出,收获拼搏奋斗的失败经验;你可以返校读书,回炉再造,培养另一种能力;你也可以躲起来,磨刀霍霍,为下一份工作做准备。

但是如果处于空窗期的你无所事事,没有计划,没有安排,每天玩游戏,玩到累了就睡觉。你很难期望天上会掉一个比之前更好的馅饼下来。也许很多事情无能为力,但是做总比不做好。

# 控制不了自己的情绪

很多程序员是闷骚、大男人主义的直男,大大咧咧、不修边幅,不仅不注重外在,也不注重内在修养。作为一名程序员,保持情绪稳定很重要,你要学会与同事、上司、产品经理、项目经理、甲方、乙方沟通。如果你还想在这家公司待着,千万不要和你的同事、上司吵架,因为你们需要长期合作,你们见面的时间比家人还多。

有些程序员不注重表达,常常祸从口出,不和谐的关系往往会导致项目失败,导致不能升职加薪,甚至被辞退。所以要做情绪的主人,从根本上解决问题。

# 遇到问题到处喊救命

有些程序员,一旦出现问题,比如程序编译不通过、运行时出错了、挂了。第一反应就是找人帮忙,甚至很多时候他们连打印信息和日志都没仔细看过,有良心一点的程序员可能会调试一下再寻求帮助。他们也许会直接把问题发在内部系统或者交给测试部门,也许会拷贝一大串代码和信息发到各个技术交流群,期望高手给他指点一条明路,帮他解决这个问题。

长期以来,懒惰和依赖一定会使自己的技术水平提升很慢,甚至倒退。所以要感恩每一次遇到的 Bug,学会独立思考,培养独立分析问题、解决问题的能力。在你把问题的来龙去脉整理清楚的过程中,自然就会获得经验。而不是一而再再而三地问别人。

当然,解决问题的办法有很多种,寻求高手指点有时候确实能快速解决问题。但遇到没见过的问题,你应该尽可能自己摸索一遍,即便高手已经帮你解决掉了,否则很快你就会发现你已经沦落为一个执行者,而不是创造者了。

所以遇到问题就要绞尽脑汁地思考、充分利用搜索引擎、查阅资料、尝试调试,如果问题依然没有解决,应该整理好思路和调试流程,再简明扼要、恰到好处地向高手提问,向技术交流群提问。

# 拒绝与工作无关的知识

很多程序员,与他目前工作没有关系的知识毫不关心,说好听点是 “专注”,说不好听是 “固执”。比如让他搞个 Android App,他很快给你写完了业务逻辑代码,但是界面丑得不堪入目,他说他是程序员只负责写代码,界面美不美观跟他没关系。比如有个搞单片机开发的程序员,你给他讲 Linux,他就会找各种理由避而远之,说 “我的工作不涉及这个,为什么要学?

如果你是生活在上世纪的程序员,这种作风可能还行得通,但是在 21 世纪就不行了。你如果还是 “事不关己高高挂起”,就难以在扩宽知识的广度,每天盯着自己的几行代码,慢慢地变成井底之蛙。

所以我提倡大家做个斜杠青年,做个专注的 T 型人才。有特定领域的深度,也有方方面面的广度。你的工作可能只要求你写 Linux 的 Qt 应用,但如果你弄清 Linux 系统层面的知识,拥有 Web 前后端的知识,你一定会开发出更酷的软件。

同时,不要忘了要学会感受生命的美好,热爱生活。培养一两个爱好,并坚持下去,扩宽交际圈子,不要老和程序员抬杠。如果不这样的话,等你明白过来你一定会很痛苦。

# 日复一日地重复工作

一个工程师,第一天上班的任务就是做开关检测,接触了各种各样的开关,一弄就好几年,成为了公司里唯一的 “开关专家”。这个过程中,他会写一些简单的单片机程序测试,但一直没有在系统层面深入研究。于是,成功地做了一颗兢兢业业的螺丝钉,而且只钉一种木头。

你不是 20 年工作经验,而是 1 年工作经验反复用了 20 年。

这样的话,大龄码农不具备足够的竞争力,很可能就会被一个 2 年工作经验的年轻人替代掉了。

# 总结

编程能力很重要,但更重要的是持续学习能力和职场软实力!

看不懂这些,大龄码农只能怀才不遇,抱怨领导、抱怨社会,最终伤害的是自己和家人。