男,985计算机小硕一枚,去争取算法岗位还是开发岗位?
我做软件开发已经20年,近10年都在做与AI相关的工作,近期也带了一些实习生(以985硕士为主)。
这两年AI大火,导致很多毕业生跨专业(例如自动化、光学等)转岗算法,这些人有个显著的特点就是羡慕IT的高薪,但普遍受没有受过通识的计算机教育(例如操作系统、数据结构、C/C++编程等),但人够聪明,数学不错(但大部分都没有学过高级算法),学编程吧,需要学的东西太多太杂,所以很多人都想抄“近路”来搞算法研究。这也客观上造成当前算法岗供大于求的局面。就参照我们公司今年招聘的算法工程师来说,“质量”明显不如以前了,原来名校的博士为基本要求,而今天985的硕士就可以了。
而且相比于软件开发,算法更吃脑力,对智力的要求更高,年龄越大挑战就越大。我本人是做系统集成的,包括一部分算法落地。实践中我的感觉是,随着脑力的下降,首先感到力不从心的就是数学,原来好多数学问题在脑子里过一遍就能想明白,但现在就需要画图才能理解。但编程就好多了,至少现在还没有感觉明显的衰弱,也可能是这多年已经积累了好多代码,很多时候把老代码复制过来改改就能work的原因吧!
其实,从去年开始,业界对AI的技术方向就已经达成了共识,也就是深度学习+大数据+大计算,其中尤其以数据为重。可以说只要数据足够,假以时日,大家的速度和精度都不会太差。现在大家比拼主要是算法变现的能力,也就是看谁能够把算法变成产品销售出去,因此今年我的感觉是,相对于纯粹的算法,综合性人才更稀缺,例如有既有产品思维,懂算法,懂编程的人。
AI在IT领域也不算个新鲜东西,我服务的公司对AI的研究积累至少20年,市场不小,但早先都集中在专业领域,更多是一些专家系统。感觉AI街谈巷议,突然大火也就是这两年的事,更准确的说应该是5年前,就在此时深度学习理论旧瓶装新酒,从而迎来AI研究的集中爆发。但在深度学习框架搭成之后,接下来更多就是调参数,喂数据。所以在相当一段时间内,算法的研发重点转向了数据的收集和清洗。也就在这个时候,我也发现公司新来的算法实习生很多的日常工作就是调下参数,编写一些数据收集工具(例如网络爬虫),甚至更倒霉一点就是每日用别人写好的工具收集数据,清洗数据。
深度学习框架搭建的早期阶段,对算法工程师的要求是很高的,既需要精深的数学能力,同时又需要超强的编程能力。但在当前,随着各大公司的AI框架逐渐成熟,以及一些深度学习框架的开源(例如谷歌的Tensorflow),AI技术下沉的趋势非常明显,早已从几年前的阳春白雪变成了下里巴人,甚至某种程度上变成了粗活笨活(例如数据收集、数据清洗)。
不幸的是,中国人干什么事都喜欢一哄而上,就像早些年全民学Android,学前端、现在又开始全民学算法。不是说人就应该逆趋势而行,但越是在大家都熙熙攘攘的时候,越是要保持冷静,越是要问几个为什么。一个很显然的道理是:如果一个行业突然涌进了这多人,至少有两件事可以肯定,一个是这个行业门槛肯定不高,二是根据供需平衡原理,这个行业的未来行情必然会下行,不信各位看看现在的Android开发是否还复当年的意气风发?
还是那句话:“只有在潮水退却的时候,才知道谁在裸泳!”