暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

聊一聊计算机行业的各个赛道

原创 mirko 2022-02-10
1892

大家好,我是mirko,数据行业的老鸟一枚。

在当今互联网时代,各行各业都离不开IT信息化建设,传统企业也面临数字化转型,面对这么好的时代红利,如果你不抓住机会选择一个热门赛道,而去搞了过时技术那可真是前途未卜。


好了进入正题,下面就给大家介绍一下当下计算机领域的几大赛道,目的是希望计算机专业的同学能够保持自身的专业优势,避免走了弯路;对非计算机专业但想转码的同学也可以起到的指导作用。

让我们先来看一下最热门的四大赛道:

1、热度排名第一的当然是以web开发为代表的java赛道;Web开发应该是国内企业中应用最多的产品开发模式,而java作为国内最成熟,生态最完善的体系,可是称的上是web应用开发这个赛道中最受欢迎的语言。据我所知,大厂程序员的招聘岗位几乎一半的都是要搞java的。技术也经过了多次的迭代,从上古时期的EJB,servlet,jsp技术到SSH框架开发,再到前几年的SSM框架,逐渐演变为如今的微服务架构。前端技术也是发展迅速,如今h5,css3,JavaScript和JQuery已成为前端入门三板斧,vue、react、angular等框架也是面试必备。当然不得不提一句PHP对于开发web应用也是非常的友好,对于中小型项目,PHP与mysql的结合,往往是最优解,被广大中小型企业所青睐。

2、AI赛道,目前热度上升最快的赛道,虽然业内人士一直在泼凉水,说越来越卷,但人才仍然供不应求。AI基本上都是交叉领域研究,从计算机角度来看是nlp自然语言和cv视觉图像两大方向。AI的尽头是数学,绝大部分的算法工程师都深耕在人工智能这个领域;这里所说的算法严和我们大学课程的数据结构算法说的并不是一回事,在数据结构中的二叉树、冒泡、快排等等算法只是编程中处理计算复杂度用的,而AI方面的算法更多的是比如反向传播,随机梯度下降,神经网格之类的,更偏向于将数学知识应用于实践。


3、以鹅厂为代表的C++传统赛道,近两年求职者中流传着一句话,有鹅选鹅,无鹅延毕。想进鹅厂,那必须得玩的一手出色的C++,鹅厂里面各个都是人才,说话又好听,我超喜欢这里的。作为软件开发的鼻祖C++,它更加贴近底层,性能压榨更加纯粹。
而且java能干的C++都能干,java干不了的C++还能干。但缺点就是框架体系成熟度不如java,上手难度略高,很多企业喜欢自己造轮子,敏捷化开发不如java。

4、数据分析赛道 ,代表语言是python。严格意义上来讲数据分析并不应该是传统计算机行业,因为数据分析的本质是专注于数据中的业务含义解析而不是去解决用户与计算机之间的数据交互或者软件功能的实现。但正因为这样,这个赛道是对于转专业和转行朋友们来讲是最友好的,它不需要很强的编程知识,更适合统计学、电子信息等非计算机科班毕业的同学转行的职业。技能通常需要具备sql,python,r语言等数据处理语言,数据分析师的进阶技能又往往和AI关联性比较强,人工智能中机器学习的相关技术往往也是高级数据分析师必备的本领,但和AI不同的是,数据分析师往往应用的是分类、回归、聚类等模型算法,有着成熟的算法框架可以调用,而AI更偏向于类似神经网络这种深度学习算法。

接下来再来聊一聊下其他从业人员较多的大众赛道,我之所以没给他们排到热门赛道的原因主要还是综合考量了未来前景,现有落地体量,历史迭代周期等因素。

