最近为中文社区写了一篇developer career path的稿子

本文内容已被 [ lvalv ] 在 2020-10-19 07:10:49 编辑过。如有问题,请报告版主或论坛管理删除.

职坛很多资深的同行,希望有机会和大家分享讨论。

=======================================================================

今天借这个平台和大家聊聊developer的career path。我思考这个问题很多年了,一直试图找到适合自己的道路。希望和有类似困扰的朋友们分享,帮初入行的朋友少走弯路。也借此机会和群里资深的朋友们讨论,互相启发。
 
Developer是比较generic的岗位,几乎所有的行业都需要,市场需求一直强劲。初级岗位对相关学历和交流要求较低,收入不错,机会多。因此吸引了大量的理工背景的移民转行,新生代年轻人也源源不断加入。
 
说说负面的。Developer工作强度高(大概率加班),在非科技行业visibility低(升职机会少),知识更新的速度快,入行要有终身学习的觉悟。
我父亲退休前是机械类工程师:前20年学习和积累经验,后20年德高望重。Developer虽然也叫Software Engineer,但传统工程师的career path并不适用。因为技术淘汰周期短,经验贬值快,产品重写/部门重组/公司倒闭的周期也越来越短。我很喜欢Anne之前分享的一句话“没有job security,但是有career security。”活到老学到老是入行必须有的觉悟(重要的话多说几遍)。
 
Developer的career path有三个方向:
  1. 横向的不同的技术领域间的切换。比如Web转Mobile,backend转Big Data。
  2. 纵向的成长,就是内部升职,承担更大责任,属于leadership层面的成长。
  3. 斜向的发展 (念着真别扭),转行其他岗位,比如:PM, BA, DA(Data Analysis),QA, Product Manager等等。
几个方向可以在不同时期组合进行。比如早期更换技术领域扩大视野,中期在稳定的公司多做几年争取升职。因人而异,没有定式。  
当然还有一个方向,创业自己开公司。大话题,咱今天就不讨论了。
 
先说横向的发展,我根据市场需求,粗分成:Web, Mobile, Data Engineer, Machine Learning Engineer, DevOps几个领域,每个都有自己的技术stack和特点。新手入门到成为senior至少需要几个industry level的项目,5年+的时间沉淀。
 
Web Developer是个大类。细分有web frontend, backend和full stack等等。
很多转行新人从web frontend开始,自学流行的framework(比如REACT, Angular,Vue)开启职业生涯。
Full stack是这几年才流行起来的title,但是职责并不新,要全栈技能:Frontend UI开发和后台(比如数据库)都有涉足,可以独立完成中小型项目。
Backend 需要一定的经验或相关学历,database, streaming, distributed system,一般大型复杂度高的系统会有专门的backend developer岗位。归在web里不太精确,可以单提出来算一类。
Web的技术stack最多样化,几乎所有的主流语言都有web framework。Backend的技术更是源远流长、百花齐放,篇幅有限不展开了。
 
Mobile Developer。Mobile是继Web后的一大热点,大约10年前开始爆炸增长(iPhone问世)。很多web developer在这个时期转到Mobile领域。主要技术stack有iOS 的SWIFT/Objective C,Android的Kotlin/Java等等。还有hard core用C/C++写底层模块。这些年一些IoT embeded system也用Android开源系统。
我的观察,Mobile和Web fullstack developer是市场需求最大的岗位,大中小企业都需要。做contract,自己创业,或者“接私活”的机会也很多。当然同时竞争者也多。
 
Data Enginner。随着Mobile/IoT的增长,服务器端更大的数据量催熟了Distributed System和Big Data产业化。Big Data技术是Hadoop stack和近年更流行的Cloud solutions。Data Engineer这几年供不应求,有做ETL和传统backend的developer进来,同时因为是新技术,相关专业毕业生竞争起来也不落下风。
Data Enigneer经常和Data Scientist紧密合作,需要一定数据建模和数据分析的能力。有机会成长为Data Analysis和Data Scientist。
Big Data的技术本身并没多hard core,今后会合并到传统backend工具箱。在Cloud的大潮下,会有越来越多business friendly的工具,技术门槛将持续降低,会SQL就能做Big Data正在发生。
 
Machine Learning Engineer(MLOps)。Machine Learning的技术理论几十年前就有,但是没有海量的数据train model一直停留在lab阶段。近年Big Data的成熟,直接引爆了ML/AI市场。据说现在Computer Science的在校生,10个有9个想做Data Scientist。我这几年参与了几个Big Data, ML的innovation类型的项目,说说我对这个方向的观察。
Data Scientist不一定要PHD和计算机背景,最重要的是很强的数学和分析能力。AI/ML类型的项目从实验室走向工业化,需要大量的automation, 模块化和传统的软件开发流程衔接,涌现了新岗位。比如侧重programing(而不是分析)的ML Engineer。各巨头也纷纷推出MLOps framework和solution。又是一个硝烟弥漫的新战场。
 
DevOps。顾名思义,Development + Operation。前面的大牛们做了很多讲解,还有系统的培训。据我观察,更多DevOps从业人员来自Operation方向。Developer community反响相对平静(可能因为热点太多)。我理解DevOps的终极理想是取消Dev和Ops之间的壁垒。DevOps应该是一个从开发到部署all in one的岗位,不仅限于局部automation。这不是单纯的技术革新,更涉及流程和机构重组。Cloud technology会催化这个趋势。又一个大坑,不展开说了。
 
