# 深夜，来谈一谈未来

> 作者：zning（https://ning.ae） · 发布：2019/10/05 23:30 下午 (UTC+8) · 原文：https://zning.me/15702894319169.html

国庆已经过半，近期对于未来的科技发展，有些许想法从头脑中迸出。趁着假期这个机会分享给大家。

本文主要以脑洞为主，有些观点有些主观，如有想法请在留言区留言交流~

## 神经网络与深度学习的终结：始于硬件 败于“软件”

这个话题，可能谈的有些异想天开：现在如此火热的人工智能的重点方向——神经网络与深度学习，怎么会败给软件？

当然，一眼关注到迥异的观点是人的天性。而对于“始于硬件”却没有多大关心。

机器智能领域(指机器学习、人工智能及其衍生学科领域)发展到现在，其实已经经历过至少两次的大起大落(具体的起落可阅读[《智能时代、深度学习与未来：人类与人工智能的博弈之道》](https://mp.weixin.qq.com/s/KP0cwA7ZkOW9PlHHJZJLaA))，而从本世纪第一个十年开始逐渐升温火热，并直至现在火爆。**而这次成为热门的原因，归根结底并不是依靠机器智能领域有着什么基础理论的完美突破**(当然近些年理论有进步是必然的)**，****而是当下硬件性能的突飞猛进与成本的大大降低。**

可以这么说，现在的人们，只要你愿意去建立训练一个有关于机器智能领域的模型，都可以通过一台中高端游戏台式机来完成这项工作，甚至一些高配笔记本和商务机也可以完成较小模型的建立训练工作(这其中也得力于近些年割韭菜般的币圈，使得GPU硬件市场空前火热)。这就意味着，作为机器智能领域入门最最基础的生产工具，已经不像上世纪五十年代或者八十年代那样机器动辄百千万造价和占地几百平方，成本的降低必然带来大规模的兴起。即使现在两三万的N厂训练卡，对于些许个人来说也是咬牙节省半年也可承受的设备了。

因此，说机器智能领域本世纪头二十年的发展始于硬件一点都不为过。

![2019-10-05-001-w325](media/15702894319169/2019-10-05-001.jpeg)

> 始于硬件 败于“软件”，机器智能领域的神经网络与深度学习能否冲破牢笼？我们拭目以待
> 图片来自网络

然而，领域内的“软件”，却没有如硬件般幸运。这里的“软件”之所以打引号，主要是其指的领域内基础理论与算法的发展。包括神经网络与传统机器学习在内，现在的理论与算法绝大部分都是以上世纪五十年代和八十年代的基础上进行改良和演化而来。**而神经网络的内部研究，在进行了多年后仍未有进展。如此不禁令人担忧“软件”的老本还能支撑现在的机器智能领域发展多久。**

而至于深度学习，不论如何都可以看做是“通过一系列规则进行超多层(百层及以上)神经网络训练”的模型，即其“深度”体现在神经网络的层数之繁多、神经元个数之庞大、神经元互联之广泛。但是如果仔细考虑，我们可以发现，**深度学习其实更多的是神经网络2.0版本，只不过这个版本靠的并不是理论与算法基础的创新，而是硬件的堆砌——毕竟，如此庞大的网络，必然需要更为多一个量级的硬件支持。**

于是，在当下，即使机器智能领域中的图形图像、计算机视觉和大数据机器学习算法——支持向量机、决策树、卷积神经网络、生成对抗网络等——比起上世纪来说有着令人瞩目的进步，**但如若“软件”无法去更进一步的对基础理论和算法进行有益补充，可能接下来机器智能领域的火爆，也就达到了顶峰了。**

## 弱化测试运维的开发的命运走向何方？

近些年，从自动化测试的提出、推广与普及，到近些年运维DevOps、AIOps的提出和推广。看上去确实是提高了生产效率，增加了程序的健壮性，进而推动了企业业务的迅速提高。不过，**神奇之处在于，关于测试和运维的变革，从某种程度上来说并不是本工作岗位的人所做的创新，反而是由作为程序源动力的开发在主导着这些变革。**

很明显，自动化测试的出现与普及对于IT行业的测试岗位的影响，已经从岗位数量与岗位工资上体现的淋漓尽致。而且即使现有的测试岗，对于技术水平的要求上也逐步向开发研发看齐。而正在进行的DevOps运动更不在话下，从代码仓库自动化、持续交付持续集成(CI/CD)，到平台及服务、软件即服务，以及容器化实现的从开发到生产环境的无缝衔接，均体现了开发在融合开发与运维职责所做的努力。

首先声明一点: 我对这种发展推动IT从业者的生产效率提高和产出攀升上并无任何负面意见，甚至希冀这样的理想社会早日到来。不过，我发现，关于开发对测试和运维的边界模糊甚至权责接管的事情，正在我们身边发生。外行看热闹，内行看门道。**同样都是IT领域，外行人以为啥都一样，其实各个领域的厮杀，现在已经到了新的阶段。**

所以，可以这么说: **测试这个岗位，可以说已经被开发通过其聪敏智慧将绝大部分工作给接管了，而运维的工作也通过DevOps的运动逐渐在融合进开发的日常工作之中。**而现在仍然有这些岗位的存在，很大程度上是为了开发人员解决不了的事情，可以让他们帮助去解决(没错，通俗来说这就叫“背锅”)。

![2019-10-05-002-w315](media/15702894319169/2019-10-05-002.jpeg)

> 还记得技术鄙视链吗？
> 图片来自网络

这听起来很恐怖，不过这里我不想讨论测试与运维人员的出路，我想讨论的是: **等待着开发的未来是什么？**

关注行业发展的人对于VS Code在近期上架的一个名叫TabNine插件会有所耳闻: 一款通过你打几个字母来猜测你所写的代码的智能代码补全工具。这个工具通过内置的一个神经网络模型(估计是自然语言处理领域的模型)，来判断你接下来会写什么样的代码。这听起来很棒很不错。

![屏幕截图 2019-10-05 23.19.16-w400](media/15702894319169/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202019-10-05%2023.19.16.png)

> VS Code插件TabNine介绍截图

不过这样的插件的出现，更应该让开发人员警惕: **曾经所说的机器自己写代码，已不再是一个空想，正一步步成为现实。而能够做出这一步的，其实是开发背后的研发与算法工程师。**

没错，**开发岗位的未来，或许真的可能会被研发与算法所研究出的自动化代码程序所替代**，然后让开发去干研发与算法不能解决的事情(测试与运维: 嗯！？)。IT行业不再需要如此之多的开发岗位了，算法和研发就可以把一些小项目就给一条龙解决了。

正所谓: 螳螂捕蝉，黄雀在后。不到最后谁都不知道赢家是谁。

## 算法工程师: 高精尖的岗位 稳就业的救星

从去年秋招开始，算法工程师这个受应届硕士研究生青睐的岗位突然在就业市场供过于求，找工作的学生纷纷大喊: 我太难了。

关于这个现象，在职场混迹了多年的老油条很客观的指出了一个非常现实的情况: **算法岗本身就不需要这么多人，饱和也是正常现象。**

诚然，这个现实的观点是正确的，而且真真切切是现在岗位供过于求的直接原因。不过，对于算法岗位出现如此现象的其他原因，我却有很多不一样的观点。

![d923900bae3c0fd582f3d5664157f892](media/15702894319169/d923900bae3c0fd582f3d5664157f892.jpeg)

> 算法既是能力的体现，又是挑战的开始

> 图片来自网络

**首先，算法岗相比开发岗位对专业技能有着更高更专业的需求。**在专业技术素质有着坚实基础的人更适合做算法，对于一些对算法有强依赖性的领域例如图形图像更甚。这就对我们的应届生的能力提出了很高的要求。但是，作为刚从象牙塔初入职场的学子，并不是所有人都能应付得了企业对于算法创新与改良的需求清单，反而在开发岗位长期与算法岗位交流且对算法有着熟识的人更适合转岗为算法。因此在企业需求上，应届生并不具有太多优势。

**不过至于现在的算法岗招聘，我认为很大程度上仅仅是让应届生听上去很好的岗位名称，让这个名字与高学历相称。**不然岗位都叫程序员谁去应聘呢？于是，“算法工程师”这个岗位成了稳就业的救星，一剂猛药而已。初出茅庐的算法岗虽进入到工作岗位，但仍然是做着最基础的开发工作或者调包工作，对人的素质提高并没有什么帮助，唯一实在的估计就是工资了——当然这也是最关键的东西咯，不过想一想，工资高并不是岗位名称所带来的，而是你的学历和能力呀。

不过分析归分析，脑洞归脑洞，希望找到算法岗的小伙伴们能够加油把前两个论题所讨论的东东能够及早攻克或完成，我国社会主义现代化的实现靠你们继续啦～有意愿转算法岗的小伙伴也不必沮丧，现在的情况只能说明你的能力达不到算法岗的要求，**毕竟算法岗并不是录用了就真的如传言所说高枕无忧不用996了，每一个岗位都有辛苦的一面。**所以，**在相近岗位汲取经验、技术与能力，再转向算法岗也是一个完美的路子。**

最后祝愿关注慧响公众号的盆友们人人早日喜提算法工程师～哈哈哈嗝。
