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

2024-10-08 17:55:32 英文原文

作者:Kartik Singhal

帮助我从软件工程师转型为机器学习工程师的七个步骤

Kartik Singhal

Towards Data Science

我收到很多询问很多(或一大批)关于如何从软件工程师转型为FAANG公司中的机器学习工程师(MLE)。我自己成功完成过这一转型,可以说我面临的最大挑战是不知道从哪里开始,并且在没有明确计划的情况下感到迷茫。

在本文中,我将分享一个分步方法来帮助你应对这一变化。这七个步骤帮我从软件工程师转型为机器学习工程师。

让我们开始吧。

图片由作者提供

了解原因

为什么使用机器学习目前机器学习和人工智能非常热门,但你应该明白自己为什么想要进入这个领域。这种个人动机将在人工智能热潮消退时仍然支持你继续前进。

让我上瘾的东西对我来说,这关乎谷歌搜索是如何开发的。谷歌能够如此快速地找到我所需要的东西,让我非常想知道它背后的科技原理。这种好奇心使我开始学习排名算法,从PageRank入手,然后是更广泛的机器学习。

问自己以下几个问题:

  • 机器学习的哪一部分真正引起了我的兴趣?这是热门趋势还是别的什么?
  • 我是否喜欢某些特定的机器学习应用?对我来说是自然语言处理和推荐系统,但也许你对在金融科技中使用机器学习感兴趣。

慢慢探索

花了我四年时间(包括一年的硕士课程,一年的博士课程,在这一年中我辍学了,以及两年的职业生涯)我才意识到自己真正想做什么。这是可以的。建立经验和了解像机器学习这样大的新领域是需要时间的。

  • 构建基础:从开始的基础知识像统计学和机器学习基础知识这样的内容。这个坚实的基础将帮助你更好地理解这一领域,并找到你最感兴趣的领域。
  • 网络与导师指导:与已经在该领域工作的人聊天,寻找一些身边的导师,了解他们的日常工作,看看是否能激发你的兴趣。
  • 了解您的选项:了解哪些机器学习角色符合你的兴趣,无论是应用机器学习工程师、机器学习研究员还是从事MLOps的工作。阅读我之前一篇文章中介绍的不同角色的内容。这里.

了解您的动机和兴趣将自然地引导您识别在机器学习领域内最适合应用您的技能的领域。

  • 战略性行事:通常机器学习职位会有某些要求的资格条件,比如五年相关行业经验或博士学位。如果你的经验与这些要求不符,可能这个职位并不适合你。当时专注于一步一个脚印地建立你的技能,并战略性地寻找与你当前经验更契合的职位。
  • 找到甜蜜区:如果可能的话, 利用你当前的知识领域发挥优势。 在你已经熟悉的领域内转型会更容易。作为一名软件工程师,你已经了解关键指标、业务目标和特定领域的难题。确定你可以贡献最大的地方,承担起责任,并致力于在这个领域领导。

我开始在亚马逊定价团队担任软件工程师。尽管定价领域并不是我的首选,但由于在那里积累了丰富的经验,这帮助我更快地过渡到了机器学习工程师职位。

图片由作者提供

在你的职业生涯中,你有时会面临需要做出短期牺牲以换取长期收益的决定,尤其是在进入一个新的领域时。以下是在我转行过程中必须做出的一些艰难选择:

  • 拒绝了梦寐以求的公司谷歌的offer两次我收到了谷歌的录用通知书,提供的薪水更高,但我拒绝了,因为该职位涉及Android开发,并没有提供机器学习的机会。相反,我选择了亚马逊,在那里最初的职位也不涉及机器学习,但允许我更紧密地与机器学习团队合作。到目前为止,我一生中做出的最佳选择!!
  • 推迟了我的晋升将近3年我有机会更早地在亚马逊晋升为高级软件工程师。但由于对高级MLE的期望更高,从高级软件工程师过渡到高级MLE要困难得多。考虑到这一点,我选择推迟晋升以保持我的选项开放。

如果你确定了一个你热衷的领域,你仍然需要一个支持你的经理和公司来确保过渡成功。

找到合适的环境:

  • 寻找机器学习机会:寻找公司内提供参与机器学习项目机会的团队。加入一个软件工程团队和机器学习团队紧密合作的团队,幸运的是大多数团队都是这样的。如果你当前的公司缺乏这些机会,可以考虑外部的机会。

