一晃我加入新的公司已经快两年了,在一开始的一年半中我一直在公司的产品部门做一名全栈工程师,当然作为的“全栈”也并非真的是“全”栈,主要的工作在于实现新的产品需求,定义微服务接口——实现微服务——实现前段逻辑从微服务存取数据——渲染前段界面,主要就是做了这些工作。使用到的技术栈有Apache Thrift,GraphQL,Express, React。这一年半对我来说,主要学习了Node JS和React,从前段小白变成了前段不那么小白。虽然我仍然不能实现非常炫酷的界面,但是至少我知道如何去模块化的构建前段界面,一个现代化的前段,它的HTML,Javascript,CSS是怎样编译,打包,传输到浏览器工作的, 服务器端的渲染逻辑是怎么和浏览器端的渲染逻辑共用一套代码的,等等。

今天3月开始,由于受疫情的影响,公司里的工程师都进入在家办公的状态,而我则在这个时间点做出了一个重要的决定——换组。

其实换组的想法早已有之,前段固然博大精深,但是我也并没有成为前段高手的想法,不是觉得前段高手不厉害,而是个人的兴趣爱好更加广泛。同时,在日常工作中,重复的劳动也越来越多,每次实现新的需求,并没有在其中学习到新的内容,久之对工作内容的热情也会降低。

对于我个人来说,Infra组是有吸引力的, 作为一名自认为要成为“真正的”全栈程序员的程序员,我一直有一个非常根本的疑问——那些Infra组的成员一天到晚在忙什么?在我的认知里,并没有Infra程序员就比写业务逻辑的程序员高人一等的看法。由于东京只有一个产品组,并没有Infra的成员,导致很多时候在亚太时间我们的生产环境出了问题,我们也只能干着急,等待美国同事醒来处理。我在很久之前便和当时的老板说,要是东京有一个Infra的成员就好了,没准我可以兼职,也算是埋下了小小的伏笔。

正在此时,公司微信群里我现在的老板正好发信息,说Infra组正在招人,我便迅速的回复了“想去”。

原本并没有抱太大的希望。一个问题是我在东京,而Infra组在加州总部,如何跨时区协作是一个很大的挑战;另一个问题是我现在的组里只有我一个全栈程序员,组里几乎所有后端的活儿都是我来包揽的, 如果我换组了会出现后继无人的问题。

后续的发展却顺利的超出想象,Infra组的老大很快私信了我,聊了一会儿,我表现出了对加入Infra的强烈兴趣,然后我又和当时的老板谈了换组的事情。当时的老板给与了我很大的支持,表示欢迎我去尝试新的职位,也对于东京办公室能有一位Infra成员感到欣慰——貌似这样的两次对话就定下了我要换组的基调。

很快我的换组就正式的确定了,因为在原来的组还有一些负责的项目,所以我暂时还需要有一个转型的时期,在这期间需要两边花50% + 50%的时间(但其实有时候会50% + 70%)。

没过几天,新的老板在远程给我来了一次onboard,基本上介绍了组里在做的一些项目,以及on call的一些手册链接,然后问了我想做的项目。作为加入infra组的第一个大任务,老板给了两个选择,一个是我之前完全没碰过的一个cron系统的改进,一个是做前段访问数据层的中间件。

我在短时间内做出来后来觉的非常正确的决定——我选择了做前段访问数据层的中间件。

我选择的理由是这个项目是一个新的项目,没有历史包袱,并且我正好有一年多做前段的经验,对于前段代码还非常的熟悉。

其实我加入Infra组的初衷是为了接触新的东西,为什么我要先接这样一个活儿呢?

其实换组、换公司都要经历过这么一个过程,就是脱离自己舒适区域 —— 做同样的项目很长时间后,熟练度不断的提升,完成相似任务的速度越来越快,但相反的自己的提升速度就会下降。但反过来看,对于自己所在的组和公司,你处于舒适区域的输出能力反而是最强的。在新人入职的时候,不管新人在之前岗位经验是多么丰富,工作的速度是多么快,往往领导都会先派给新人一些简单的活儿,让新人可以快速的有产出。这样也可以让新人在新老板/组员面前证明自己的能力,再循序渐进的去接触复杂的工作。

而我在之前的经历中就见到/听到不少反例,一些有经验的“老手”在加入新组后就迫不及待的要“搞大新闻”,结果一头扎进去很长时间都没有结果,结果造成新老板对“老手”不信任,“老手”自己的信心也受到打击。

我作为在产品组工作了一年多的全栈工程师,自认为在公司的程序员中有一定的口碑,换组后,首先要做的是证明自己可以胜任新组的工作,一开始用一个自己较熟悉的领域,同时又是新组业务相关的任务作为过渡,是非常好的。新老板也肯定了,说我是“最适合做此任务的人选”

未完待续。

版权声明:本文为chaosyang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chaosyang/p/accept-new-responsibilities-part-1.html