程序员中的老司机们,30后的路该开向哪里?

开发
我是程序员,也是老司机。我已过而立之年,也还没过而立之年——年纪是到了,却还没有立,不论是立德、立言还是立功。你问我慌不慌,我问你路在何方。

[[204052]]

我是程序员,也是老司机。我已过而立之年,也还没过而立之年——年纪是到了,却还没有立,不论是立德、立言还是立功。你问我慌不慌,我问你路在何方。

我当程序员数数日子,八年有余,自封老司机也不算太过分,至少写过的代码比吃过的盐多。那些碰到过的臭虫,被指派的需求,请求的网页,搜索的问题,都是沿路的风景。你问我风景美不美,我问你前路在何方。

我写过客户端、做过网站、写过后端服务,踩过的坑,多过别人埋过的地雷。网页开发很无聊,客户端适配也枯燥,服务器高并发只能靠重启。你问我焦虑不焦虑,我问你午夜加班键盘声,是不是如同窗外蛙鸣焦躁不安。 

[[204053]] 

你问我迷茫不迷茫,我问你前方该左移还是右移。

30 了,写代码十年八年了,老司机们coding的时候很熟悉左移和右移,但是开车到这个年纪......想想当年读着侯捷的书,看着人家「左手程序右手诗」,羡慕着他的功成名就,文笔风流。到如今,开始流行「左手右手一个慢动作」,动作一慢下来,就开始在想:

30 岁以后的路,该怎么走?是该继续码代码,还是转管理?还是左手程序,右手做点其它的营生?那几年以后,左边的手艺是不是该放下了?还是勇敢创业?30岁后的路,该左移还是右移?

代码能写一辈子么?这是个问题。英国的莎士比亚并没有告诉我们答案。85 年的我,身边不少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 代码。

[[204054]] 

C++ 之父

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

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

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

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

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

6.泡沫总会过去

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

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

  • AI 公司很多,这些公司的工程师职位更多。
  • 不要什么热抢着去做什么。安卓热,你做安卓,小程序热,你怎么不转小程序?
  • 算法好的,不妨学学写好代码。代码的优化,对算法的效果也很重要。
  • 工程好的,不妨学学算法,看看机器学习的资料和论文,了解常见的 Task 使用的算法,了解主流的机器学习算法、工具、平台。
  • 是武学奇才的话,不妨练练老顽童的双手互搏,算法和工程兼修。向谷歌大牛 Jeff Dean 看齐。
  • 擅长什么,不要放弃。擅长工程,就不要眼红人家搞算法的。坚持到底,路才能更宽,走得更远。

[[204055]] 

Google 大神 Jeff Dean

左:打工赚钱? 右:创业冒险?

当技术积累到一定程度的时候,大部分人都会技痒难耐,考虑创业。原因有几个:

  1. 给别人写代码,期权从几千股到几万股, 比例从毫不知情到万分之几、千分之几就不错了。自我感觉很好,但并不是创始人,也不是早期员工。高回报和自己关系不大。
  2. 公司发展很快,不代表自己发展很好。
  3. 你需要给自己一次超越领导的机会,需要一次弯道超车的机会。
  4. 你喜欢什么事情你来安排,你说了算。你不喜欢别人指指点点,尤其是那些不那么让你服气的人。
  5. 你喜欢冒险,未知的世界真刺激。
  6. 你喜欢挑战,挑战技术、管理、产品、运营。在全方位的挑战中,你的阅历得到丰富,思考得到升华。
  7. 你有好的产品想法,想要让它在你手里变成现实。让用户喜欢、受益、着迷享受,你喜欢着用户的喜欢,你忧伤着用户的不便。
  8. ……

30 了,写过的代码如同作家,早已著作等身。30岁的你,坐在冷板凳上,可能写过了网站,写过了 Java,写过了 C++,甚至也赶上了机器学习、深度学习的热潮。你发现,你需要更大的挑战。于是,很多人创业了——不管是万事俱备,还是仅凭一腔热血,总之,你冲上去了。听说创业成功的比例万中无一,但是你管不了那么多,且行且走吧。

