算法工程师,应该选择哪个方向?
这是前不久我在知乎看到的一个问题。
的确,对于初学者,当面对这么多算法方向进行择业时,难免会迷茫,不知所措。
算法是一个很笼统、模糊的概念,大至一个智能机器人,小至一个简单的C++排序,都涉及到算法。而近几年被提及较为频繁的就是计算机视觉、自然语言、机器学习、推荐系统、风控。
当一个初学者问过来人该如何选择方向时,不同的人会站在不同的立场给出自己的观点。
在校老师大多数会强烈推荐计算机视觉、深度学习、自然语言,因为近几年这些领域在各种期刊上面发表文章相对轻松,机会也比较多。
而作为从业者,很多人会从商业价值来考虑,会建议选择推荐系统、数据分析。
那么,到底该如何选择呢?
我认为选择一个方向并没有那么复杂,把目光关注在两点即可:
- 岗位数量
- 平均薪资
为了更加清晰的了解当下每个方向的热度和薪资情况,我特意花费几个小时的时间爬取了某招聘网站机器学习、深度学习、推荐系统、风控算法、数据分析等10类岗位、10000+**条数据,对数据进行清洗、筛选出**2500条,对薪资、工作地点、职责描述进行提取。并且,对职责描述进行分词,统计高频出现的词汇,和算法岗位要求较多的个人技能。
数据分析需求量最大
在这次数据分析中,我统计了机器学习, 深度学习, 推荐系统, 计算机视觉, 自然语言, 数据分析, 风控算法, 图像算法, 通信算法, 软件算法10类算法岗位。
最终得出的解决也比较符合我对于目前互联网公司观察的实际情况,上述提及的10类算法需求量较为接近,数据分析需求量最大,占比16%+。
这一点不言而喻,目前互联网公司绝大多数场景都是在和数据在打交道,围绕如何把数据变现在展开。而且,数据也能给人最为直接的感官冲击。因此,在企业内,绝大多数部门都会接触到数据,也都会需要到数据分析岗位。
薪资方面,风控拔得头筹
在计算薪资方面选选择招聘网站最小值与最大值求平均,然后乘以薪资月份数得出年薪。
举个例子,招聘网站标注薪资25-50k*13
,那么,计算年薪的方式为(25+50)/2*13
。
下图中的薪资单位是(k,千元)。
从图中可以看出,薪资方面风控拔得头筹,平均年薪高达42.1w,而最近几年热度较高的计算机视觉、自然语言并没有进入前3名。
而风控岗位需求的城市分布来看,北京、上海、杭州占据了前3名的位置,其中令我惊讶的是深圳作为金融业较为发达的城市,却没有进入前3名。
北京对算法岗需求量最大
抛开某一类算法,把10类算法按城市进行统计,会发现,北上广深依然需求量最大,稳居全国前4位。
而成都、南京、武汉这些城市需求量对算法的需求量也较高。
热点词汇
招聘信息中最内容最为丰富、最为有趣的非职位描述莫属。
通过jieba
和texthero
等自然语言工具包的应用,对职责描述部分文本进行清洗、统计、分析,绘制出了下方词云图。
在词频统计过程中,经验、学习、开发、能力、优化等编程开发技能之外的个人素质占据较高的地位,出现频率要远高于Python、Linux等计算机技术,举几个例子,
经验,4345
学习,4179
熟悉,3795
能力,3699
开发,2923
优先,2855
数据,2720
分析,2534
技术,2015
深度,1951
系统,1863
业务,1862
机器,1768
优化,1733
设计,1707
从出现次数可以看出,经验出现频率高达4345次。而在算法方面应用较多的Python出现了1132次。
通过对词频统计的关系,有一项数据比较让我感兴趣,那就是211大学被提及了66次、985被提及了64次。可以看出,有部分公司在算法招聘方面依然会硬性要求学历。
Python在算法领域的地位无法撼动
通过对计算机类技术进行统计和分析,Python以1132次被提及,位列第一名,紧随其后的就是C++。
而机器学习框架方面TensorFlow位居第一,Pytorch、Caffe分别居于第二、第三位。可以看出,虽然Pytorch这两年炒作非常火热,但是屈居TensorFlow之后。
另外,SQL、HIVE、Spark、Hadoop这些大数据领域较为常用的技术被提及的频率也非常之高。