以上technical domains是比较通用,市场需求大的分类,不涵盖研发类的领域,比如数据库、操作系统研发,底层算法,量子计算机(!)等等,欢迎有insights的朋友来扫盲。
 
花了很大篇幅说横向的技术domain展开。我个人的经验,早期职业生涯应该尽量多做不同的项目,尝试不同的技术stack,坚持持续学习的好习惯。有效的办法是每几年换一次工作或公司内部转组。
有一条略显投机的”高薪“之路是追新技术,打市场的时间差。比如ML Engineer现在方兴未艾,有准备的朋友在市场井喷的时候大概率能拿到高薪工作。但是这个领域是不是真的适合自己,有没有发展空间,是每个人自己的功课。
 
科技行业从不缺机会,每几年就一波新技术的浪潮。如果觉得自己不适合现在的领域,或者缺乏发展空间,观察、等待、为下一个适合自己的浪头做准备,不失为一个好的策略。
 
技术说到底是为business服务才有价值。 追技术不是唯一的出路,也不一定是最好的出路 。很多朋友积累行业知识和人脉,最后会稳定在一个行业里。比如金融银行业,能源行业,广告行业等等。
 
 
纵向发展,内部升职。这方面大家身边的例子很多,有自己的理解。值得一提的是技术路线v.s.管理路线。一般大的公司有这个划分,小公司可能不分这么清楚。
  • 技术路线管项目不管人,比如tech lead, architect。
  • 管理路线是people manager,有人report给你,要做performance review,要花更多精力coach team。比如manager, director, VP, CTO。

两者都是leadership role,但侧重不同。

我做过两年管理兼技术(team lead),后来回到了技术方向做solution architect。现在看管理的经验很重要,即使不立志去爬大公司的梯子,leadership对扩大视野和技术职位升迁都有帮助。
 
 
斜向发展(还是念着别扭),转岗到BA, PM,QA, Product等等岗位。这是另一个角度的职业思考。Developer是个需要耐得住寂寞的工作。特别在非科技行业,责任相对小、visibility低。也许你的性格和抱负更适合其他的岗位,有开发经验对这些职业发展也是bonus。建议有兴趣的朋友向这些方面的大牛们咨询。
 
 
说了很多,感谢您的耐心阅读。以上总结基于我平时的观察思考,与同行的交流,还有阅读。可能有bias,欢迎交流讨论。

所有跟帖: 

好文章!读完了。 多谢分享! -美国老土- 给 美国老土 发送悄悄话 美国老土 的博客首页 (0 bytes) () 10/19/2020 postreply 07:50:18

好文!谢谢分享! -viewfinder- 给 viewfinder 发送悄悄话 viewfinder 的博客首页 (0 bytes) () 10/19/2020 postreply 08:19:41

隔行如隔山,学习了 -米奇的厨房- 给 米奇的厨房 发送悄悄话 米奇的厨房 的博客首页 (0 bytes) () 10/19/2020 postreply 10:13:14

赞!难得的好文章。 -katies- 给 katies 发送悄悄话 (101 bytes) () 10/19/2020 postreply 10:44:02

谢谢。正在写英文版的,会发到Medium上。 -lvalv- 给 lvalv 发送悄悄话 (32 bytes) () 10/19/2020 postreply 12:46:14

谢谢! -katies- 给 katies 发送悄悄话 (0 bytes) () 10/19/2020 postreply 14:00:31

好文。问个题外话,后来那个日本人,你怎么handle的? -加州lalin- 给 加州lalin 发送悄悄话 加州lalin 的博客首页 (0 bytes) () 10/19/2020 postreply 16:42:33

没要。抓紧时间从外面招了一个人。 -lvalv- 给 lvalv 发送悄悄话 (62 bytes) () 10/19/2020 postreply 17:21:46

哈哈,赞一个。这种人蛮普遍的。 -加州lalin- 给 加州lalin 发送悄悄话 加州lalin 的博客首页 (0 bytes) () 10/19/2020 postreply 17:30:38

好文!认真读完了,觉得更适合年轻人看。 -小河石子- 给 小河石子 发送悄悄话 小河石子 的博客首页 (161 bytes) () 10/19/2020 postreply 16:58:39

确实是这样的 -lvalv- 给 lvalv 发送悄悄话 (97 bytes) () 10/19/2020 postreply 19:27:39

还有一个打破盒子的方向,转做投资 -justforfun- 给 justforfun 发送悄悄话 (122 bytes) () 10/19/2020 postreply 21:22:25

确实,应该有投资观念。 -lvalv- 给 lvalv 发送悄悄话 (65 bytes) () 10/20/2020 postreply 05:35:27

好文章,不在此行但希望给孩子看。期待英文版 -SunnyCreeks- 给 SunnyCreeks 发送悄悄话 (0 bytes) () 10/20/2020 postreply 11:00:30

好文,谢谢分享! -三里店- 给 三里店 发送悄悄话 三里店 的博客首页 (0 bytes) () 12/03/2020 postreply 15:00:28

请您先登陆,再发跟帖!