自从阿尔法狗 4:1 战胜人类最强棋手李世石之后,人们的焦虑就从未停止过:
- 围棋选手开始怀疑自己钻研棋谱几十年的意义
- 工作中重复性劳动占比较高的雇员越发担忧自己会很快被机器替代
- 知乎上关于什么工作不会被 AI 替代的讨论越来越热烈
- 普罗大众开始害怕机器人会反过来控制人类
好像是为了验证大家的担忧和焦虑,无人驾驶、无人超市、无人机,一个一个落地成了现实,更可怕的是,大家一向觉得永远不会被替代的创造力、审美、思维,也被突破了:机器人写作、机器人绘画、机器人心理医生……
这种焦虑,像龙卷风一样迅疾席卷了程序员,越来越多的程序员开始担忧自己会被编程机器人替代!就连我自己,也曾经忧虑过:如果机器人可以编程,我们的存在,还有什么意义?
基于这种焦虑,很多程序员开始涌现人工智能领域,希望通过掌握人工智能相关的算法、技术,与时代趋势共舞。于是,各种分享、在线课程、图书、资讯,铺天盖地纷至沓来,程序员们似乎不谈 AI 就会被淘汰,又似乎跻身追逐 AI 的洪流中就能免于被淘汰……
面对 AI 的洪流,你感到恐慌吗?你想好怎么应对了吗?
我们今天就来聊聊这些话题:
- 为什么要追逐人工智能开发
- 人工智能开发者的四种类别
- 你适合用哪种姿势切入工智能软件开发
为什么要追逐人工智能开发
我之前写的“如何做到选择大于努力”一文,详细讨论过趋势和选择对个人职场发展的巨大影响。实际上,个人的外在成功有三个要素:
- 趋势
- 站位
- 能力
这其中,趋势会放大个人努力和势能。甚至,你选对了趋势,站对了位置,哪怕只是随大流不掉队,也可能一飞冲天。这就是所谓的“站在风口上,猪也能飞起来”。
从这个角度上讲,跟随趋势就非常重要。过去 20 多年,我们经历了电脑、PC 互联网、移动互联网等各个大趋势,现在,未来的大趋势是大数据和人工智能。如果你能进入这个趋势,就有很大概率获得新的发展和成长,随之而来,也可能享受到趋势带来的红利,获得更高的收入。
现在的招聘信息,也能反映出这个趋势:
很多开发者追逐 AI ,也是从这点出发,为了自己更好的未来。
但实际上,趋势并不属于每个人。它往往属于那些已经为这个趋势做了很多年准备的人。不信你去看看,那些现在在 AI 趋势里风生水起的专家、科学家、公司,哪个不是之前已经在相关领域做了很多年的研究?
如果你只是看到趋势就盲目扑过去,往往沦为跟风,甚至会跟丢,跟来跟去找不到自己的位置。
所以,如果你决定要跟,也要了解怎样去跟。所以,我们先来看看人工智能开发者的四种类别。
人工智能开发的四种类别
从事人工智能相关软件的开发者,可以分为四种:
- 基础设施支撑
- 算法
- 应用框架
- 行业应用
如下图所示:
我们一一介绍一下。
1) 基础设施支撑
2016、2017有一家公司的股票因为人工智能大热而疯涨,翻了6倍多。这家公司就是:英伟达。它们做 GPU ,其芯片可以支撑机器学习!
从事这类基础设施开发的公司和人员,都相对较少,但是他们必不可少。
2) 算法
回顾我们前面贴的招聘信息,5 个岗位,都要求你熟悉 AI 相关的算法。
算法工程师、数据与算法科学家,是 AI 时代的王者,像百度、阿里、腾讯等公司,这方面资深的算法工程师,年薪过百万毫无压力。
不过,这一类开发者,是极少数,极少数。而且,你现在去追,受两个条件影响:
- 别人已经先行一步,占据头部
- 你过往的数学基础不一定能跟上,学习速度没有别人快
你也很难追得上!
3) 应用框架
这几年,TensorFlow 、 Caffe 等框架大火,类似的框架也越来越多,很多公司、组织、开源开发者,在做这方面的工作。
这些框架,是一种技术走向大规模应用的基础。因为,大部分开发者,其实搞不懂算法,只能调用一下 API 。所以,要想让生产效率起来,必然要有各种各样的框架。
因而,应用框架开发者,是你的另一种选择。不过,它对人的要求也高,有几点:
- 能理解底层算法,清楚各种算法的效果及如何使用
- 有想象力、架构设计能力和抽象能力
- 能理解上层业务问题,并抽象映射到框架层面
4) 行业应用
一种技术,要想改变人们的工作和生活,提高社会运转的效率,必须借助各行各业的应用!进一步,普通用户,甚至根本不会在意某个应用里面用了什么技术,他们关心的是:这个应用能否解决问题带来便利。
向各行各业的用户提供解决问题的应用软件,是大部分公司的使命。从事行业应用开发,则是大部分开发者的归宿!
要做好 AI 相关的应用开发,你需要:
- 了解 AI 算法的背景和应用场景
- 熟悉应用框架
- 熟悉业务
- 有抽象能力、想象力和架构设计能力
人工智能在各行各业的应用,很快(2~3年)就会井喷,这将需要大量的开发者介入进来。要做这个的,可以开始准备啦!
你适合用哪种姿势切入工智能软件开发
了解了人工智能软件开发的4种类别,我们就可以结合自身能力,选择进入人工智能软件开发领域的姿势:
- 对硬件、软硬结合、操作系统等很感兴趣并且有积累的开发者,可以进入基础设置领域做开发
- 对算法熟悉,或者有志于在算法领域建立竞争力的开发者,可以寻找算法方向的机会
- 有应用框架开发经验,或者对框架设计、开发感兴趣,可以加入相应的开源组织或者公司,通过开发应用框架为其他开发者提供支撑
- 更喜欢用软件实现具体业务问题帮助人们提高生活生产效率的开发者,或者能力不足以去做其他三类软件的开发者,可以考虑参与到人工智能在行业应用中爆发的趋势中,现在正是时候
大部分开发者,可能比较适合用第 4 种方式切入人工智能软件开发。如果你想走这条路,现在就可以做准备啦:
- 了解你所处的领域和业务,成为业务行家(将来的软件开发者,一定是精通业务的,甚至可能是熟悉业务的内行直接用便捷的开发框架自己做软件)
- 了解人工智能相关的应用框架,学习使用
- 锻炼自己的抽象能力、想象力、设计能力和提问能力,它们是你能否把业务和人工智能结合起来创造软件的核心能力
最后,提醒一下,你并不一定要追逐人工智能软件开发这个浪潮,软件开发的方向很多,应用场景也很多,你有非常大的可选择余地——只要你能成为你所处那个领域的局部头部,你就会拥有很多机会。而如果你没有成为头部的思维、能力和行动,你去追赶什么浪潮,基本都是望洋兴叹。
相关阅读:
- 开发者的 4 个层级,你在哪一层
- 跃迁:成为高手的技术