• 赚钱入口【需求资源】限时招募流量主、渠道主,站长合作;【合作模式】CPS长期分成,一次推广永久有收益。主动打款,不扣量;

软件开发人员转行方向

常见问题收藏 cps12345 6个月前 (07-09) 164次浏览 0个评论

软件开发人员还能做什么?

这种认识让我开始思考:“软件工程师除了编写软件外还能做什么工作?”

这篇文章将介绍软件开发人员(尤其是新手训练营毕业生)可用的许多职业道路。我将解释每项工作的用途,如何步入正轨以及长期前景。

无论您是因为没有找到工程师的工作而寻找替代职业,还是因为意识到软件开发都不适合您,本指南将帮助您找到适合自己技能的职业。

面向客户的角色

尽管软件工程师会从提高人员技能中受益,但与我交谈过的一些训练营毕业生并不希望整日安静地坐下来编写代码。如果您想找到一条提供更多与人互动的机会的职业道路,这些工作可能会适合您。

1.开发人员关系,倡导或布道

随着越来越多的公司努力与作为其客户,用户或拥护者的开发人员建立关系,开发人员关系领域正在迅速发展。

开发人员关系专业人员(有些公司称他们为开发人员拥护者,开发人员传福音者,社区经理或“ DevRels”),帮助围绕他们公司的软件建立和建立社区。

他们经常参与创建演示应用程序,撰写博客文章,在会议上发表演讲以及为专注于技术的公司管理社交媒体帐户。许多知名科技公司(Facebook,Google,Amazon等)都雇用了开发人员关系专业人员团队。

如果您对此领域感兴趣,请阅读Mary Thengvall和PJ Hagerty的工作。他们是我在太空中最喜欢的两个影响者,他们一起发布了Community Pulse播客。

2.开发人员行销

虽然与开发人员的关系存在一些重叠,但是开发人员的营销更加侧重于外部。

向开发人员进行营销特别棘手,因为我们不喜欢被出售,因此在其他市场上适用的许多更具侵略性的营销策略都是禁忌。作为具有技术背景的人,您自然会了解开发人员的想法,并且比传统的营销人员可能会更有影响力。

SlashData推出了许多有关Developer Marketing的精彩内容,包括有关2018年主题的书。如果您想开始该领域,请学习在线营销:SEO,社交媒体,内容营销,网红营销等。您可以在博客上练习许多这些技能,以在申请工作之前证明自己的知识。

3.销售工程师

许多工程师被标题为“销售”的任何工作关闭,但这仅仅是因为我们都遇到了糟糕的销售人员。

事实是,每个人都在销售。无论您是在面试过程中“推销”自己为求职者,还是在工程团队中倡导新框架,销售都意味着用正确的解决方案满足客户的需求。

销售工程师的独特之处在于他们具有一定水平的技术专长。对于那些不想整天编写代码但了解软件工程的开发人员来说,这可能是一个绝佳的选择。

关于销售的另一个好处是您不需要任何专业认证。Hubspot很好地介绍了您可以开始使用的一些技能和资源。随着越来越多的公司为工程师构建软件工具和服务,在未来十年中,销售工程师的需求可能会更大。

4.技术人员

在软件工程师中,另一个糟糕的说唱专业是技术招聘。