1、大数据开发赛道,有些人可能会说,这不正是风口上的猪吗,大数据时代不搞大数据开发那可真是亏大了。但实际情况是:大数据高端架构人才(50w-100w)已经开始饱和,但仍需要大量的中低端(10w-50w年薪)从业人员。现在真正有大数据需求的公司,要么已经搭建了较为完善的大数据架构体系,要么就是你还不用不上大数据平台,用数据库凑合一下就够了。因为大数据并不是你的用户足够多就可以算大数据了,信息量的多少和业务的复杂度才是大数据的核心。传统行业领域比如国家电网、三大运营商、银行保险业已经率先完成布局,BAT等互联网大厂作为领跑者,不仅早早完成数据中台信息化转型,还能为其他大型公司提供一站式的大数据技术服务和架构,甚至我们开发者每天都在使用的阿里云、华为云等等都是基于大数据平台。但无论如何,大数据开发毋容置疑仍然是热门领域,对比与其他领域生命力正处于旺盛期,薪资也会比java和c++等赛道有明显优势,毕竟大数据需要和业务系统紧密结合,架构永远要服务于业务。而且大数据需要掌握的技术栈也非常多,不仅要精通主流常用的10来种数据仓库,还要掌握大量的分布式技术,常见如hadoop,hdfs,scala,spark, flink,kafka,hive等等10多种大数据框架和组件,学习周期也是相对较长。

2、.net开发,也可以理解为C# 开发。若不是还有着曾经辉煌的历史以及一部分从业人员靠着微软独角兽混饭吃,我都不想在此处中提及。Dotnet逐渐没落将成为必然,曾经引以为傲的个人桌面软件应用也逐渐转战C++。其实以微软为代表的C#开发生态体系还是比较完整的,但framework环境包是个人用户在安装时候觉得非常麻烦的一个因素。另外一个非常重要的原因还是版权成本,windows2008 server和 sql server数据库的费用都不低,而用Java,linux+mysql,零成本。造成这种现状的原因一言难尽,只能说.net毕竟只有微软一家在玩,j2ee体系是很多大公司一起玩。

3、golang

Go是谷歌发布的第二款开源编程语言,它应该算是最近热度增长最快的语言,但严格意义上讲,它并不能算是全新的赛道,GO能做的事情其他语言也能做,但GO的特点是实现快 + 资源占用低 + 任意环境随便跑。现有国内环境下,golang基本是大厂在用,比如字节,美团,百度都有一部分业务在使用golang,但中小厂几乎无人问津。mirko不建议毫无经验的新人学习go,这就和python一样,哪怕你把flask,django学完了,去面试发现竟然没有岗位要你,因为人家并不用这些技术。而真正应用这些技术的企业人家又嫌弃你没有经验,请问如何自学用 Golang 开发中间件?如何自学开发服务代理?如何自学处理高并发的业务场景,如何自学保证系统的HA高可用?但我建议如果你现在已经有java或者C++三年以上的开发经验,大胆一点转golang,毕竟现在的go市场处于蜜月期,薪资通常能达到做Java的2倍。

4、安卓/IOS 手机开发

在2012-13年那阵最火的技术非安卓/IOS开发莫属,当时人才供不应求,场景火爆非凡,当时我在北京听说过一个又一个的传奇故事,最离谱的莫过于两个HR小姐姐为了抢一个IOS开发程序员,不惜以身相许作为筹码,给我造成了1万点暴击。但就目前趋势来看,不建议大家入行了,因为app有一个前三定则,也就是每个行业的头部三个app吃干抹净,后面的只能喝汤。毕竟在一个app里面便利、高效地搞定所有事情,这是用户天生的需求。所以用户不断往头部应用集中,导致细分领域的 app 开始消亡,它们逐渐被订阅号、服务号、小程序等所取代,市场对 iOS/Android 开发的需求开始萎缩回落,也就导致了手机开发的落寞。
(难道是因为HR小姐姐都已经嫁人了?)

最后介绍一下小众赛道,因为计算机体系的庞大,小众赛道数以百计,由于本人的学识有限,也为了节约大家的时间,这里只给大家讲一些钱多,事少,不内卷的领域。

小众赛道的特点也比较明显,,否则也不会被称为小众赛道。 

1、以操作系统为代表的底层开发 

