当前位置:首页 > > 充电吧
[导读]在过去的五年中,机器学习变得更加容易而软件工程比以往更加复杂。对于软件工程师来说,这是好事,但对机器学习专家却不是。这是机器学习向软件工程,数据科学向数据分析的发展过程。机器学习工具正变得越来越友好G

在过去的五年中,机器学习变得更加容易而软件工程比以往更加复杂。对于软件工程师来说,这是好事,但对机器学习专家却不是。这是机器学习向软件工程,数据科学向数据分析的发展过程。

机器学习工具正变得越来越友好

Google希望使每个人都可以轻松地训练机器学习模型,无论他们的技术知识如何。随着机器学习的发展,云服务的市场也在增长,理解算法的意义也在下降。

曾几何时,我们手敲一行一行算法代码。而如今,Sklearn让我们用几行代码实现相同的结果。原来的TensorFlow很不友好,是Keras让它变得容易使用。

Google,Microsoft和Amazon现在都提供,可以在云端上选择训练和调参的服务,然后马上就能提供相关模型的API。

让任何人都可以训练AI还需要一段时间。但随着复杂性的降低,它成为了经验丰富的软件工程师的另一种工具而已。

机器学习的发展只和几种编程语言相关

你会用COBOL吗?如果是,那么你就可以不愁没工作了。世界的金融体系建立在它之上,而如今没人在学COBOL编程。

大多数机器学习项目都是用Python实现的,而软件开发则分布在多种编程语言中。

如果每个机器学习工程师都有Python的经验,那么每个机器学习工程师都是你的竞争对手。而在软件工程方面,你只和使用相同语言的人竞争。

我总是惊讶地看到很多高薪的Ruby on Rails框架相关的工作。虽然它在几年前就已经过时了,但是许多大型公司(Shopify,Instacart,Kickstarter等)由于续航与工程量原因依然还在用它。

你应该,也有能力去学习多种编程语言,这是成为一个优秀软件工程师的关键。

软件工程包含更多技能

我们期望软件工程师对一切都至少知道一点。

后端工程师仍然需要知道浏览器的工作方式。前端工程师也了解一些数据库概念。两者都可以防止SQL注入之类的安全漏洞。

对软件有全面的了解,可以让你更轻松地更改专业方向。它还使你具备构建端到端解决方案的能力。

广泛的技能包使软件工程师更适合丰富的环境。随着需求的增长,软件工程师通常会转向数据科学。相反,数据科学家开发软件的可能性较小。

随着人们开始将机器学习看作是手敲底层代码的替代方案,我们将看到更多从事机器学习的软件工程师。

成为有竞争力的全栈开发人员需要很多年

除了使用已知的语言,也包括用了许多之间没有重合的技能。

从优化数据库,构建API微服务和构建响应前端的字面上看,基本没有共同点。它们可能用3种不同的编程语言实现。而且在这些领域,我们几乎看不到任何自动化的过程。

与此形成鲜明对比的是,全栈机器学习工程师现在正在完成功能越来越强大的AutoML,用了它之后,就可以写一个SOP(Standard Operating Procedure,标准作业程序),然后将训练分类器的工作委托给实习生。

而软件工程技能包中的所有组件都因自动化而不复存在还需要一段时间。

机器学习是产品的补充而不是产品(通常)

少数公司将人工智能作为其核心产品,而大多数公司使用人工智能来补充现有产品的缺失。

Medium网站可以使用机器学习来实现文章推荐功能,但是核心产品是写作/发布平台。

有趣的是,大多数公司都将机器学习用于简单重复的任务。这使某个公司可以轻松地将上述用例作为SaaS产品提供。然后,初创公司就不再需要重新构建了。

而与基础架构相关的问题往往复杂又有许多自定义任务。比如AWS上没有任何现成的解决方案会很快搭建Medium网站的基础架构。

基础架构变得异常复杂

AWS已扩展到200多种不同的云服务中。

Heroku在云端中运行应用程序的PaaS方法很棒。但是在任何大规模项目上都变得过分昂贵。

因此,现在我们有了一个全新的云端栈来管理(网络,数据库,服务器),其中一不小心会造成巨大的安全漏洞。

有一个称为“云工程”的开发子集,其目的是使软件在AWS,GCP或Azure上运行。

在较小的公司中,基础架构通常是高级开发人员的职责。

这是复杂的内容,同时也意味着工作机会和难以替代的技能包。

前端开发在不断发展当中

成为一名顶尖的前端开发工程师是一项技能。

当我开始开发时,使用jQuery构建响应式前端是完全OK的。然后公司换成了Angular或React。然后Angular变成了Angular2(具有重大改进)。React从类转移到功能组件,并添加了hooks。

以上所有框架/库都以根本不同的方式工作。

有几家公司致力于基于mockups的前端自动生成。但我的同事们的共识是,他们离高质量产出还有很长的路要走。

前端开发方面的技术能力,加上对完美像素的感知,目前依然令人惊讶。

结语

软件开发是一个复杂且包含广泛问题的领域。这个复杂度对雇佣员工有好处。

但更重要的是,广泛的技能包赋予了端到端解决实际问题的能力。

对于建立一个让普通人有能力解决自己技术栈中问题的开发社区,软件工程是一个很好的起点。

那机器学习有一席之地吗?当然。但解决问题比训练模型更有意义。

学习软件工程,完成开发,解决问题。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