我与淡蓝色的回忆
2016年的春天,我从海淀来到了朝阳,跨过了半个十号线,从苏州街到双井,当时的我刚从一家传统软件公司离职,在那一个月前刚刚通过东哥(@Darren)面试拿到了 淡蓝(Blued)的 offer,起因还是因为东哥在Q群讲了一句:“公司招人,有没有人感兴趣要来试试的”,当时看到这个消息就立马联系了东哥,当天晚上将简历发了过去,并约了几天后的面试。
入职前
与东哥的相识,更像是一段追星的过程,我14年开始工作,在进行了一年左右的 java 开发以后,感觉愈发的不喜欢这门语言,然后在公司也会接触到一些前端相关的页面开发工作,对 Chrome 浏览器的调试体验所折服 (对,我因为 Chrome 喜欢上了前端) ,后来托朋友内推了一家公司面试前端岗位,当时处于盲目自信的状态,认为自己在公司会写几个 HTML 页面,写一些 CSS、JS 代码就已经可以胜任前端的工作了,结果面试妥妥的挂掉了,基本上是面试官问什么,我都不知道;经过这次面试以后让我明白了,要想自己完成一次跨行,首先要了解那是一个什么职业,都需要掌握什么知识;
所以就开始买书、看博客,学习各种前端相关的东西,在刷博客的过程中会经常在博客园中看到一位名叫「犀利的东哥」的博主,他的文章会涉及前端的基础、一些疑难杂症的解决方案,通过他的博客能够学习到很多知识,在心里也愈发的佩服这位博主,在他的一篇文章中看到了他所创建的一个Q群,果断发送申请,非常迫切的想要与偶像建立联系;
后来在群中经常冒泡、唠嗑,也遇到了很多要好的小伙伴,一起出去聚餐、爬山、参加各种分享会议之类的,混的比较熟了;所以当时看到了这个招聘,立马就把简历交了过去,内心非常珍视这个可以更进一步的向偶像学习的机会,面试也比较顺利,面完以后第二天就向当时的领导提出了离职意向,希望能够早日来这里进行一场修行。
初到公司
在刚入职的时候,周围的一切都是陌生的,甚至连操作系统都是我之前所不熟悉的,在之前的开发过程中都是使用的 Windows, Mac 系统对我来说是一片空白,入职第一天基本就是在搜索各种 Mac 的操作方式(包括关闭软件、切换输入法之类的),在所使用的技术栈上更是压力山大,gulp、webpack、shipit、koa、express 等等都只是在网上看到过,在自己的 helloworld 项目中用过,没想过这些工具有一天会成为我日常开发所必须的;
当时对 Linux 系统也是完全的不了解,导致第一次上线就把公司的 web 站搞挂了,在找东哥求救的过程中心里也一直在想 “我会不会因为这件事情被开掉”,在刚加入公司的前两个月,一直都是这样的一个状态:不会,但是也要做,差不多是头天晚上查资料,第二天就要应用到实际的项目中去;每当一个我所做的页面被部署到线上之后,都会特别担心有自己没有考虑到的情况,导致页面报错了、无法访问之类的问题。
我之前所在的公司,是从来没有加过班的,基本上就是17:30到点儿了就下班打卡走人,回到自己住的地方做自己的事情,而来到了 Blued 以后,第一次体验到了加班,那种八九点钟公司还有不少同事在工作的场景也是我之前未曾见过的,还记得四月份第一次做的运营活动在零点上线后打车回家的路上还发了一条朋友圈感慨 (后来发现这种事儿经常发生,也就不发朋友圈了)。
逐渐适应
在熟悉了新的工作方式、环境以后,我才开始去感知周围,我非常喜欢这种互联网的工作氛围,就像我 16 年的年终总结中所提到的,这周围没有充斥着 X 总们颐指气使,每个人的声音都可以被听到,大家会一起来做好一件事情,这种环境让我觉得很舒服,可以安心的去钻研技术,去真正的做有用的事情。
随着时间的推移,我也负责越来越多的页面的开发维护工作,在这过程中我们还落地了 React 的应用,并在这之后尝试过一波小程序、ReactNative,那段时间基本上每天都在接触新东西,中间也一度想过放弃,心想为什么就不能老老实实的去做页面开发呢,为什么要来折腾这么多东西。可还是觉得搞这些新东西比较吸引人,总觉得它会带给我不一样的收获,后来事实证明也确实如此。
再之后因为一些机缘巧合,部门同事的离职、而我刚好又因为做 Node.js 相对多一些,公司直播业务的服务端研发工作也落到了我的头上,从刚开始的给接口加个字段、加一段逻辑,做一些维护性工作,到后来的参与版本需求评审、规划版本所需的接口、提供文档等一系列操作,也逐渐的将工作重心转移到了服务端接口的研发上。
在经历过多次晚上被电话打醒修改 bug 的操作下,也习惯了晚上睡觉手机铃声常开,经过一段时间阅读老代码,接手新需求,逐渐的对自己所维护的这一摊子事情开始有了一个完整的认知,胆子也变的大了起来,开始着手进行接口的优化、Node.js 版本的升级。
做一名工程师
当我完成了主要项目的第一次升级以后,环顾四周才发现一个问题,我所在做的事情只有我一个人在做,这让我觉得有些孤独,仿佛现在在做的事情与我所理解的「前端工程师」的本职工作渐行渐远,这让我很困惑,并带着这个问题请教过春叔(我们 CTO 大人),春叔的一句话我会一直记着 “你首先是一名工程师,其次是前端工程师。”,这句话也是让我开始意识到,工具、框架、编程语言,都应该是用来解决问题的方式,我不该给自己设置一个限制,只在一个圈内去发展,让路越走越窄,我应该更多的了解解决事情的方法,去成为一个解决问题的人,而不是一个被贴上某种功能特性(可编写前端页面)的螺丝钉。
开始带人
随着业务发展,一个人的精力始终有限,为了更好的去让业务跑起来,我开始带着其他的小伙伴去做直播的服务端开发工作,从最初的两人到现在我们小组五人;在和小伙伴们合作的过程中,也是对我个人的一个挑战,我开始不再只是对自己负责,还需要对组内的其他小伙伴们负责,如何能够让每个小伙伴都满意,这件事情我直到现在都没有做的很好。
但是带人的体验让我觉得,流程这个东西还是很有存在的价值,我曾经觉得流程是拖慢进度的东西,但后来才意识到,流程给我们减少了很多不必要的麻烦。规范化也是如此,如果放任大家天马行空的在项目中挥洒自己的“才华”,难免会写出一篇篇的难以辨识的草书,经过时间的沉淀,就变成了一桩桩历史谜案。
所以在我带人一段时间后,就开始研究这些解决方案,最终选择了 ESLint + TypeScript 这两个工具来帮助我们迈向规范化。这两个工具的效果还算是不错的,至少能够让团队的代码看起来差别不大,也能够减少一些粗心大意导致的问题。
同时我开始主持团队的 code review 工作,在代码上线前与小伙伴们一起讨论需求的实现方式、发现隐藏的问题,希望通过 code review 的方式能够让大家都有所成长、相互了解。
陷入瓶颈
在带人一年多的时间里,我们把手头的项目都进行了重构优化,清理掉了一大部分的历史包袱,工程化也逐渐做了起来,开发效率有了一些提升,优化接口、优化 Redis 存储这类的事情在做完之后确实会有一些成就感,但喜悦之情并不会持续太久,大多数的时间就陷入了无趣的空虚状态中,日常的需求开发组内的小伙伴们已经完全可以 hold 住了,我也就是定一下接口设计方案、数据存储方案,开发完成后进行 code review,除此之外已经没有其他的事情可以做了。
所以开始在公司内寻找新的机会,有尝试过与 leader 沟通负责一些 H5 相关的工作,想用组内的资源来帮助做一些更多的事情,但是最终讨论的结果还是无;后续审视自己与团队,我们拥有什么资源,我们还能够做一些什么事情,但发现已经没有什么可以做的了,看不到新的挑战在哪里。
收拾行囊
我需要找到一个改变现状的方式,最终还是决定出去看看机会,既然现在的环境单靠自己已经很难再有新的突破,不如换一个环境,去熟悉新的事物,去学习其他公司的团队是如何运作的,看看自己的水平放在其他环境中究竟还能不能取得现在的成绩;那么就开始准备简历,然后托朋友投了滴滴,面试很顺利,拿到 offer 后再去和 leader 进行沟通,敲定了离职的时间后开始准备交接。
总结过去
Blued 是我进入互联网的第一家公司,它曾让我感受到互联网人的那份做事的热情与纯粹,我在这里认识了很多好朋友,得到了大家很多的帮助、从他们身上学到了很多,就像春叔在我的入职三周年邮件中说到的,我已经从一个代码爱好者变为了一个合格的工程师,这对我来说是一个非常好的评价,我也会继续努力做一个解决问题的人。
我在这家公司奋斗了四年,我认为这四年是非常成功的投资,学到的很多知识都是终身受用,但很遗憾的是不能够陪公司一起上市了,只希望早日能够在朋友圈中转发公司上市的消息💗。