机器学习

从软件工程师转行成为机器学习工程师

本文主要是介绍从软件工程师转行成为机器学习工程师,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
7 步助我从软件工程师转型为机器学习工程师

我收到很多关于如何从软件工程师转型为机器学习工程师(MLE)在FAANG公司的咨询(真的有很多)。我自己成功转型之后,可以说我遇到的最大挑战是不知道从何开始,没有明确的计划而感到迷茫。

在这篇文章里,我会分享一个分步指南来帮助你应对这一转变。这7个步骤帮助我从软件工程师转型到机器学习工程师。

咱们开始吧。

1. 动机是什么呢?

图片:作者

看看为什么

为什么要学习机器学习?机器学习和人工智能特别火,但你应该清楚你为何想涉足这一行。这种个人动力会在人工智能热潮过去后依然驱使你继续前进。

是什么让我上瘾:对我来说,是关于谷歌搜索的开发过程。谷歌能迅速找到我需要的信息,这真的让我更想了解其背后的科技。这种好奇心让我开始研究排名算法,从PageRank开始,进而深入到更广泛的机器学习。

你应该问自己的问题:

  • 机器学习的哪一部分真正吸引了我的兴趣? 是因为它是一个当红的趋势,还是因为其他原因?
  • 有没有具体的机器学习应用特别吸引我? 对我来说,我对自然语言处理和推荐系统特别感兴趣,但也许你对金融科技领域的机器学习更感兴趣。
慢慢来,尽情探索

这花了我4年时间(1年在硕士阶段,1年在博士阶段,我中途放弃了博士学业,还有2年在业界)才意识到我真正想做什么。这也没问题。 了解一个新的领域并积累足够的经验确实需要时间,特别是像机器学习这么大的领域。

  • 构建基础: 从基础知识开始,比如统计学和机器学习的基础知识。这样的基础将帮助你更好地理解这个领域,并找到你最感兴趣的领域。
  • 网络和指导: 与已经在该领域的人交流沟通,看看他们的日常工作是否能激发你的兴趣。
  • 了解你的选择: 找出你感兴趣的机器学习岗位,无论是成为一名应用机器学习工程师、机器学习研究员,还是从事MLOps工作。更多相关信息可以参考我之前的文章,在这里可以了解更多职位的信息。
2. 找到你的小众

了解您的动机和兴趣将在机器学习领域自然而然地帮助您找到最适合您发挥技能的领域。

  • 制定策略: 通常机器学习角色会有特定的要求,例如5年的相关行业经验或博士学位。如果你的经验不符合要求的资格,那个时候可能并不是合适的职位。专注于逐步提升你的技能,找寻更适合你当前经历的职位。
  • 找到合适的定位: 如果可能,利用你现有的专业知识来发挥你的优势。在你熟悉的领域转型会更容易。作为软件工程师,你已经了解关键指标、商业目标和特定领域的问题。找到你能做出最大贡献的地方,承担起责任,并在这个领域努力成为领导者。

我开始在亚马逊的定价团队担任软件工程师。虽然定价领域并不是我最偏好的选择,但是在那里积累了丰富的经验,这帮助我更快地过渡到了ML工程师的角色。

3. 愿意妥协

作者供图

在你的工作生涯中,你有时需要做出一些决定,需要为了长远利益做出短期牺牲,特别是在进入新领域时。这里是我在我转变领域时不得不做出的一些艰难决定。

  • 两次拒绝了我的梦想公司 Google 的 offer:我收到了 Google 提供的更高薪水的 offer,但我拒绝了,因为这个角色主要是做 Android 开发,没有机器学习的机会。相反,我选择了 Amazon,虽然最初的角色也不涉及机器学习,但可以让我更接近机器学习团队的工作。到目前为止,这是我一生中做出的最好选择!!

  • 我的晋升被推迟了近3年:我本有机会更早地晋升为亚马逊的高级软件工程师。从高级软件工程师晋升为高级机器学习工程师要困难得多,因为期望值更高。考虑到这一点,我选择推迟晋升以保持更多的选择余地。
4. 找到一个支持性的经理或公司

如果你已经找到了一个热爱的领域,你还需要一个支持你的经理和公司来顺利过渡。

找一个合适的环境:

  • 寻找参与ML项目的机遇: 寻找公司内提供参与ML项目机会的团队。大多数情况下,你都能找到这样的团队。如果当前公司没有这些机会,你可以考虑外部的选择。

