查看原文
其他

【杂谈】为什么你学了AI,企业却不要你

言有三 有三AI 2019-12-26

言有三


毕业于中国科学院,计算机视觉方向从业者,有三工作室等创始人


作者 | 言有三

编辑 | 言有三


前几个月花了一些时间招实习生,面试了近10个,最后只发了一个offer,因为实在是不满意。近半年也跟一些负责招聘的同行们聊过天,再加上18年秋招形势的印证,我们自己内部的需求,现在就是这样的状态。


众人都在学AI,企业却愁招不到人,现在已经不是谁混混都能入行的时候了。


为什么呢?归根结底还是大部分人能力达不到要求,牛人只会被哄抢,牛人就算有缺点,也可以忽略,而普通人如果没有优点,谁要你啊。

01


以下几种人企业不想用

为什么学习的人那么多,企业却不想要呢?我觉得主要是这几方面的原因,以图像领域为例。

1.1 基础非常不扎实

很多人是直接跳进来深度学习这个方向的,说白了就是直接从所谓的python+tensorflow等开始,充其量再看了几门网课。

但正确的入行或者说学习流程应该是这样的,分两个方面。


首先是编程基础

linux基础,包括熟悉linux各类环境配置,熟悉shell脚本,熟悉cmake/make编译环境。


git基础,熟练使用github等,学会版本控制。


c++基础,熟悉c++的基本语法,类的设计,代码的编译与调试。

 

python基础,需要非常熟悉矩阵运算,各类基础库的使用。


了解开源框架,这就是大部分人的水平,知道某个开源框架的基本使用。


熟悉开源框架,需要熟悉主流的开源框架,掌握高级用法,阅读过源代码。我们不能指望只掌握一个开源框架,难道只会tensorflow或者pytorch,放弃Google和Facebook其中的一个吗,或者不会用Caffe永远无法在公司完成移动端模型的训练和部署。还有太多太多,可以慢慢来。


不拼颜值的编程世界,只有一步一个台阶才不会将来捅娄子。


然后是算法基础

信号处理与图像基础,包括熟悉信号处理领域的基本概念,图像的基础概念和基本的算法,这些现在与深度学习方法的结合越来越多。


传统机器学习,指望深度学习对所有任务end-to-end解决是不可能的,深度学习往往都只是解决问题的第一步,许多任务(比如平滑跟踪,重建等后处理)的精修全部都需要使用传统方法。不会,往往就意味着不能独立完成一个项目。


深度学习入门,所谓入门就是知道使用一个框架,拿出一个不错的模型,跑完一个任务的整个流程,或许还会做一些简单的改进,这也就是大部分人的水平,能把任务做到95%却做不到98%


深度学习进阶,到了这一步才是收入的分水岭。需要有丰富的项目经验,比较扎实的理论基础,才能用同样的资源作出完全不同的效果,说起来要会的就太多了,此处略过。


准备好生发吧。


1.2 态度非常不认真

如果你是牛人,有着超出大部分的聪明才智,能一个人干翻一个团队,就算其他都是缺点,没问题。

如果你只是普通人,愿意多付出很多时间,喜欢查漏补缺别人不做但是却可能对项目非常有用的方案,那也没问题。

如果是其他的,我就不会招了。


有一个老大跟我说:“招一个不靠谱的人来做事,我付出时间还放心不下,不如让老员工来。”


企业要的是从头到尾,可以把事情放心交给你的人。


大部分任务确实并不难,谁尝试的方案,跑过的实验多,谁更加细心,就有可能做的更好。


有人不愿意花时间筛选数据,只等着别人送过来数据,撸起袖子就开干。

有人不愿意多跑几个实验,搞到一个勉强的指标就想交差了事了。

有的人这也懂,那也懂,做出来全是错的。


1.3 热衷学习,能说会道不会做

这一类人的特点就是,看了大量的书,听了大量的课,说起来头头是道,但却不喜欢实践。只要针对某一个问题问一点细节,一戳就破。

想想也是,搂着女朋友看书看视频当然很舒服了,谁还看不懂呢,但是时间长了,花拳绣腿与纸上谈兵就原形毕露了。


因此奉劝这些朋友们,早日爬出舒适圈,从简单事情开始做起。

02


学习AI需要哪些技能

这一行是一个交叉学科,需要的技能非常多,以计算机视觉为例,为了保证工作的正常独立进行,以下可以说是必备技能。

2.1 编程基础

熟练使用linux,git,vim等环境和工具。

熟练掌握 C/C++、Python等编程语言。

熟练掌握cmake,g++等编译工具。


如果以上基础不扎实,后果是什么呢?

别人的代码不会用,看不懂。

遇到简单bug调半天,稍微复杂一点自己根本搞不定。

写出来的东西公司不能用,不敢用。

2.2 算法基础

熟悉传统图像算法,机器学习算法。

熟练跟踪并阅读行业前沿研究,复现结果。

系统性熟悉深度学习理论。


如果以上基础不扎实,后果是什么呢?

目光局限,基础概念需要到处查漏补缺。

论文看不懂,效率低下。

无法创新,只会用现成的。

2.3 框架基础

熟练掌握 Caffe、TensorFlow、pytorch等以及不断新出的开源平台。


如果以上基础不扎实,后果是什么呢?

无法验证别人的方案,代码经常跑不通而放弃。

无法复现别人的论文,只能停留在看热闹的阶段,等着别人开放源代码。

2.4 其他基础

掌握爬虫等前后端的基础知识。

了解并熟悉Cuda等GPU编程技术,了解一些移动端的硬件知识。

了解并熟悉 Android、iOS 等移动端的基础知识,在项目中可能会需要使用。


如果以上基础不扎实,后果是什么呢?

日常项目无法独立开工,永远需要别人帮助才能完成项目。

个人能力有限,职业生涯天花板明显(当然,如果你在前面的算法等领域达到了顶尖水平,可以不需要这些附加技能,不过一般达到顶尖水平的人,这点技能早就会了)。

不要羡慕别人家的本科生收入远远高于你。

想想自己有别人一半的厉害吗。


如果想了解更多,欢迎关注知乎。


“济”划招生最后10天

有三AI“【济】划”,从图像基础到深度学习


如果想加入我们,后台留言吧

转载后台联系,侵权必究


微信

Longlongtogo

公众号内容

1 图像基础|2 深度学习|3 行业信息


往期精选

  • 自己翻

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存