提示找到过去将软件工程师转型为机器学习工程师(MLE)的团队。这可以大大加速你的转型,因为这些团队通常有明确的转型指导方针。

  • 寻找支持型经理:熟悉机器学习职位并且支持你的学习和职业发展的经理是至关重要的。他们不仅要口头支持你,还应该采取实际行动来帮助你的转型。

提示:总是起草一份文档,概述你的过渡计划以及你希望参与的项目,并在与经理的一对一会谈中讨论。如果他们反复表现出不感兴趣,他们可能没有动机帮助你转换角色。

图片由作者提供:示例过渡计划

在我在亚马逊的第一支团队中,尽管这份软件工程师的工作并不是我的理想选择,我也尽了百分之两百的努力。我的目标是让自己变得不可或缺,从而能够挑选自己想参与的项目。这种努力与我的经理建立了一种互信的关系,在这种关系中我们彼此尊重对方的意见。

为什么这很重要?通常只有顶级工程师才能选择他们的项目,而其他人则必须完成分配给他们的任务。展示可靠性可以给你带来可能无法获得的机会,并让你对自己的职业生涯有更多的控制权。

一旦你加入了一个拥有机器学习机会、支持性经理和相关领域的团队,是时候应用你的基础知识了。

做小项目的兼职工作:

  • 与经验丰富的机器学习工程师合作,参与模型训练的小功能开发或对模型进行微小改动。这些任务可能不在你的主要工作职责范围内。

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

扩大你的范围:

  • 随着你对问题领域的信心增强,开始探索更广泛的领域。深入研究以了解当前系统面临的挑战和局限性,并识别潜在的改进区域。

提示:阅读同一领域内其他公司的博客和研究文章,以了解他们面临的挑战,并获取潜在的改进想法。例如,当我还在亚马逊工作时,我会关注来自其他电商平台(如eBay和沃尔玛)的技术文章。

  • 这是你创造性思考并识别原创解决方案的机会。保持一份详细的文档,记录你在整个过程中的所有学习成果。包括设计文件、技术见解、实际挑战、已实施的解决方案以及收到的任何反馈或评估。这不仅是一个宝贵的工具,可以帮助你追踪自己的学习进度,而且还可在你的过渡评估中作为有形证据。

像晋升这样的过渡时期是滞后指标,意味着任何一个新角色都需要该个人去已经正在执行达到该职位预期的水平。确定在您过渡到MLE角色时将用于评估的标准。通常,在绩效反馈会议中,软件工程师和MLE的评估标准是不同的。

与软件工程师不同,机器学习工程师的侧重点通常更多在于模型效果、特征工程和算法优化。业务指标的影响技术专长这是因为与软件工程相比,机器学习的发展周期更长,并且通常直接与特定的业务指标挂钩。

从软件工程师过渡到机器学习工程师可能既具有挑战性又充满回报。它需要战略规划、持续学习和适应能力的结合。

几个额外的小贴士:

  • 找一个导师:在你转型的团队中寻找一位导师。这位导师将在你的转型过程中支持你,帮助解决任何障碍,并为你发现新的机会。
  • 追踪你的学习成果:保持对你整个转型过程中所有学习内容的详细记录。这份文档将允许你回顾和改进想法,并在绩效评估期间作为参考。
  • 主动沟通:定期与你的团队和经理沟通你遇到的挑战以及取得的成功。开放的沟通有助于根据需要调整策略,并确保持续获得团队的支持。

这些策略在我职业转型中发挥了重要作用。通过遵循以上步骤,你可以改善你的旅程,并为作为机器学习工程师的新角色的成功奠定坚实的基础。

祝你好运,一如既往,快乐学习!

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

关于《从软件工程师转行成为机器学习工程师》
暂无评论

摘要

帮助我从软件工程师转型为机器学习工程师的七个步骤 我收到了很多关于如何从软件工程师转行到FAANG公司中的机器学习工程师(MLE)的问题(非常多)。对我来说,这是自然语言处理和推荐系统领域的工作内容,但也许你更喜欢在金融科技中应用机器学习。尽管定价领域并不是我的首选方向,但由于我在该领域的丰富经验积累,这让我更快地转型为MLE。一旦加入了一个有机器学习机会、支持性领导以及相关业务领域的团队,就是时候应用你的基础知识了。这使我能够更加紧密地与团队中的ML工程师合作,理解他们的开发流程,并参与新功能的开发,以改进未来的模型迭代。