互联网寒冬,30岁的我重新选择回归技术一线

前言

这是一篇讲述技术一般的30岁的“老程序员”过往经历和所思所想的文章,没有华丽的语句,没有精通的技术,前车之鉴后车之覆,真实而深刻。 最后得出的结论是:如果热爱一件事,认定目标,立刻就去做,用不了聪明办法就用最笨的方法,走不了捷径就绕远道而行,无论什么年龄都不晚

有时候,我们需要勇气面对自我的认知和失去的一切,不惜推倒重来,”重构人生”。 来到北京开始第一份工作(之前在魔都已工作2年2个月)到去年12月离职,在上一家公司工作3年零3个月。

离职后又历经半年的补充学习,一个半月的各种面试,终于要开始新的工作,对未来的焦虑恐惧到确定被录用的那一瞬间的欣喜冷静,这半年多经历的一切只有自己知道。 那些一个人孤独无助的时光,历经痛苦与悲伤,也见证了自己的不断成长。

此时此刻,想到某音上那段经典的话——“不管你昨晚上经历了怎样的泣不成声,早上醒来,整座城市依旧车水马龙,没有人在乎你失去了什么,没有人会感同身受,也没有人关心你的不快乐,好好爱自己!”。

一、前五年半工作的福祸相依

作为一个在垂直互联网行业(制造业B2B)工作了五年多的老程序员,2013年6月毕业经校招进入上海一家传统行业大型公司的电子商务中心。虽说职位是网站开发工程师,在学校里学过简单的网页设计,了解过一些制作网站的技术。到实际工作中,起初连CSS代码都不会写,更别提写一些JS特效和各种框架,一切都从原生开始。

白天上班时不允许看书学习,为了学写CSS,采用了最笨的方法 —— “抄写源代码“。其实就是在浏览器中打开公司官网页面的源代码,跟着一行一行的HTML,CSS源代码抄写下来,边抄写边总结,保证布局样式和官网一模一样。白天抄代码,晚上啃CSS教材,每天保证12小时以上的学习。这样持续了一周,每天抄写的代码也有两千多行,熟悉了CSS的语法规则及应用。

记得当时用的编辑器还是DreamWeaver(简称DW,中文名称”梦想编织者”),名字十分的好听。 但是当时公司的”变态要求”,估计在后来的公司都不可企及。当时UED团队在给我们发送PSD模板的同时,会附带一张100%比例的.png格式的原图。我们在制作网站的时候,要求自己切图(传说中的切图仔),每周写出一个网站(5-8个页面),每一个网页与背景图完全重合。只记得当时花了一个月做了3个网站上交,最后都是勉强通过“完全重合”的要求。

从此之后,知道了干这行,要心细如丝。至于网上经常为了1~2px,与设计起争执的程序员,我觉得对自己要求严格点,蛮好的,严师出高徒嘛。在之后的两年多里,累计完成的网站有上百个,由于针对的客户是全世界的潜在用户,网站语种覆盖了从中文、英语、西班牙语、葡萄牙语、俄语到不为人知如同天书的阿拉伯语、波斯语、斯瓦西里语,学会使用CMS搭建网站和公司内部的框架,解析绑定域名,配置CDN,搭建Ubuntu系统的虚拟主机……

在上海的那段时光里,虽然薪资与同行相比不值得一提,但是每天过得十分充实,身边的同事大多都是校招进来的,背井离乡闯荡上海滩。公司在镇上,大家都住在一个镇上(浦东川沙镇-紧挨上海的硅谷-张江高科,上海迪士尼公园就在那儿,直到离开还没建好),平时一起工作,下班或周末互相串串门,聚聚餐,打打桌球、羽毛球和篮球,逛街的时候也能偶遇,生活十分的小资。

两年以后北上加入北漂的队伍,第一次体会到了“漂”的感觉,在上海上下班都是步行,偶尔赶时间才会坐公交车,从住的地方20分钟就到公司了,周末去浦西或更远的地方才会坐地铁。

来到北京,大多数的时间是在五环外度过的,工作在东五环外,生活在西五环外(有亲人在这边生活和工作),每天早上跨越十个环的距离,每天早上从西“漂”到东,晚上从东“漂”到西,每天将近有3个小时是在地铁上度过的,累计算下来,每年有2个月是在地铁上度过的。白天面对的是熟悉的工作与同事,晚上面对是熟悉的生活与亲人,在不同的时间和地点来回切换,像一棵浮萍随波逐流。

在北京的这份工作,其实大多是利用在上海公司所学的技术,前期主要负责开发网站内容发布系统类似于CMS(内容管理系统),但要做到批量生成动态网站内容数据和网站静态模板。当时也是机缘巧合,自己的直属领导是上海同一家公司的技术大神,我来到公司便开始带领一个技术小组,第一次带团队进行开发工作,到后期的技术应用,系统的迭代、更新和维护,非常熟悉一整套的工作流程。

由于也是外贸ToB行业,很少互联网公司的程序员愿意加入,新人大多是校招的应届毕业生。第一次体验了去各大高校招聘计算机相关专业的学生,参加了公司两年的春招,把津冀和东三省省会的高校都走了一遍。

那是第一次体会到人才对公司的重要性,求贤若渴,每天都盼着有优秀的毕业生加入到我们的团队中。 在北京公司的最后一年,经过筛选,有幸加入了内部的一个ToB企业级服务的创业项目,第一次体会了真正的创业,几个人从一个想法开始,组建团队到部门成立、产品需求分析到功能开发到产品正式上线运营、第一个客户购买到第N个客户、老板出去融资宣讲到资金到位…

