查看原文
其他

写代码的老司机们,30后的路该开向哪里?|系列二:做工程还是转算法

2017-09-15 叶顺平 技艺丛谈

人到 30 ,职场上的我们总有这样那样的困惑,程序员中的老司机们亦然。在上一篇文章《系列一:写代码还是转管理》中,我们分享了 30 岁后的程序员,是应该继续写代码,还是果断转管理的话题。本系列总共有四个分享话题,在本文中,我们分享下到底要不要转算法的话题。



左:做工程?右:转算法?


我虽然工程出身,不过也涉猎算法,面试过的算法候选人也有几百个了。有一个面试的原则是,算法得在白板上写写代码。不写代码,那是耍流氓。不是说模特都开始学习 Python 了么,光简单写写 Python 脚本,就敢号称自己是深度学习的高手,那我们找一个数学系的学生得了。


人到 30, 虽然还不算人到中年,还不需要保温杯,不过前路到底如何走,也是操碎了心。身边有不少朋友,觉得自己写不动代码了,打算转算法。


总结了一些写代码的人想转算法的理由:


  1. 算法工资高,年薪几百万美金的科学家不少。

  2. 算法可以长久做,很多科学家都是大器晚成。

  3. 担心自己再过几年写代码真写不动了。

  4. 写代码的市场竞争力在走低。

  5. 写代码有点过时了,现在人工智能和深度学习这么火,应该趁热打铁。

  6. 目前是算法工程师溢价的最佳时期,正如是人工智能泡沫最大的时期(假如有泡沫的话)。


有个朋友他目前所在的团队,工程是他从业的公司里最好的,比一些大公司还出色。跟我说基于一些考量,想找个专注做算法的工作机会。我说,其实我身边不少做工程的人,都能拿到年薪一两百万。你身边专门做算法的,现在能拿到年薪百万的有几个?朋友已经做了决定,怎么劝都没用。


很有意思的是,我之前面试过一个学生,算法基础很好,在微软实习过。但是他觉得做算法很无聊,学不到太多工程的经验,大部分时间在调整网络结构,调试模型参数,跑实验,改脚本。想找一个能好好写代码的工作。


可见,你想往东走,可能东边的人正想往西走。如同围城,城外的人想冲进去,城里的人想逃出来。各有各的苦恼。做工程就一定比做算法差么?事实并不见得


1.工程的工资也不低。


谷歌传奇 Jeff Dean 就是偏工程的大佬,他的工资可不见得比任何机器学习的大佬低。能搞出谷歌三大神器(Bigtable, Mapreduce, GFS),做出机器学习平台 Tensorflow,照样牛逼。算法不够好,我们不妨了解算法专注工程啊。算法也需要训练、GPU、分布式、存储、嵌入式,都是工程师的机会。


国内不少牛人,也主要是工程出身。像阿里巴巴合伙人多隆,级别 P11,他一个人能顶一个高效顶尖的团队。看他做过什么——文件系统 tfs、key-value 系统 tair,cache、搜索、通讯框架...别告诉我这些是算法或者深度学习的活儿。百度出过戴文渊这样的算法牛人(目前第四范式创始人),也有林仕鼎这样的工程好手。你问我谁比较厉害,我只能说各有春秋。


2.不见得每个做算法的都可以长久


算法干得长久的固然有,但不见得每个做算法的都长久。举个简单的例子,大家回顾一下整个数学发展,出过的少年英才多,还是大器晚成的数学家多?高斯,欧拉,伽罗瓦,阿贝尔,哪个不是少年成名?


算法更新较快,更需要创造性。我敢说,国内的大部分公司,并不需要科学家,也请不到称得上“家”称号的科学家。原因很简单,聪明的工程师看看论文也能实现出来。做得快,训练快,调试快,各种超参数、网络结构等快速做实验,靠工程能力,快速高效搞定优质的大数据,效果比什么都管用


3.工程师究竟能写到几岁


