程序员的职业选择与规划
我其实挺享受现在在 Kong 实习的工作,这是一家实力、效率兼具的外企,在经济危机中韧性也比普通的互联网企业要强,比搞 AI 那帮人也靠谱许多。除了实习外,我还签了图森未来的一个三方协议,他们的特点是给的多,据说工作强度也不大。从前途来看,可能搞 AI 会是 2020 年代的一个风潮,我能感受到 AI 的实用性在飞速提升。
但是实际上我这两个工作和 AI 的关系都不大,都更偏基础设施,前者是网关开发,后者是车载系统的开发。说到 AI,算法工程师很挣钱,但除非博士否则很难找到好工作。
所以我也不知道什么是更好的选择。于是我就面临一个想深入,但不知道从哪使劲的情况。如果频繁在不同领域切换,哪怕都是计算机的名头,也基本等于从头来过。我是这么想的:
如果想要好找工作的话,前后端无疑是需求最大的。但三年经验就够用了(后端可能是 5 年),不利于深入,年纪大了就很难找到工作。而且工作往往和业务强相关。同时大量搞算法的硕士同学因为找不到工作,涌入前后端,(大厂)已经极度内卷。不过后端又有非常多的分支,足够开一篇文章讨论。后端的发展前景相对更大一点,其中一些分支长远来看是不错的。实际上,我看到的老程序员,其实大多数是搞后端的,为啥他们能干到四五十岁?因为他们基本上精通几种基础设施的源码(比如 Nginx、K8s 等等)这种积淀新人很难有。
然后就是客户端。客户端和平台、业务都强相关,基本上五年经验就够用了。同时搞算法的硕士同学发现前后端进不去之后,也开始涌入客户端。
还有做安全的。做安全需要紧跟时代,知识过时更快,学习能力要求高,给的也多,但能力普通的就很难找到工作。人老了之后,也很难用技术积淀卷过新人。
对了还有测试、运维。不用想了,短期和长远来看都不是一个好选择。尤其是运维,什么都要懂,给的还少,压力还大。
所以说来,其实我想要确定的是十年后我在做什么工作。那自然排除上述,只剩下那种经验吃香的工作。经验吃香的,说明你的经验基于的是相对不容易变化的系统,例如操作系统、文件系统、数据库、编译器、AI 框架、图形引擎等等。
最近一个趋势是数据库。自从 PingCAP 搞了个训练营,Oceanbase 搞了个数据库大赛,很多大佬都进入了这个领域。可以预见的将来,它会变得更卷。
文件系统和数据库是很像的领域,情况差不多,但相对不卷。缺点是文件系统的灵活性一般不如数据库,需求就更少了。
操作系统的话,基本只有大厂的研发部门、电子相关企业在招,工资不如互联网,需求也少,但长远看是个不错的选择(如果是 Linux 系统相关)。只是由于知识体系过于庞大,下面又分化成大量的子领域。它类似一个低市场需求版的后端开发。很多企业还要求有硬件的知识。
编译器,这个领域需求极低。基本只有大厂研发部门需要。距离应用太远——大家都用现成的语言和框架。好消息是现在 AI 火了,为了更好地部署和训练 AI 模型,AI 编译器横空出世。长远来看,也是一个不错的选择。从知识体系来看,也相对固定。从薪资来看,高于编译器。但传统编译器基本不招人,AI 编译器暂时缺人,未来相关框架封装成熟之后,可能就像砍算法工程师一样砍 AI 编译器开发工程师。
AI 框架,要我看,其实它的现在就是 AI 编译器的未来。基本不招人。AI 会很火,但底层框架可能就这样了。长远来看绝对是能养老的选择,但很难招你。需求实在太小了。
图形引擎,需求会更大些,因为做游戏很赚钱,做可视化很炫酷。入门门槛相对低,因为图形学可以 Run 起来看效果,不像有些领域得有数据才能玩转,或者只能写一堆单元测试看效果。这导致很多高中生都能学会图形学,并且把 UE4 玩得很溜。但一旦涉及到工业化的开发,门槛就陡增,基本得有实际工作经营。需要掌握 UE 之类的引擎的原理,OpenGL、Vulkan 基本上要熟练。还要会建模。最好还会美术。GPU 加速也要了解。理论相对固定。这导致经验多的确实更吃香。长远来看,也是个不错的选择。平均而言,工资、需求都比编译器高。而且现在图形框架基本都没啥毛病了,还能给这么多钱招人,相对编译器工作稳定预期更好。
综上所述,短期内找工作大概率只能找到前后端客户端和测开,但长远发展的话,建议从后端(的一些高潜力分支)、图形引擎、操作系统、编译器(尽量掌握 AI 编译)这几个方向中选择。推荐程度依次降低。
除此之外,重要程度不亚于技术的就是人脉了。
标签: 无标签