机器学习正变得越来越容易,然而软件工程仍然很困难

人工智能 机器学习
这是一篇评论文章。 它也有偏见。 我认为,如果有更多的通才和创造者(而不是专家)来构建事物和解决问题,那么世界将会是一个更好的地方。

 这是一篇评论文章。 它也有偏见。 我认为,如果有更多的通才和创造者(而不是专家)来构建事物和解决问题,那么世界将会是一个更好的地方。

[[329550]]

在过去的五年中,机器学习变得更加容易。 同时,软件工程比以往更加复杂。

对于软件工程师来说,这是一件了不起的事情。 但不适用于机器学习专家。

这是ML向软件工程和数据科学向数据分析的发展。

机器学习工具正变得越来越平易近人

随着ML的发展,云服务的市场也在增长,理解算法的价值也在下降。

从前,我们对算法进行了手工编码。 然后,Sklearn允许在几行代码中执行相同的操作。

原始的TensorFlow很难使用。 Keras让一切变得简单。

Google,Microsoft和Amazon现在都提供服务以选择,训练和调整云中的模型,然后立即在API后面提供模型。

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

机器学习开发集中在几种语言中

语言是护城河。 句号

你知道COBOL吗? 如果是,那么您就可以终生工作。 世界的金融体系取决于它。 没人再学习COBOL。

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

 

机器学习正变得越来越容易,然而软件工程仍然很困难

 

> https://www.tiobe.com/tiobe-index/

如果每个ML工程师都有Python的经验,那么您将与每个ML工程师竞争。 在软件方面,您只能与使用相同技术的部分工程师竞争。

我总是惊讶地看到很多高薪的Ruby on Rails工作。 它在几年前就已经过时了,但是由于遗留原因,许多大型公司(Shopify,Instacart,Kickstarter等)都坚持使用它。

您绝对可以并且应该学习多种语言。 成为一名优秀的软件工程师取决于此。

软件工程包含更大范围的技能

我们希望软件工程师至少对一切都有一定的了解。

 

机器学习正变得越来越容易,然而软件工程仍然很困难

 

> A quick sketch

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

对软件有全面的了解,可以更轻松地更改专业。 它还使您能够构建端到端解决方案。

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

随着人们开始将其视为硬编码的条件逻辑的替代方案,我们将看到更多从事ML的软件工程师。

成为有能力的全栈开发人员需要多年

并包含许多离散技能。

从字面上看,优化数据库,构建API微服务和构建响应前端的共同点是零。 它们可能以3种不同的语言实现。

在这些领域,我们几乎看不到任何自动化。

与此形成鲜明对比的是,全栈ML工程师现在正在完成功能日益强大的AutoML,为此我可以编写SOP,并将培训分类器的工作委托给实习生。

尚需时日,软件工程技能套件中的所有组件都将不存在。

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

少数公司将AI作为其核心产品,但大多数公司使用AI来补充现有产品。

媒介可以使用机器学习来获得文章推荐,但核心产品是写作/发布平台。

有趣的是,大多数公司都将ML用于简单和相似的用例。 这使单个公司可以轻松地将上述用例作为SaaS产品提供。 然后突然之间,初创公司不再需要在内部进行构建。

基础设施变得异常复杂

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

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

因此,现在我们有了一个全新的云堆栈来管理(网络,数据库,服务器),其中一小笔便会打开巨大的安全漏洞。

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

在较小的公司中,基础设施通常落在高级开发人员的腿上。

这是复杂的东西。 但这也意味着工作和难以复制的技能。

前端开发在不断发展

独自掌握前端开发是一项技能。

当我开始开发时,可以使用jQuery构建响应式前端。 然后公司搬到了Angular或React。 Angular变为Angular 2(具有重大更改)。 React从类转移到功能组件,并添加了挂钩。

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

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

前端开发的技术能力,加上对像素完美的感知,暂时令人惊讶。

结论

软件开发是复杂的,并且包含各种各样的问题。 这种复杂性有利于就业。

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

要建立一个使普通人有权解决自己社区中的问题的社会,软件工程是一个不错的起点。

机器学习有地方吗? 绝对。 但是解决问题比训练模型还重要

学习软件工程。 做东西。 解决问题。

责任编辑:华轩 来源: 今日头条
相关推荐

2020-07-09 13:53:11

机器学习技术工具

2020-09-02 09:25:23

迁移公共云数据

2021-04-15 13:48:08

视频监控视频分析智能安防

2024-04-26 14:23:21

2020-11-10 16:18:58

机器学习人工智能AI

2021-01-06 10:30:29

编程软件数据

2021-05-18 15:12:06

开源软件云服务

2018-04-13 10:54:17

微型数据中心监控

2017-12-26 15:34:55

2021-05-20 10:30:25

智能建筑物联网绿色建筑

2022-05-27 11:44:53

JS代码

2017-10-27 12:28:14

云端迁移云计算

2021-08-03 11:09:41

智能手机功能技术

2021-03-25 09:41:43

前端Monorepo技术热点

2023-08-21 14:02:39

2022-05-17 09:17:45

JS 代码越来越难读

2024-02-21 09:44:33

Rust前端

2023-06-21 06:47:31

2023-02-21 09:29:57

ChatGPT人工智能

2021-04-02 13:00:51

大数据数据采集
点赞
收藏

51CTO技术栈公众号