自从阿尔法狗 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 种方式切入人工智能软件开发。如果你想走这条路,现在就可以做准备啦:
了解你所处的领域和业务,成为业务行家(将来的软件开发者,一定是精通业务的,甚至可能是熟悉业务的内行直接用便捷的开发框架自己做软件)
了解人工智能相关的应用框架,学习使用
锻炼自己的抽象能力、想象力、设计能力和提问能力,它们是你能否把业务和人工智能结合起来创造软件的核心能力
最后,提醒一下,并不是每个程序员都要追逐人工智能软件开发这个浪潮。软件开发的方向很多,应用场景也很多,你有非常大的可选择余地——只要你能成为你所处领域的局部头部,你就会拥有很多机会。而如果缺乏成为头部的思维、能力和行动,不论去追赶什么浪潮,结果都只能是望洋兴叹。