代太太发文:
一转眼在硅谷从事 IT 工作超过五年了,从一开始基本不会的小白到现在在顶级科技公司管理一个工程师团队,回看自己的成长感慨万千。力扣(在美国是 LeetCode)算是我走向科技工作的敲门砖,陪伴了我六年左右,正好看到有回馈力扣的机会,希望尽自己的绵薄之力帮助社区的小伙伴们。这篇文章主要来源于两个视频内容,总结了我转码和跳槽的过程,可能并不是特别符合征文要求,不过也希望给大家带来一种不同的呈现方式。
至于动机,主要是当时的男朋友现在的老公在加州留学,我们反复讨论得出职业初期在美国发展可能更加容易,而且如果考虑在美国工作,软件工程师可能是一条捷径,回报高代价小。事后证明这些思路都是正确的,但是道路一定是曲折的,好在我凭借北大的背景和信息管理和IT沾边的课程,成功申请到了计算机硕士。我能想象国内需要换一个行业的难度肯定更大,致敬在路上的转码人。
然后碰到的困难就是对基本工具的不熟悉,以及对于工作期望的不明确,这些都在视频中有具体的 “生动例子”(背后其实都是流过的泪和汗)。
最后说说 “女程序员”。女性工程师在美国也算少数群体,科技公司包容性的文化的确给予了我很多的支持,但是不可避免地我会在工作中碰到多多少少的不尊重。这时候,我就会暗暗对自己说,让我用实力证明我自己,让你们看到我说的是对的。就我了解的情况来看,国内的程序媛生存环境可能更有挑战,来自企业文化对女性特别是育龄女性的歧视,加班和高强度工作等等,作为两个宝宝的妈妈,很希望能与国内的程序媛建立联系,相互鼓励。
第二部分的视频里讲到了我跳槽的过程,这个可能对大家会有更直接的帮助。不得不承认在力扣刷题和之前考试有异曲同工之处,而考试恰恰是我擅长的。具体的过程在视频里描述得比较具体,这里重点来讲讲 “瓶颈期”。任何技术实力的提升都有一个过程,初期往往上手了以后非常快,但是不久就会碰到瓶颈,算法数据结构方面也是如此。这时候我用的两个方法来源于高考,一是使用 “错题本”,反复研究那些有难度,老出错的问题,想办法总结一般性的方法;二是分类攻克,一旦想到了一般性的方法或者模版,我就赶紧找相同标签的题目,看看我找到的方法能不能用到上面。如果可以,那很棒,我就多做几题加深影响;如果不行,那我会再看看自己的方法,或者去网上找找别人是怎么分析的。这时候,只有针对性地花大力气,才能有所突破。
关于职业和事业的境界,网上有种说法,叫做 “奴徒工匠师家圣” 七层境界。对于程序员来说,虽然不尽恰当,但也可以找到一些有趣的对应,基本描述了 P4-P10 的进阶路线。
“奴” 可能对应于实习生,打打下手,干一些 fulltime 不是很乐意做的小活。
“徒” 刚毕业的学生,基本由组里的人带着,需要学习大量的经验。
“工” 就是有 3 年左右经验的初级工程师,团队的好帮手,老板的好工具
“匠” 就是高级工程师,输出主力,大多数 terminal level 指的就是这一层。能够产生 group level 的 impact
“师” 对应技术大拿,tech lead,能够产生 org 级别的 impact
“家” 就是公司的希望,能够独当一面,或者是小公司的 CTO,产生公司级别的 impact
“圣” 江湖上流传的传说,能够引导整个行业的走向,比如 Jeff Dean,Linus Torvalds 等等
我自认为在技术上的确没有特别大的追求,能力也有限,但我自认为在沟通交流特别是与组员的共情上有很大的优势,我能意识到每个人的想法,当他们拿到新项目的时候内心戏大概是怎样的,这点我认为是作为管理者的一种能力。技术上,我对客户端后端都有比较深入的理解,所以这种对系统的大局观能够让我在管理者的位置做出相对更大的效益。既然技术和能力都成熟了,当老板和我谈起转管理的机会时,我当然乐于尝试一下。目前来看进展顺利,可能也是我在思想上有了充分的准备:我从来不认为管理水平是与生俱来的,而认为它和 C++,算法,数据结构一样是一种习得的技术,区别仅仅在于对于管理能力的体现和衡量并不如技术问题这么直接而已。所以业余我也会经常看看科技行业管理方面的书,提升自己的水平。希望这点之后有机会跟大家详细分享。
先写这么多,抛砖引玉,希望大家喜欢视频的内容。由于上传视频大小限制,上传了 480p 版本。高清版本可以搜索 B 站 geniusroger2000,或者 YouTube 搜 Emma Zheng,欢迎关注,一起交流!