一些朋友,是连续创业者。十个人以内的小团队,坚持好几年,这个项目不见起色,就换另一个项目。什么都需要自己干——融资自己想,项目自己拉,招聘自己做,核心代码自己上——真累啊。有些人坚持了几年,产品没用户,收入不见增长,终于放弃了。这类朋友,可能加入 A 轮后的公司,当个技术负责人。也许了此余生,也许只是短暂的休息,等待下一次的创业旅程。

一些朋友,在 BAT待过三四年,级别不太高(T5 到 T6)年薪四五十万。眼看着在大厂加薪升职希望渺茫,他们开始寻求捷径去创业。找个早期公司,有 BAT 背景,加上沟通能力,以及带队经验,和创始人一拍即合,第二天就开干。但多数创业没有太好的起色。尽管给了CTO 的职位,除了技术以外也不擅长别的,也不好意思和老板提加薪。几年下来,薪资是高了一些,并不比同期专攻技术的朋友薪资高。创业几年,有的朋友从四五十万发展到了年薪百万,运气好的去了美团、头条、小米,期权价值更是翻了好几倍,或许早身家上千万了。

面试过几个候选人,在创业公司当过 CTO或者合伙人 ,技术深度一般,擅长的是技术广度。其实很多创业公司的产品,技术含量并不高,哪怕你做了前端,又管理后端,你的能力在市场上不见得比 BAT T6 以上的高。加上天天会议,代码生疏,技术深度并不够,大公司的高管你搞不定;A 轮+明星创业公司,技术总监你也搞不定。这几年忙各种需求,人工智能的算法也完全陌生。这类候选人,也许三四年前在 BAT 是 T6 的级别,面试过后我们也只能给到 T6 的待遇。因为没有人会为你全面但不突出的能力买单。

每个人都有自己的路,别人的路不一定合适你,适合你的路也不一定适合别人。大家都需要根据自己的能力,心态,综合决策,再做出是继续给别人打工,还是单枪匹马出去闯江湖。

张爱玲说,“出名要趁早”。你看00 都开始创业了,再不创业,眼看就成老老一辈了。不过,成名的毕竟少数,创业成功更是凤毛麟角。30 岁左右的我们,在放弃稳定的工作之前,也先别慌,了解下行业,了解下商业,再决定要不要踏上创业这条孤独的不归路。

不创业,也没问题。平凡之路,也有其幸福,有其荣耀。

结语

30 岁了,我们有过荣耀,有过痛苦,有过迷茫,正如朴树的《路途》唱到:“我们路过高山,我们路过湖泊,我们路过森林,路过沙漠,路过人们的城堡和花园,路过幸福,我们路过痛苦,路过生命中漫无止境的寒冷和孤独”。

这是个旅途。路途多歧路,歧路中有几个困惑和选择:做工程还是转算法?打工赚钱还是创业冒险?

30 岁了,不管是否三十而立,总归我们都是成年人了。面对困惑,我们都应该深思熟虑,做出成年人的选择。

这世界真好。

每个选择和机遇的岔路口,转身都会迎来截然不同的精彩人生。此刻你若有所思的时候,有人在更新简历,有人在准备面试,有人拿了offer走在升职加薪的路上。

责任编辑:庞桂玉 来源: Python开发者
相关推荐

2017-09-20 09:06:20

程序员网站后端服务

2017-10-12 10:30:39

Python陷阱与缺陷

2014-03-25 09:56:42

程序员30岁后

2014-03-27 11:10:46

程序员老程序员

2019-10-25 10:33:17

程序员技能开发者

2009-04-17 15:48:41

程序员价值

2017-10-14 15:44:29

代码Python陷阱

2018-05-15 16:57:23

程序员

2014-07-31 13:41:36

程序员

2011-11-07 10:29:39

程序员

2017-11-27 10:02:29

程序员技术提高

2018-09-28 15:06:41

MySQL优化指南数据库

2017-11-17 17:53:41

程序员职业发展规划

2018-11-15 15:27:20

程序员代码量编程

2022-02-24 17:32:38

程序员互联网公司离职率

2012-03-19 09:31:44

程序员

2018-06-29 16:04:40

2019-12-19 15:08:09

程序员技能开发者

2019-09-19 10:15:15

程序员人生第一份工作文章

2012-08-30 09:29:34

点赞
收藏

51CTO技术栈公众号