来自 技术 2019-03-16 00:00 的文章

从国企到互联网,一个六年程序员的「得」与「

开发十年,就只剩下这套架构体系了!>>>

程序员,六年,四段工作经历,这也许是一份会被很多 HR 刷掉的简历。

从学生时代至今,我经历了两次大的方向转型和一次大的技术转型:从偏理论推导的数学科学到重工程实践的计算机学科,从「安稳固化」的国企到「活跃求变」的互联网;从「人人为我」的客户端到「我为人人」的服务端技术转型。

回看自己的经历,在方向选择上,我是后知后觉的。在 PC 时代即将谢幕时入场,完美地错过移动互联网时代的红利期/窗口期;技术选型上,我是「愚钝」的。一头扎进学习曲线最为漫长的 C++,又投入 Windows 封闭生态环境的怀抱,转型服务端之初「逆趋势」地被选择了「世界上最好的语言」(PHP)。

然而从硬币的另一面来说,我是幸运的。丰富的经历自不必多说,在这个过程中,我也初步丰富和完善了知识结构。虽不健壮,却也雁过留痕。

年岁渐长,我愈发感受到总结的必要性和重要性。这篇文章远谈不上什么感悟或是经验分享,只是想把曾经那些曾令我兴奋的、失落的、沮丧的故事说一说,也算是回看自己略显「折腾」的几年中那些「得」与「失」。

瞒着父母,我从国企辞职

作为一个从农村走出来的孩子,211 院校硕士毕业,在国企实习后顺利转正,是一件让我父母脸上颇为有光的事情。但是只不到两年,我在没告诉他们的情况下选择了离开。

我第一次经历了系统且完整的软件开发全过程,使用被时间证明足够稳定(过时)的 MFC 技术,开发和维护 OP 工具软件,实现私有的应用层通信协议。

大家对于国企的第一印象,可能都是「工作稳定、福利待遇完善、竞争压力小」。但对于刚出校门的毛头小子来说,要把之前书本中学到的理论知识转化为生产力,挑战总是有的。而且在国企环境下,对系统稳定性、信息安全性都有很高的要求。同事们严谨的工作方式,也帮助我养成了编程规范和及时留存技术文档的习惯。

工作之外,我享有充足的时间读书学习。技术类书籍当然看得最多,历史、社会和文学也都没落下,以至于让我一直有种未曾离校的错觉。

即便如此,我却并不感觉自由。正值国企改革,组织要逐步减少对母体的依赖,形成并完善自身的造血能力,但在彼时相对封闭的环境、较为传统的管理方式和复杂的内部流程下,即便是我也能感受到领导在推动新技术变革时的束缚和阻碍。

年轻的我还是希望能快速在技术成长上有所突破,接受更多挑战,于是告别了温馨的团队和相处融洽的同事。

初入互联网,我的热情有了安放之处

重新找工作的过程并不像第一次那么顺利。虽然也有「大厂」向我招手,但可能是上一段工作的缘故,让我格外向往更有活力、有朝气、有更多机会和挑战的工作环境。最终,我选择了一家正在快速发展的互联网创业公司。

收到 Offer 的兴奋感只持续不到一天的时间,巨大的危机意识便开始滋生。虽然我还是机缘巧合地成了公司很长一段时间内的唯一的 Windows 开发者,但对比我上一份工作输出的原始且粗糙的单文档/多文档应用,这款 ToC 产品面向的女性用户群体、舒服的粉红色主题,以及素级挑剔的 Boss,都是我之前没经历过的。

入职后我就接到了新产品的开发任务。一个月内,我每天的工作时间几乎是之前的两倍,甚至周末都来不及喘息,逐个击破 IM、DirectUI、WebUI、WebSocket、Http、Wke、libCef 等这些之前从未接触过技术,和团队的十几位伙伴如期推出第一个内测版本,然后持续优化和改进。我们把这个项目当成自己的孩子,在生长的过程中难免有这样那样的问题(长链接保活、多端登录、消息的即时性、有序性和可靠性等),也会调皮和闯祸,但我和我的小团队从基础通信功能切入到初具规模,实现了从 0 到 1。

这是技术长进最快的时光,我不知疲惫地持续探索、反复试错。但是后来的种种因素没能让它继续成长壮大,也许是资本,也许是机遇。虽然很惋惜,但至少让我感到充实。

这一次,也点燃了我的热情,让我看到了自己创业的可能性。于是毅然切换赛道,开始一段新的未知旅程。

创过业才知道,原来这么难

受万众创新,大众创业的鼓舞,在某个机遇下,我受邀加入一个背景出色的初创团队,开始一段热血征程。