我遇到了一些诚实,真诚的技术招聘人员(例如,我的家乡芝加哥的泰勒·多西特(Taylor Dorsett)和马特·霍夫曼(Matt Hoffman),但我也遇到了一些糟糕透顶的招聘人员,他们纯粹专注于通过候选人来达到配额。

好消息是,有了软件开发背景,您将比那里的许多其他技术招聘人员拥有更多的同理心和公信力。像销售一样,该领域要求更外向,注重关系的个性,但不需要专门的证书或课程。

不幸的是,技术招聘中的许多入门级工作都是在低质量的公司中进行的,因此在申请之前,请务必在Glassdoor上检查其声誉。

产品角色

如果您想留在产品团队中,但不确定要成为软件开发人员,则可以转换成许多领域。这些角色与工程师紧密合作,因此您的编码知识将为您提供帮助,但它们还需要其他专业知识。

5.质量保证或测试工程师

尽管质量保证和测试工程师之间存在细微的差异,但两者都必须在测试软件上线之前对其进行处理。

如果您注重细节,并且喜欢提出创造性的方法来自动化重复性任务,那么这可能是一条不错的职业道路。这可能需要一些编码以及一些手动测试工作。

较小的公司让他们的软件工程师测试彼此的代码,因此专用的测试和QA角色在大型组织中最常见。公司进行测试的方式之间存在很大差异,因此请务必询问他们使用的工具,测试的自动化程度以及您所承担的角色需要手动还是自动进行多少测试。

6.业务分析师

产品开发生命周期的另一端是业务分析师。它们通常充当业务和技术团队之间的桥梁,以确保了解要求,限制和时间表。根据团队的结构,他们还可能加入并帮助进行测试和质量保证,因此他们需要具备广泛的产品知识。

如果您具有业务,产品开发或设计的背景,并且具有一定的编码技能,那么您可能有资格担任入门级业务分析师角色。如果不是这样,我建议您研究一些在线课程,以帮助您对角色及其作用有一个基本的了解。

7.项目经理

像业务分析师一样,项目经理必须了解其产品的业务需求和技术约束。

关键区别在于,项目经理通常会深入单个项目。他们经常为项目团队定义任务和资源,并在项目即将发布时跟踪项目的进度。

较小的公司可以通过各种方式组合业务分析师,项目管理,Scrum管理员和产品经理的角色,但是较大的公司可以定义单独的职责。

出色的组织技能,对业务的理解以及人员技能对于项目经理的成功至关重要。该角色取决于您管理期望的能力和激励可能比您更资深或更有经验的人,因此您必须快速建立信任。这个角色的多面性使其非常适合那些不想再编写代码的分析型技术人员。

8. Scrum Master

在敏捷团队中,Scrum Master帮助确保每个人都了解并购买Scrum理论,最佳实践和规则。

最终看起来很像项目管理,但特别着重于为参与产品开发的其他团队提供服务。再次,这并不总是它自己的工作,但是在较大的组织中,可能是这样。

管理期望和限制的能力对于您作为Scrum Master的成功至关重要。您还需要了解敏捷最佳实践,因此我建议您找到适合该主题的合适课程或书。敏捷已经在各种规模的组织中得到广泛采用,因此这种职业道路在未来十年中可能会继续增长。

9.产品经理

产品经理从整体上看公司的产品,以确保它们是理想的(客户想要的),可行的(具有商业意义)和可行的(我们可以制造)。像这样的高水平思考的能力是很少见的,因此,如果您具备这种能力和一定的技术背景,那么作为产品经理可能会做得很好。

入门级产品经理可能从产品的较小部分开始,或者在某些组织中以项目经理的身份开始。这可以让您尝尝产品开发的乐趣,并帮助您在分配自己的产品进行管理之前与所有必要的利益相关者建立关系。

10.设计师

如果您来自设计或艺术背景,成为具有一些编码技巧的UI或UX设计师是在您的领域脱颖而出的好方法。这些技能的组合将使您可以更有效地与工程师交流,并在HTML / CSS中创建交互式模型,而不仅仅是静态图像文件。

如果您没有太多的设计经验,请参加课程并开始建立投资组合。如果能展示他们的知识和技能,许多公司会雇用没有学位的人员。Dribbble是我见过的最常见的投资组合平台,但是您也可以使用自己的网站。

11.没有或低码开发人员

过去几年中,无代码和低代码开发工具的爆炸式增长为希望快速构建软件而无需雇用开发团队的公司提供了机会。这些工具使您可以在数小时内(而不是数周)内创建移动或Web应用程序,并且由于它们每年都在变得越来越好,因此越来越多的公司开始采用无代码应用程序。

Makerpad和No Code Jobs是开始寻找这类工作的好地方。因为这是一个新领域,所以您会找到各种必需的技能和薪水表,但是毫无疑问,您的背景写作代码将成为资产。

支持角色

许多新软件工程师并不了解幕后的许多员工,这些员工可以帮助保持服务器,网站和操作的平稳运行。其中一些角色要求您编写自动化脚本或对服务器管理有深入的了解,但是如果您正在寻找传统产品开发周期之外的内容,但又出于技术方面的考虑,那么这些角色可能非常适合。

12. Sysadmin或DevOps工程师

大型软件公司全年有成百上千的服务器需要修补,升级和轮换。尽管云计算的广泛采用已将这项工作从物理上插入服务器转变为使用Terraform和Kubernetes之类的软件,但在这一领域并不乏工作。

传统上,系统管理员负责根据工程团队的需要维护和管理服务器。随着组织的发展和迁移到云托管,许多组织都采用了DevOps工程师的头衔来反映此过程中使用的越来越多的自动化。实际上,这些角色之间有很多重叠之处。

无论哪种方式,您都需要对操作系统,主机平台,自动化工具,bash脚本和系统体系结构有基本的了解。在该领域可能很难找到入门级的工作,因为它需要大量的技术知识,但是如果您希望在没有UI / UX要求的情况下进行工程的解决问题,那么这是一个非常重要的角色面向客户的产品要求。

13.数据库管理员

一些公司将数据库管理员和系统管理员放在一起,但是这可能是一个不同的角色。

数据库管理员处理低级数据存储系统的安全性,供应,扩展和优化。您将需要有关SQL和NoSQL数据库的知识,安全性最佳实践以及一些基本的脚本编写技能,但是您可能不会整天都在编写代码。您还将担心真正微小的优化问题,例如修复索引和缓存。

如果您不熟悉软件开发,请首先学习有关数据库的所有知识。您将需要知道哪个数据库适合于哪个应用程序,以及如何大规模优化每个数据库,因此很难独自实践。如果要查找一些大型数据集以使用,请查看Kaggle。

14.站点可靠性工程师

站点可靠性工程师负责响应和解决生产中出现的关键问题。通常,这意味着他们轮流浏览“通话中”列表,因此您可能要花一些奇怪的时间。好处是,您将真正擅长解决各种异常问题,构建自动警报并读取服务器日志。

由于这项工作具有高度反应性,因此很难长时间保持经验丰富的软件工程师担任站点可靠性角色。就是说,如果您在找到自己的第一个软件开发角色时遇到困难,那么这可能是个不错的选择。我认识过两个训练营的毕业生,他们从SRE职位开始,然后过渡到软件开发。您甚至可能会发现自己喜欢快速解决问题的挑战和兴奋。

15.技术或客户支持

尽管有些工程师担心与客户的互动,但另一些工程师却发现,它可以帮助人们整天解决问题。您的经验编码将使您成为软件公司客户支持职位的理想人选,这些公司需要具有技术背景的人员来回答问题和提出建议。

支持工作的不利之处在于,您可能必须在最糟糕的情况下与人们互动。不满意或沮丧的用户可能不愿意与技术支持团队交谈,因此您需要大量的耐心和浓密的皮肤才能长期担任此角色。

教学和写作角色

我一直很喜欢教学,所以我发现自己偏向于允许我这样做的工程职位。如果您喜欢分解复杂的主题并将其介绍给其他工程师,则可以采取一些职业道路。

软件开发人员转行方向

16.技术作家

我在大学的第三次实习是在一家大公司担任技术作家。写作很枯燥,但是我每天都喜欢学习新事物。

从那以后,我发现技术写作不仅意味着文档。您可以从事技术博客或文案写作;您可以创建内部或外部文档;您可以创建演示应用程序和教程。对于作家来说,这是报酬最高的领域之一,因此值得考虑。

如果走这条路,您将需要擅长写作(显然),组织复杂的思想和学习新事物。您进行自我编辑的能力越强,您的工作就会越有价值,因此,请投资有助于提高您的工作效率的工具。

您可以开始为某些付费社区写作计划写作,并在建立网络和投资组合时将其经验转化为全职工作。

17.老师

您可以通过多种方式将软件开发职业转变为教师。您可以在编码训练营找到工作,可以在大学或高中任教,可以加入egghead.io之类的平台,也可以开始在Udemy之类的课程上学习。您采取的方法取决于您的背景和风险承受能力。

无论如何,教师必须快速学习新信息,并以易于消化的格式向学生展示。您必须在他们的水平上与观众见面,并与他们建立信任才能成功。教学的费用可能低于软件开发的费用,但它也可能是一条非常令人满意的职业道路。

18.培训师

企业培训是另一种教学形式,但也值得考虑。培训人员可以在大型公司中担任独立顾问或员工的职务,他们通常会前往客户办公室提供有关专用软件的动手培训。

培训师可能具有深厚的技术知识,但有些仅仅是精通技术的交流者。企业培训通常比教学更好,但也可能更多以销售为导向。培训人员经常在会议上讲话,举办社区研讨会或在培训课程之间参加聚会小组。

如果您喜欢在舞台上展示技术概念,那可能是一条理想的职业道路。

分析角色

科技公司中的许多角色都需要分析技能。尽管这些领域中的许多领域都需要专门的教育,但是如果您要离开软件工程事业,则值得考虑一下。您的工作节奏将不同于大多数以产品为中心的工程师,并且像上面的某些支持角色一样,您可能会与业务的其他部门进行交互。

19.数​​据科学家或工程师

这两个角色(某些公司将它们结合在一起)涉及使用大数据集来帮助企业或其客户做出更好的决策。

数据工程师通常负责数据提取和组织流程,而数据科学家则设计实验和算法,将这些数据转化为有用的结果。数据科学(人工智能,机器学习等)是一个巨大的领域,植根于数学,软件工程和统计领域。

有用于数据科学和工程的课程,训练营和大学学位,但是如果您具有较强的数学背景,则可以自己学习一些基础知识。如果没有,请考虑先进行数值分析,矩阵代数和统计。

由于学习这些技能需要花费很长时间,并且对数据科学家的需求很高,因此该职位的薪酬很高,而且不太可能很快消失。

20.安全分析师

信息安全角色通常会躲在雷达下,直到出现问题为止。尽管每个开发人员都应意识到安全漏洞和风险,但还是明确雇用了安全分析人员来查找,分类和建议解决安全问题的方法。

有些人担任独立顾问,但在大公司中,可能会有内部团队。这个角色很有趣,因为它需要技术,合规性,业务和风险评估技能的综合。

安全工作也是技术领导者最难填补的工作之一,因此您将在这里获得工作安全。信息安全是一个广阔的领域,因此,如果您有兴趣追求它,请查看许多可采取的途径。

21.研发

对于具有软件工程技能的人来说,从事研发工作可能是一次独特的经历。诸如Google和Amazon之类的大公司将其部分利润用于研发团队进行的高风险,潜在的高回报实验。这些跨学科团队可能包括软件开发人员,数据科学家,业务分析师和项目经理。

进入一支优秀的研发团队非常困难。这些角色往往具有竞争性,并且需要有关您在编码训练营中可能不会学到的主题的高度专业化的知识。就是说,有些公司雇用道德的黑客,创始人或多才多艺的人来帮助完善团队,并在其中融入一些创造性思维。

独立性和灵活性

虽然我们的职业通常允许进行远程工作,有时甚至允许休假,但您可能希望生活更加灵活。如果您有创业的动力,则可能每周可以工作4个小时,一年中花六个月的时间,或者花一半时间从事开源项目。这并不容易,但是作为软件开发人员,您对大多数人都有很大的帮助。

22.自由职业者或顾问

争取更多自由的一种方法是离开9-5岁的工作,成为自由职业者。作为自由职业者,您将聘请一个或多个客户,这些客户将按小时付费给您,以为其编写代码。公司经常雇用自由职业者从事特定的短期项目,清理技术债务,或者在员工休息时填补空白。

顾问是高端的自由职业者,可以为客户解决特定的问题。尽管他们可能会编写代码,但由于他们的专业知识或独特的背景而经常被带进来。自由职业者和顾问之间的界线非常模糊,因此不要在语义上陷入太多。

作为自由职业者或顾问入门是最困难的部分。如果您没有庞大的网络,则可能需要依靠Upwork或Toptal等平台来寻找客户。这些平台极大地减少了您的收入,并迫使您直接与全球许多其他自由职业者竞争。

建立信誉和客户列表时,您将能够从引荐中获得更多工作。推荐是很棒的,因为客户是基于可信任的关系而不是基于互联网的匿名性来找您的。如果您真的很擅长自由职业或咨询,则可以将您的费率提高得足够高,以便在每次参与之间可以花一些时间。

23.创业创始人

互联网是完整的软件工程师的故事,谁创业(1,2,3),所以你可能会得到的印象是,它很容易,甚至是一个好主意。

事实是,这取决于。

初创公司通常需要很长时间才能产生收入,因此您需要几个月或几年没有薪水的生活才能完成这项工作。就是说,如果您想建立自己的软件业务,那么其发展潜力几乎是无限的。

您也许还可以在正常工作时间之外创办公司。尽管这很难做到(并且可能会有法律后果),但这并不少见。如果您可以找到其他一两个创始人共同分担工作负担,则可能会增加成功的机会。

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址