机器学习变得越来越容易,但软件工程仍然很困难
zsd_4409124209
2022年09月28日 16:31:03
只看楼主

知识点:软件工程 如果每个算法工程师都有 Python 的开发经验,那你就需要与所有算法工程师竞争。而在软件开发方面,你只需要与一部分使用同样技术栈的工程师竞争即可。 我常常会惊讶地看到很多高薪的 Ruby on Rails 开发的职位在招人。它在几年之前就已经过时了,但很多大公司(Shoptify、Instacart、Kickstarter 等等)由于历史原因还在使用它。 你肯定可以同时也必须学习多种语言,这是一名优秀的软件工程师的必备素质。

知识点:软件工程

如果每个算法工程师都有 Python 的开发经验,那你就需要与所有算法工程师竞争。而在软件开发方面,你只需要与一部分使用同样技术栈的工程师竞争即可。

我常常会惊讶地看到很多高薪的 Ruby on Rails 开发的职位在招人。它在几年之前就已经过时了,但很多大公司(Shoptify、Instacart、Kickstarter 等等)由于历史原因还在使用它。

你肯定可以同时也必须学习多种语言,这是一名优秀的软件工程师的必备素质。

软件开发囊括更多的知识技能

我们期待软件工程师对所有领域都至少有一点了解。

图片

一个简易的图示

一位后端工程师也知道浏览器如何运作,一位前端工程师对数据库也有一定的了解。他们都能避开类似 SQL 注入的安全漏洞。

如果你拥有对于软件工程的整体理解,就更容易切换所专注的领域。这同时也让你具备构建端到端解决方案的能力。

广泛的知识技能体系使得软件工程师更适用于多样的可能性。随着市场需求的增长,经常有软件工程师转到数据科学领域。与之相反的是,数据科学家通常不会开发软件。

随着人们开始认为机器学习是硬编码的条件逻辑的替代方案,我们在将来会看到越来越多的软件工程师从事机器学习工作。

成为一名优秀的全栈工程师需要好几年

并且,成为一名优秀的全栈工程师需要掌握很多互不相干的技术。

优化数据库、构建 API 微服务以及建造一个响应式的前端,三者之间几乎没有共同之处。它们可能需要通过三种不同的语言来实现。

在这些领域,我们目前几乎没有看见任何自动化方案。

相比之下,全栈算法工程师正在和越来越强大的自动机器学习(AutoML)竞争。使用 AutoML 的情况下,我甚至可以写一个标准作业流程(SoP),然后把训练分类器的工作分配给实习生。

而软件工程中所有技术都被自动化,不再需要人力参与的那一天还远未到来。

机器学习为产品添砖加瓦,但机器学习本身大多不是产品

很少有公司把人工智能作为它们的核心产品,而是使用人工智能让现有产品更加完善。

Medium 也许使用机器学习来推荐文章,但是它的核心产品是文章写作与发布的平台。

有趣的是,大多数公司将机器学习应用在简单且相似的场景。这样一来就更容易出现为这种场景提供软件即服务(SaaS)产品的企业。然后突然之间,初创企业发现自己不用再费力开发自己的方案了。

相比之下,系统基础架构的问题是极度复杂而不通用的。AWS 上在不远的将来也不会有现成的解决方案可以处理 Medium 的基础架构。

基础架构正在变得异常复杂

AWS 已经膨胀到拥有超过 200 个不同的云服务了。

使用 Heroku 的产品即服务(PaaS)方案来运行应用是一个不错的方案,但它在产品规模扩大后就变得非常昂贵。

因此,我们现在需要管理一个全新的云技术栈(网络、数据库、服务器),其中一个小失误就能导致巨大的安全漏洞。

开发工作中的一部分是云技术开发。其工作是使得软件能在 AWS、GCP 或者 Azure 上运行。

在小型公司里,基础架构的工作往往由高级开发者来负责。

基础架构是一个复杂的东西,但它同时也意味着工作机会和难以被取代的技能。

前端开发正在不断发展

能跟上前端发展的步伐本身就是一个技能。

我刚开始从事开发时,使用 jQuery 来构建响应式的前端还不算太难。随后,大量公司开始使用 Angular 或者 React。Angular 推出了 Angular 2(伴随着巨大的改变)。React 从类转移到函数组件,并添加了 hooks 函数。

以上所有的框架或者库都以完全不同的方式运作。

也有一些公司正在构建基于原型(mockup)的自动化前端。但是我的同事们一致认为,它离达到生产环境的要求还很远。

前端开发方面的技术能力需求,加上对"什么是像素级还原"的理解要求,都令人感到前端开发一时之间仍不可替代。

结 语

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

但更重要的是,这种完备的技术体系代表了能解决真实的、端到端的问题的能力。

要建立一个让普通人能解决自己所在领域问题的社会,软件工程就是一个不错的开端。

机器学习还有自己的一席之地吗?当然有。但是解决问题远比训练模型更重要

去学习软件工程,做点东西,并且解决问题吧。



相关推荐链接:

1、某软件工程9m高支模施工方案

2、软件工程中的结构化设计方法


免费打赏

相关推荐

APP内打开