创业项目是基于情绪模型开发网络情报监测与智能分析大数据平台,通过对国内外主流社交媒体海量数据的收集、清洗、处理、存储、分析,就当下发生的热点事件,及时生成可视化的图表及舆情分析报告,为政府和企事业单位提供决策参考依据。能近距离地与业界的营销高手、舆情专家、大律师等牛人共事,着实令我心血澎湃、干劲十足。

对比成熟型创业公司,我们面临着机遇、团队和资源的所有匮乏,我个人也接受着身兼产品、技术、运维、市场等数职的挑战。

在创业初期,我们学习并践行「先僵化,后优化,再固化」的企业管理三步曲,虚心学习国外同类优秀产品,诚心向成功的前辈取经探讨,细心地打磨产品每个细节,用心地解答种子用户提出的或需求或产品本身的各类问题,也会为每个肯定或进步而欢欣鼓舞,会为每次质疑或否定而知耻后勇。但屡次在小作坊式持续迭代与集团式快速布局的「无谓抗争」中妥协,也认清了自身无论心智、思维还是能力都与合格创业者的标准相距甚远的现实,且内心对技术变现的「执念」。而这一年,我的技术水平毫无进展,与我预设的成长速度极不匹配。我开始思考自己是不是偏离了轨道。

最终,我还是决定带着祝愿和遗憾离场。

回归初心 —— 精进技术

这次出发,我的目标更加清晰,希望加入到一个技术导向型并且具有一定规模的团队。很幸运来到了马蜂窝。我清空之前所有的优越感和不良习性,以空杯心态去接受一个未知但精彩的新领域,重新激活了对四周任何事物充满无限好奇与试探的欲望,虽有涟漪,却也静好。

在快速发展的过程中,组织架构和业务调整在所难免,我又面临着是坚持 PHP 还是拥抱 JAVA 的选择问题。这次我的选择是在较长的一段时间内做好辅助的角色,去支持各个业务线的顺利开展。不得不说,难免沮丧,但也有过顿悟。直到新的业务和交易系统迁移接近尾声,与领导的一次长时间谈话及往后的深思,我决定再次拥抱变化,以一种无知无畏的姿态面对挑战。

在再次转型后的一段时间内,我投入到 JAVA 技术栈的学习,渗透服务化改造的思想,训练工程化和系统化思维,迷失渐少,多有裨益,更有勇气和信心地直面挑战。

一个中年程序员的碎碎念

在每一次转型过程中,也会有一种清零不被认可的情绪让我挫败。或许是跨度太大造成匹配度不高的错觉,但更多的原因应归咎于自身的内功不足。时至今日,一路磕磕绊绊地走来,经历资本的疯狂与寒冬,经历心智的稚嫩与初步成熟,经历从零到一的兴奋与从一到百的困惑,也分享几点感悟:

第一份要工作慎重选择,它会直接或间接地影响后续的职业发展;

危机可以拆分为危险和机遇,抓住机遇并化解危险方能成长;

技术人同样需要培养成本意识、风险管控和团队管理能力;

唯有变化是唯一确定的变量,保持开放的心态,积极拥抱变化,加强学习和强化自身,才有机会在持续的变化中立于不败之地。

人到中年,我们无法避免焦虑感。尽管如此,我仍然非常反对「技术是吃青春饭」的观点。最后,我想和大家分享几点,我在这些不算成功的转型中的几点体会。

1. 扎实的基本功非常重要

很多面临职业转型期的技术人,都会纠结于是要先加强技术的深度还是广度。在我看来,程序员想要有好的发展,操作系统、网络协议、编程语言、算法等都非常重要。工程化思维通过项目实践来积累,新技术虽然层出不穷,但万变不离其宗。比如掌握了 C++这种学习路线陡峭的语言,在面对新语言时你会很快上手。

2. 提前规划,重视积累和沉淀

回头来看,我不后悔做出的每个选择。但如果重来一次,我一定会重视对职业路径的规划,让自己有更多积淀。以后该如何发展?继续精进技术?转型产品经理?还是技术负责人?提前规划,少走弯路,并且利用好你的技术优势,形成思维方法和知识体系。

3. 不要只关注代码,也要经营身边的人

关注你的家人、朋友、同事,学习经营每一份关系,因为只有稳定的家庭和更多的朋友,你才会踏实地在技术这条路上探索,并且得到更多的资源。而不是像我,在离开多年后,才知道原来身边的人有如此实力。

4. 努力活成一个有趣的自己

关于程序员的标签,我们都有所耳闻。其实技术只是手段或工具,比技术更重要、更有价值的东西比比皆是,比如独立之人格、自由之思想,健康之体魄等。建议大家可以多读书、多旅游,也许在某个不经意间,你会惊喜于发现自己刷新了世界观。

以上这些也许并不足以为各位提供实质的指导,但感谢你的阅读。

关注马蜂窝技术,找到更多你想要的内容