勇哥注:
这篇聊聊常见的语言在就业方向的选择,以及语言之外的行业方面的选择。
注意这类话题有时效性,每年都可能有变化,勇哥写这篇文章的时候是2024.7月
(一)常见的编程语言
Java
面宽,竞争激烈,业务开发首选
薪水天花板高,百万年薪的都是有可能的。
Java相对于C#这种后发的语言,碾压优势在于它的强到变态的生态体系。
自1995年推出以来,经历了约30年的生态沉淀,广泛用于各个行业,也为码农带来无数的就业岗位,
这一点你只要去gitee上去看下就有感悟。
Golang
可以代替许多语言,如:PHP,C,Java
缺点:体系不完善
优点:云原生
主要是一二线城市、大规模公司用
薪水天花板比java低一些
这门语言由于只是大公司在用,所以对学历有要求(否则你没机会进大公司),
并且即使进入大公司,主要是做业务的某些方面,所以属于就业较窄的语言。
Python
非专业开发者的首选语言
主要几个方向:爬虫、数据分析、自动化测试
python的网页开发是鸡肋。
注意AI不并Python的方向,Python只是大量应用于AI测试,但是AI的难点主要在AI本身的专业知识,
而跟编程语言无关。在AI的项目开发中,Python起到作用可能只占5%,而AI本身则占到95%。
因此不要被人忽悠把Python跟AI就业方向绑定在一起。
薪水天花板较低。
C/ASM
C和汇编最接近,C是内卷较弱的语言。
主攻方向:嵌入式开发、写底层、写类库、写驱动程序、汽车应用等
嵌入式几年前是下坡路,最近两年又有点火了,这跟中美半导体战争有关系,国内现在进行去美国化,
中国推出自己的新标准,因此催生了新的岗位机会,带火了嵌入式市场。
嵌入式开发难度还是有的:硬件芯片的资料是全英文,互联网上一般是找不到现成轮子用的。
勇哥曾经有幸从事过电梯行业,那些写电梯控制系统工程师,加班通宵都是常态,遇到实在搞不定的问题,
都是花钱找其它公司买开发板项目做参考。
另外从事这一行,你本身最好是精通微电子,示波器、万用表、加各种焊接、模拟电路维修技能你都要会,
因为这是硬件+软件二合一的行业,不这样你很难登顶。
c++
主攻方向:写各种引擎(例如opengl、游戏引擎等)、音视频类库、应用软件、
QT这样的基本类库、数据库软件等。
这门语言无论是什么都可以做,只是某些方面用C++做效率可能不高,也许一个C#写的界面程序,
只用3天,而到C++搞不好要一个月。
这就涉及到项目负责人对选择语言上的要能把握清楚。
这门语言编译后直接翻译成机器码,没有经过虚拟机,所以效率是仅次于C的,一切需要极速运行效率的项目,
都可能要考虑C++或者C,
通常像系统级应用、视觉算法等就需要。
但是c++有个很大的问题,就是在应用方向之间基本上都是隔行隔山,例如写引擎的,
如果想改为写音视频,那就是极难切换的。
这个是因为c++在行业应用上的专业跨越太大(因为它无所不能),并不是语言本身的问题。
这一点不像是java,当前是写银行系统的,突然有一天想换成写企业的某种应用系统,
则很多知识点是相通的,因此容易切换。
c++的薪水天花板没有java的高。
C#
这门语言本身是非常优秀的。但在国内应用不多。
原因是早期的时候,C#是和windows捆绑在一起的。但是全球服务器的系统,windows竞争不过linux,
linux约占全球服务器的95%。
现在C#开发跨平台的应用,是微软公司拥抱开源的决策之后的事,太晚了,已经撼不动java沉积了几十年的生态了。
主攻方向:Azure云、上位机开发、游戏前端脚本(Unity)
其中上位机开发是勇哥所在的行业,我们称为自动化设备制造业。在这方面,C#是无敌的存在。
JS/Ts
前端语言,配合node.js也可以做后端,如果一个人能前端后端都可以做,则称为全栈开发。
招全栈开发人员的往往是小公司,大公司都是注重前后端分离的。
前端开发主攻方向应该往架构+算法上面是努力。
OC
一些流行平台的开发语言。
Swift, Kotlin, Scala等
由于苹果,安卓等设备流行度都有期限,从长远看,这些专用语言一般属于应用面较窄的选择。
Rust
ArkTs
鸿蒙,是TS的一个超集
总结:
语言总是结合行业的,在项目开发过程中,最重要往往不是语言本身而是业务逻辑。
超越语言本身的就业务,精通你所在项目的业务反而是最重要的。
如果你精通C#或者java,那么你学其它除C++之外的语言会非常快也容易。
如果你精通C++,那么你学习其它一切语言都会感觉非常容易。
你应该结合你的专业、学历和自己想要的薪水天花板去选择行业,而语言的选择只是出于项目的需求。
不要按照自己的爱好去选择,人生的选择应该理性的思考并且是逐利的,
特别是对于刚刚毕业的应界生来说,缺少思考的深度,也缺少对社会毒打后的感悟,
容易人云亦云,不能做出自主的、正确的职业选择。
(二)常见的行业话题
后端:
前端:
前端的技术栈相对后端要简单些,但是前端内卷是相当的严重。
如果从职业发展角度来看,后端比前端能走得更高更远些。
比如一个企业,要选一位项目主负责人,极大可能是从后端开发人员中去选择,
原因是因为只有后端才是和业务逻辑相关的。
而前端根本不怎么了解业务逻辑。
因此后端开发可以走出项目经理、项目负责人、系统架构师等方向。
前端如果想走向顶薪,则需要向源码架构+算法方向提升,属于只能技术一条路可以走,因此比较窄。
AI方向:
AI的就业方向: AI算法工程师,AI api调用工程师
算法工程师对学历要求巨高,而且集中在大厂及银行、电力等国家巨头,因此就业面很小,
算法工程师团队通常都是985的博士,带领985的研究生和少量的211研究生。要求太高。
因此总得来说虽然AI很热门,但不见得就好就业。
但是算法工程师薪资天花板极高,在欧美,甚至年薪可以达到50W以上,还是美元。
AI现在有两大主流: CV图形图像处理, NLP自然元处理,大模型可以认为是NLP方向的分支
大数据:
主要就业方向两个:大数据挖掘、大数据处理与开发
如果想薪水高些,需要结合AI,它有个方向就是大数据挖掘,例如“商业智能/数据挖掘”,
这个有个经典例子就是“啤酒和纸尿裤”,还有就是XX滴大数据杀熟等在我们国内常见的例子。
以上提供的岗位仍然是有限的。
大数据岗位提供的薪水通常是比较高的,年薪50W向上,这并不是说大数据要求的技术栈有多么高深,
实际上是因为用得上大数据挖掘与处理的往往都是很大的单位,比如在中国的华东、上海一块,
大数据做金融量化的相对来说是很多,这些大公司的需求也推高了工资。
小公司根本没多少数据,也就不需要有这个岗位了。
测试:
测试是it软件开发必不可少的一个方向,是有一定岗位需求的。
它的特点的是学习的东西少,简单很多。
像黑盒测试、点点点测试这些技术栈,对学历和专业都没什么特殊要求。
但是薪水较低,提供的岗位也比开发要少,一般可能8个开发配一个测试这样的比率。
另外中小厂基本上不重视测试,所以相关岗位提供即少薪水也低。
这个方向如果想提升薪水,要增强几个方向:
1. 自动化(测开) 2. 测试管理 3. 测试平台开发 4. 质量控制(核心目标)
测试如果做到顶级,薪水会上升几个数量级,在阿里,有年薪400W的软件测试工程师,
但这种顶薪在测试岗位方向能达到的是凤毛鳞角。
运维:
在云原生出来之前,运维是一个非常宽的方向,很多企业都需要。
数据库、硬件、网络都需要有人来管。
至从云原生出来之后,很多公司的运维岗位都被砍了或者减少,因为现在全是云上的自动化运维。
现在的运维方向可以从几个方向努力提升自己:
1. 自动化运维 2. 运维开发一体化 DevOps(辅助开发),自动化部署自动化上线、自动化回滚等。
3. 大数据运维 4. 云原生运维 5.安全运维(这是一个大方向,可以做为单独的方向)
游戏:
这个方向有个特点,就是对学历要求不是那么高,大专生也可以入场。
如果想高薪,需要进游戏大厂,赶上一款热卖游戏。比如腾讯的王者农药,员工年底有48个月的年终奖。
但是如果游戏卖不好,奖金就无望,99%的都没有。
这个方向的岗位:
1. 游戏主程,一般大厂有60W(顶薪)
游戏开发的语言,在游戏服务器端,之前用c++最多,最近几年用java最多(游戏服务器端占七八成),
还有部分用golang的。
至于游戏的前端,一般都是使用一些引擎,3d, Cocos 2d加上脚本、或者是GS做出来。
游戏这一行讲究的是谁开发效率快我就用谁,并不在意运行效率。
2. 游戏脚本
这个相对主程来说,薪水要低很多。
区块链 web3 元宇宙:
这三样都是以去中心化为目标。
目前的情况是,有公司做这方面还是非常赚钱的。比如做加密货币的交易中心。
但是这一行属于灰产,有法律风险。
这个方向是属于整个互联网最新的方向。最终会发展成什么样子,不好判断。
但是去中心化这个,在中国可能难以行通,这个从民族基因上来讲都是无法接受的。
可能有部分应用适合去中心化,例如版权、阅读类的、娱乐的,但是金融、互联网去中心,
NFT去中心,这些都不太可能。
这一行非常新,也可能有高薪,但是国情所限,有风险,要慎重。
安全:
入行容易,入门时的工作性质跟运维类似,扫描漏洞、做渗透测试之类的,薪资和前端差不多。
区别是,安全做到顶级,可以秒杀前端。
这一行的顶级,会懂非常低层的系统漏洞,效果就是比玩C语言和汇编的人懂得底层更多。
另外就是有可以给大厂企业设计安全解决方案的能力。
因此,顶级安全比开发人员更懂开发,一般的开发就是开发功能,顶级安全则从你的代码逆向,
能分析出你的原码,还能找到你的代码的潜在漏洞问题。
这种级别也是凤毛鳞角的存在。在华为,这种人顶薪都是在140W往上。
工业自动化:
工业自动化是制造业的一部分,这部分比较宽泛,但限于勇哥的了解,这里我们只是谈上位机开发部分。
在广东、深圳、江苏、上海等这些地方,有一批自动化设备的公司做系统集成,他们开发的设备的终端客户往往是
比亚迪、宁德时代、富士康等。
这些公司的设备服务于中国、世界产的消费电子产品、汽车、新能源及周边产品的制造。
这一行有两个就业方向:
1. 视觉软件开发
基于某个视觉平台(例如halcon或者vitualPro等)下的C#、C++软件的开发。
基础能力是视觉bom选型、打光与调参数、基础的软件调试。
顶端能力是视觉算法+深度学习、目标检测等AI的应用+精通C#+精通halcon或者opencv。
2. 运动控制开发
基于运动板卡、运动控制器进行设备动作的开发。
基础能力是bom选型,精通C#+板卡API的开发。
顶端能力是:精通脉冲、总线型、多轴的大型设备的开发+ 精通C#+精通轨迹控制+精通各种伺服调参+对设备机械动作有深刻的理解。
另外,plc也算是另一种类型的运动控制。只是本篇谈的是软件相关,所以不在讨论范围内。
目前,这一行的两个工种,有个5、6年以上经验者,年薪20-30W是没有什么问题的。
这一行躲不了出差的命运,在客户那里呆的时间可能还长于你在公司上班的时间。
这是工作的性质决定的,所以很多公司在应聘的时候,重要的就是你能不能接受长时间出差,
包括国外出差现在也很常见。
再就是看中你的潜力:你是不是好控制(叫得动你,不会有各种不服)?
你是不是有强烈的学习愿望?
而对你的能力,其实并不是太看中。招进来后大把的项目和老人可以教你和段练你,
最怕的反而是那种即没什么能力,也不肯学习的人。。。
这就是这一行的一个重要特点: 入行没什么门槛,只要你有个大专文凭
(如果是电气自动化、计算机专业的童鞋就属于专业对口,可以额外加分)
就可以敲门。特别适合应界毕业生
对于企业,它的算盘就是,多招些应界生让老人去带、能出差救火,因为应界生便宜,
而你呢,可以赚经验值,大家双赢。
但是这一行行业圈子确实比较小,客户端头部巨头就那么几个,出差时经常遇到脸熟的人,
甚至猎头跟你聊天还可能说出你的熟人。
自动化方向依托国家的智能智造2025战略,加上制造业是我国的根本,所以相比其它的行业,
其它几个重要的好处是:
一是行业是个常青树,不容易走下坡路,
二是这一行如果做进去了,企业对年龄就不那么看中了,你可能四十出头还能成为中坚力量。
三是跳巣容易加薪,并且换下家容易得不要不要的,网上更新下简历,
剩下的事猎头全给你包干了(圈子小,猎头最喜欢推荐你这样有经验的圈内人)。
物联网:
物联网专业是教育部允许高校增设新专业后,高校申请最多的学校,
这也说明了国家对物联网经济的重视和人才培养的迫切性。
物联网的产业规模比互联网产业大20倍以上,而物联网技术领域需要的人才每年也将在百万人的量级。
因此物联网个新兴的并且是海量容量的职业市场。
物联网从技术上看具有行业交叉的性质,因此它涉及的具体的行业,都包含在本文前面所述的行业中,
物联网并没有什么专有的新奇特的行业。
下面是物联网可能涉及的职业的清单:
软件开发
智能硬件行业
系统集成
嵌入式开发
智能医疗
制造业
物联网数据分析师
数据科学家
物联网工程师
物联网软件工程师
硬件开发
应用开发人员
智能家居
智能农业
后端开发人员
嵌入式固件开发人员
前端开发人员
产品经理
无线通讯专家
物联网开发工程师