操作系统一直是国内短板,很多也是用爱发电,国产操作系统也有很多优秀的产品,比如deepin,红旗,Cutefish等等。不过能有实力研发操作系统的也一般都是大厂,不过岗位比较少。但是做这个方向的人更少,毕竟底层开发需要长时间的技术沉淀,薪资还是比较可观的。操作系统的技术栈主要是使用C语言或者汇编语言+强大的数据结构算法,需要具备很强的编程能力,和现有调用框架组件的敏捷开发模式有本质的区别。

2、数据库引擎开发

国产数据库是近几年的风口,因为传统领域的数据库比如mysql,oracle,postgre等等都是国外的数据库产品,自从国货当自强的理念普及开来,去IOE也是各大国内企业必经之路。在这方面做得比较好的有阿里的oceanbase,华为的高斯db,pingcap,达梦数据库,南大通用的gbase等等。数据库引擎研发的技术栈也是偏底层,主要分为查询引擎和存储引擎;多数也都是C语言编写的;数据库整体来讲又是非常复杂,非常难的一套体系,涉及编译器,事务处理,优化器,各种算法以及非常底层的操作系统原理,对从业者的综合素质要求也是非常高的,相比java,c++,AI这种能直接见效的领域来讲,很多人不愿意去做这么底层的东西。

3、嵌入式开发

嵌入式也是逐渐再走下坡路的一个行业,只能说好汉不提当年勇。十多年前我上大学的时候物联网概念刚被挖掘出来,嵌入式作为其重要载体,一下子就登榜了。但是随着时间推移,发现要实现万物皆联的目标还很远,再加上最近几年的人工智能大数据区块链概念的崛起,人们也逐渐淡忘了嵌入式。目前做嵌入式的公司一般都是做手机,pos机,扫地机器人之类的,说白了就是要卖硬件,而这种产品成本高,大家也都知道近几年来芯片有多难搞,就算你做出来产品了还不一定好卖,这就直接导致这行利润不行。

技术栈主要是linux+ARM,开发语言绝大部分都是C语言,总的来讲学习门槛不低,但是薪资比较尴尬。很多非计算机专业,比如电气、自动化的同学可能会接触到一些单片机的知识想转行这个领域,但我的建议是不推荐嵌入式开发了。

4、以游戏引擎研发作为代表的计算机图形学赛道。

这个可以说是劝退专业,劝退原因并不是因为前景不好,而是因为难度系数有点过高了。毕竟搞计算机的10个里面有9个数学都比较菜,但如果数学是你的特长的话,绝对要选图形学!理由不多说,图形学是计算机和媒体,电影,游戏结合的完美典范; 如果你想横跨工科,文科,艺术,计算机图形学是唯一选择,在娱乐方向,包括游戏、动画、电影特技产业,图形学的需求非常广泛,比如平面设计、建筑设计、产品设计这些都需要计算机图形学人才。

5、编译器

本科课程基本都会学一门叫编译原理的课,主要内容是讲述如何将程序代码翻译成计算机能认知的二进制,当时学完这门课后mirko感觉,编译型语言就是弱鸡,反正有编译器解释型语言才是未来,后来想想自己还真是to young to simple。目前国内搞编译器这个方向的人绝不会超过三位数,而且近些年来由于大规模的芯片和AI芯片的发展,芯片公司对这个职位有着强烈的需求,无奈掌握屠龙术的人太少,毕竟会用GCC和能写gcc完全不是一回事。编译器可以说是上层代码和机器码之间的一个解释层,写compiler的人需要对cpu的架构很熟悉,就和写driver的人需要对相应的设备熟悉一样。所以除了一些compiler理论和优化技巧以外,也需要对cpu的架构了解,这也导致了,做compiler的人可以做很多和优化相关的工作,特别是cpu密集型的,这也是为什么现在AI很多优化都是以前做compiler的人在做。因为硬件的算力到瓶颈了,人类又开始想起来软件上的优化。总之,编译器是非常底层的事情,程序分析、计算加速都离不开它,但仍然存在小众领域的通病,学习周期太长,学习资料又不好找,不过一旦入行,所谓的钱多,事少,离家近,甚至在家办公都不叫事。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论