就看操作系统和编程语言的几个大佬吧。Linux 之父 Linus 虽然成名早,现在也快 50 了,他不写代码了么?C++ 之父,1950年出生,依然活跃在技术圈。


Python 之父,1960 年出生,这会儿依然在技术公司任职,目前应该在 Dropbox。你可能说这些人都是大佬,没有参考意义。我身边接触过的几个 CTO, 目前依然在写一些代码,能加班,能 Review 代码。


C++ 之父


4.写过的代码,都是你的财富


写过的代码版权归公司,但都是你的财富。写一百遍一样的代码,没法增值,但是踩过一百个不同的坑,就是你独有的经验和价值。刚毕业的人没法有,正如刚毕业的人没法有岁月雕刻的皱纹一样。


有一个很有意思的问题,我面试的大部分工程师,哪怕比较资深的,对机器学习都没什么概念,别说 DNN,CNN,LSTM 等,对决策树,SVM,CRF 也完全陌生。相反很多北大清华的应届生,对这些目前热门的机器学习算法都比较熟悉,不少在相关的领域中,使用这些算法发表过论文。换句话说,年轻人搞新算法更有优势


5.人工智能和深度学习这么火,工程要趁热打铁


人工智能是很火热,但人工智能公司里大部分都是工程师,科学家和研究员没几个。老板不会给你那么多时间搞研究,能跟上最新的研究成果,就足够在业界领先了。最好的百度可能需要最牛逼的科学家,但是Top 10靠牛逼的工程师就够了。人工智能创业百花齐放,AI + 传统行业的机会多多,目前人工智能的机会,肯定不是一家两家赢者通吃。


6.泡沫总会过去


泡沫,总是容易过去的。等你学好了吴恩达的机器学习课程,做好了面试准备,可能到时候你的竞争力还不如普通架构师值钱。


上面泼了这么多冷水,不是说做工程的转算法就不行。什么样的鞋子适合自己,穿一穿就知道了。给几个自己的看法:


  • AI 公司很多,这些公司的工程师职位更多

  • 不要什么热抢着去做什么。安卓热,你做安卓,小程序热,你怎么不转小程序?

  • 算法好的,不妨学学写好代码。代码的优化,对算法的效果也很重要。

  • 工程好的,不妨学学算法,看看机器学习的资料和论文,了解常见的 Task 使用的算法,了解主流的机器学习算法、工具、平台。

  • 武学奇才的话,不妨练练老顽童的双手互搏,算法和工程兼修。向谷歌大牛 Jeff Dean 看齐。

  • 擅长什么,不要放弃。擅长工程,就不要眼红人家搞算法的。坚持到底,路才能更宽,走得更远。


Google 大神 Jeff Dean


本文主要就程序员人到 30 后,是否应该转做算法,进行了一些自己的分享。在后续分享中,我会就大家的其他困惑,做一些自己的分享,欢迎订阅「技艺丛谈」公众号,阅读后续分享。


  • 系列一:代码写到底还是果断转管理?

  • 系列二:做工程还是转算法?

  • 系列三:打工赚钱还是创业冒险?

  • 系列四:互联网混到底还是转行收房租?


以下文章你可能也有兴趣,不妨点击读读:


混血美女长得好 | 职场混血理论初探

求职迷茫又心累,职场却不信眼泪 : 两个北大男生的职场经验对谈


无论你是在准备实习,正在实习,还是准备校园招聘,初入职场,以下文章可能对你有帮助,欢迎点击阅读。


技术实习攻略——记我熟悉的那些北大清华实习生们

☞实习与校招全攻略 | 这一次,面试官和面试者搞了个深度对谈

☞北大学罢的校招面试之路

技术面试策略:假如只有一月/一周/一日/一时怎么办?

☞实习经验分享之一 | 在小公司,实习生和职场新人,学什么?怎么学?

实习经验分享之二 | 记我呆过的牛人密度最高的技术团队


图源:来自互联网



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存