这一年里虽然各种艰辛,有时甚至是拼命,最后看到取得的丰硕成果,内心也会无比的欣喜,一款产品就像自己的孩子一样,看着他从无到有,一点一点成长。虽然最后因为个人原因离开,内心还是坚定的相信公司会越来越好,也祝愿产品大卖。

最后总结一下自己的前五年:会写代码,带过团队,做过管理,搞过创业,技术一般…。但是骨子里,还是喜欢做技术,热爱技术,自己崇拜的人例如程序员三剑客求伯君、雷军、张小龙,以及阿里的行癫和多隆,都是技术出身。

二、对主流技术的认知与思考

从大学开始,并非计算机科班,学着计算机相关的专业。毕业时,因为一份获奖的商业策划书破格被技术部门录取,在一个互联网的垂直领域(外贸B2B)写代码,做网站,搭建服务器,研究国外搜索引擎的内容算法,看国外关于用户体验的研究。

虽然写着几乎一样的代码,但毕竟是一个互联网的垂直领域,加上传统行业内部的技术封闭,很少有机会与主流的互联网技术接触。一直在观望和寻找进入主流前端技术开发的机会,也见到了所谓技术领域水平参差不齐的情况。

直到2016年年底有机会参加北京望京阿里中心”岳麓书院”的一次技术分享会,第一次体会到真正的前端开发,很多成熟的开发模式和框架以前从没听说过,感觉到了巨大的差距。再后来,参加过几次类似的技术分享,记得有百度分享的NodeJS开发,其他公司分享的Angular框架的应用分析。

随着时间的流逝,到2017年年中时,准备离职进入主流互联网行业,做一些主流前端技术和产品的开发。就在此时,公司内部创业的想法诞生,自己也被选中成为初创团队一员,在离职与参加创业的选择中徘徊了一周多,最后因为好奇心、无所畏惧以及老板画的”大饼”,选择参加内部创业项目,体验了一把真实的创业。

三、前端面试经验与教训总结

这一次终于实现了两年前想做而未做的事,虽然来的时间晚了些,自己也迈入了30岁,成为一名的”老程序员”。有时候会害怕,自己成为那种一年的经验复制了好多年,技术水平停留在某个阶段的”老顽固”。痛定思痛,反思了很久,好在2018年年底,终于做出抉择,进入主流互联网技术领域,拥抱不断变化的技术,主动学习。

从去年年底互联网公司大批裁员,寒冬来临的新闻四处散播。对于这种情况,只能说我不是破坏大环境的人。这里,我非常喜欢本山大叔的那句名言“自己没能力就说没能力,怎么你到哪儿,哪都大环境不好,你是破坏大环境的人啊?”。在一个多月的面试过程中,最大的感受是对能力的要求提升了许多,只要本事够硬,内功修炼成熟,机会非常多,大厂和一些优秀的互联网公司的招聘需求一直都有,从未停止过。

这一次用了将近半年时间,系统补充了前端技术的基础知识与主流框架的应用。最后又腾出一个半月的时间参加各种面试,由于使用的React相关的技术栈,参加过阿里、腾讯、美团、头条等大厂的面试,也去过一些软件外包公司和中小型互联网公司的面试。累计面试二十多家,通过最终面试的有五家,一线大厂全面扑街。

参加前端面试的过程中,经历过被极个别面试官嘲笑技术太差当场拒绝的尴尬,问的问题答不上来空气瞬间的安静,被一层又一层追问到语塞。当然也有很多温文尔雅,谦逊的面试官(大厂居多)给予耐心的指导,也深刻体会到了大厂对基础知识、专业素养以及综合素质的重视。

这一个半月里, 有半个月为了准备项目和面试题,闭门不出,为了节约时间,每天最多休息六个小时,吃了两周的馒头加咸菜,早晚两杯咖啡保持不困的状态。

为了应对笔试题,将家里的落地窗作为黑板,每天用白板笔将常考的题目和答案默写一遍。最害怕手写代码的笔试题,对于手写代码,则是在电脑上敲完一遍,又在纸质笔记本上写一遍,来来回回写了好多遍,做到能够默写。除了Promise/A+实现原理的代码没能默写出来,这也是未来要实现的目标之一。

四、专注未来的长期真实价值

自上一次的连续日更100天计划完成后,两个多月没有写类似的文章了,写内容的灵感少了很多,也缺少逻辑性。想起小时候,语文课本里卖油翁“唯手熟尔”的故事。写作和技术能力的提升都是要靠长期(3年以上)练习与积累,其实许多需要精通的领域都是如此。

之前认识一位写作达人,对于如何写出高质量的文章,给出的答案是“不计任何回报地每天写作,坚持3年”。想必对于技术能力的提升也可以借鉴这种长期学习和投入的做法,看到很多技术博客和公众号,其实已经有很多人已经在实践。

最后,感谢在面试过程中,帮助自己打消对年龄担忧的面试官(美团),该担忧的是自己的认知、能力和成长。新的起点,作为一名热爱互联网却一直徘徊在互联网边缘的程序员,在30岁来临前做出选择,进入主流互联网行业,也算半个转行。

接下来,在自己热爱的领域,拥抱变化。未来很长的一段时间,多阅读(纸质书)多思考,多做项目多总结,专注于长期的学习实践、个人成长和真实价值,提升核心能力和认知