学习AI,但是企业却不要你
1.以下几种人企业不想要
1.1 基础非常不扎实
首先是编程基础
夯实linux,Git基础————夯实c++/python基础——了解开源框架——熟悉开源框架
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、tenforflow、pytorch等以及不断新出的开源平台
如果以上的基础不扎实,后果是什么
无法验证别人的方案,代码经常跑不通而放弃。
无法复现别人的论文,只能停留在看热闹的阶段,等着别人开放源代码。
2.4 其他基础
掌握爬虫等前后端的基础知识
了解并熟悉cuda等GPU编程技术,了解一些移动端的硬件知识
了解并熟悉Android、ios等移动端的基础知识,在项目中可能会需要使用。
如果以上知识不扎实,后果是什么呢
日常的项目无法独立开工,永远需要别人帮助才能完成项目
个人能力有限,职业生涯天花板明显(当然,如果你在前面的算法等领域达到了顶尖水平,可以不需要这些附加技能,不过一般的达到顶尖水平的人,这点技能早就会了)
不要羡慕别人家的本科生的收入远远高于你。
想想自己有别人的一般厉害吗?