小贴士:找到那些过去将软件工程师转型为机器学习工程师的团队。这可以大大加快你的转型,因为这些团队通常会为你提供清晰的转型指导。

  • 找到一个支持性的经理: 一位了解机器学习职位并且支持你学习和职业成长的经理是至关重要的。他(或她)不仅应该口头支持你,还应该采取实际行动帮助你顺利过渡。

提示:始终准备一个文件,概述你的转岗计划以及你想要参与的项目,并在你与经理的一对一会议中讨论这些内容。如果他们总是显得不感兴趣,他们可能不愿意帮助你转岗。

作者绘制的图像:

第5点:通过成为一名值得信赖的软件工程师来赢得信任

在我在亚马逊的第一份工作中,尽管这份工作并不是我理想的选择,但我作为一名软件工程师全力以赴,我的目标是让自己变得不可或缺,从而能够选择我想要接手的项目。这种努力建立了一个相互信任的关系,我们彼此尊重建议。

这个问题为什么重要? 通常,只有顶尖的工程师才能挑选自己的项目,而其他人则不得不接受分配给他们的任务。展示可靠性可以为你赢得一些原本无法获得的机会,并让你对自己的职业道路有更多的掌控。

6. 项目工作内容

一旦你加入了一个拥有机器学习机会的团队、支持性领导和相关领域的空间,就是时候来应用你的基础技能了。

做些小项目的兼职活儿

  • 与经验丰富的机器学习工程师合作,开发模型训练中的小功能或进行一些较小的模型调整。这些任务可能不在您的主要工作职责范围内。

例如,我在亚马逊团队中参与了一个改进 AWS SageMaker 训练管道的项目。这让我能更紧密地与团队中的机器学习工程师合作,了解他们的开发过程,并为即将发布的新模型版本中的新功能开发作出贡献。

扩大你的领域

  • 随着您在问题领域越来越自信,开始探索更广阔的领域。深入研究,了解当前系统的挑战和局限,并找到潜在的改进点。

提示:阅读同一领域其他公司的博客和研究文章,从而了解他们的挑战并获取潜在的改进思路。例如,我在亚马逊工作时,我会留意其他电商平台如 eBay 和 Walmart 的科技文章。

  • 这是你发挥创意,找出独特解决方案的机会。保持一个详细的文档,记录你在整个过程中的所有学习和发现。包括设计文档、技术见解、实际挑战、你已经实施的解决方案以及你收到的任何反馈和评估。这不仅是一个宝贵的工具,能帮你追踪学习过程,而且在你的过渡评估中,它还能作为有形的证据。

第7点,了解绩效评估

像晋升这样的过渡是滞后指标,意味着任何新角色都需要个人已经达到了该角色应有的水准。在您过渡到MLE角色的过程中,识别用于评估的标准。通常,在绩效反馈会议中,软件工程师和MLE的评估标准不同。

与软件工程师相比,机器学习工程师(MLE)更侧重于可扩展系统的设计、项目复杂度的代码质量和业务指标的影响技术专长。这是因为,与软件工程相比,机器学习的开发周期通常更长,并且通常直接与特定业务指标挂钩。

告别的话

从软件工程师转到机器学习工程师可以既充满挑战又极具回报,这种转变确实如此。这需要战略规划、持续学习和灵活性。

几个额外的技巧:

  • 寻找导师: 在你进行转型的团队中找到一位导师。这位导师会在你转型的过程中支持你,帮助解决任何障碍,并为你识别新的机会。
  • 记录你的学习心得: 保持对你在转换过程中所有学习心得的详细记录。这些文档将帮助你回顾和提炼想法,并在绩效评估时作为参考。
  • 主动沟通: 定期与你的团队和经理沟通你遇到的挑战和取得的进展。开放的沟通将有助于根据实际情况调整策略,并确保你持续获得团队的支持。

这些策略在我职业转型过程中发挥了关键作用。通过遵循上述步骤,你可以让你的职业旅程更加顺利,并为你的新角色——机器学习工程师(ML工程师)的成功打下坚实的基础。

祝你好运哦,一如既往地,学习愉快!

如果这篇文章对你有所帮助,并且你想了解更多关于机器学习的实用技巧,订阅我的通讯,或在LinkedIn上与我联系。

免责声明: 本博客基于个人经验和公开资料。请注意,文中表达的观点仅为个人观点,并不代表我过去或现在的雇主的观点。请始终参考招聘公司的官方资源和指南以获取最准确的信息。

这篇关于从软件工程师转行成为机器学习工程师的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!