什么是软件开发者?2020年代的热门职业?
软件开发者类型
主要区分两种类型的软件开发者——应用开发者和系统开发者。
应用软件开发者
应用软件开发者编写和修改构成PC和移动设备程序的代码。
系统软件开发者
系统软件开发者则从事后端工作,创建操作系统、数据库软件和网络。
软件开发的历史
软件开发的历史可以追溯到20世纪中期,当时第一个执行数学运算的程序在英国的“曼彻斯特宝贝”计算机上运行。
在20世纪70年代和80年代,苹果和IBM创造了第一台个人电脑,这启动了对软件开发者的需求。
该领域持续增长,尤其是在过去二十年:互联网的兴起以及几乎所有行业对软件解决方案日益增长的需求,巩固了软件开发在我们时代所扮演的主要角色。
工作与职业前景
美国劳工统计局估计,在2020年代,美国的软件开发工作将增长25%(相对于所有领域的平均5%),在此期间将有超过40万名软件开发者就业。
来源:bls.gov
薪资
美国软件开发者的中位年薪略高于12万美元,最低的10%年薪约为6.4万美元,最高的10%年薪超过16.8万美元。
为什么选择软件开发者?好处
以下是成为软件开发者的部分好处:
- 具有挑战性和吸引力的工作。开发者每天利用他们的专业知识和认知能力解决客户的紧迫问题,为市场和他人的生活增加价值。
- 能够远程工作。编码任务可以在世界任何地方完成,视频会议通常足以进行团队协作或客户沟通。软件开发者的工作是远程完成的绝佳候选,也是许多目前在该领域工作的人的现实。
- 高增长潜力。当软件开发者证明他对公司结果的非凡影响时,他会被考虑担任高级软件工程师或技术主管等职位。以承担公司内部更多责任为交换,获得高于初级开发者已经令人印象深刻的起薪和福利的潜力,使职业道路更具吸引力。
工作满意度
那么,软件开发者对他们的工作选择满意吗?根据StackOverflow,70%的人满意。这些满意的开发者欣赏高薪、充足的自由时间和灵活性,以及产生价值和成长职业的能力。
软件开发者职位描述与职责
“负责创建新软件、启动它并执行维护的人”是软件开发者的简明职位描述。
他的职责包括:
- 研究
- 软件设计
- 编写代码
- 测试与调试
- 软件部署(启动)
- 代码维护与软件管理
- 与团队(偶尔与客户)沟通
语言
软件开发中使用的一些最常见编程语言包括:
Python
Python是一种易于学习的语言,具有许多用例。Hackerrank确定50%的招聘经理在寻找软件开发者的Python技能。
Java
在招聘经理需求的语言中,Java排名第三。它是一种面向对象的语言,这意味着开发者使用包含代码和数据的对象来创建程序。Java也比一些其他软件开发语言更容易学习和使用。
C#
C#(或C-Sharp)语言由微软于2002年发布,越来越受欢迎,主要是因为它在制作游戏和移动应用方面很有用。然而,它在桌面应用和企业解决方案方面同样强大,使其成为任何软件开发者学习的好选择。
C++
作为一种所谓的低级语言,C++接近计算机在基本层面上的操作方式。当你学习C++时,你会熟悉计算机编程的所有复杂部分。该语言非常灵活,适用于许多不同的用例,从游戏开发到机器学习。
JavaScript
JavaScript是一种高度流行的语言,用于开发Web应用和服务器。它很快,因为用JS编写的程序直接在浏览器中运行。如果软件开发者计划在前端或后端从事Web应用工作,学习JavaScript是必经之路。
软件开发者 vs 软件工程师 – 有什么区别?
软件开发者从事程序本身的工作——而软件工程师则将工程原理应用于软件开发。软件工程师和开发者之间的主要区别在于,前者除了创建代码外,还设计程序的架构。
当前需求
根据Hired.com,2023年所有行业对软件开发者/工程师的需求增长了17%。数字化趋势并未放缓,因此预计即使人工智能出现,对开发者的需求将继续增加。
最高薪的软件开发工作
作为开发者,你可以专攻许多不同的职业领域。通过这些软件开发工作,你可以获得高达15万美元的年薪:
- 算法开发者
- 开源开发者
- iOS开发者
- 软件开发经理
- 量化开发者
技能
为了在工作中有效并在市场上竞争,软件开发者需要许多技能,包括技术性和非技术性(“软”技能):
技术技能
这些是软件开发者最重要的技术技能:
- 编程逻辑。开发者的工作很大程度上是关于使用最合理的程序结构和代码解决问题。正确的编程逻辑将指导开发者编写成功的软件。
- 编程语言。软件开发者应至少熟练掌握一种编程语言——最好是与他将承担的任务相关的多种语言。
- 编写干净、高质量的代码。为了编写最可用、最高效的代码,他需要在创建程序时坚持干净代码原则。
- 算法与数据结构。软件开发者必须了解这些软件程序的重要构建块,并理解何时以及如何使用每一个。这些知识对于通过编码面试也至关重要。
软技能
开发者的关键非技术技能包括:
- 团队合作、同理心与领导力。虽然大多数开发者更内向,但与同事联系是工作的重要部分。树立榜样以积极行动帮助团队度过挑战时期的能力也是如此。
- 沟通、自信与魅力。成为一个和蔼可亲、强大的沟通者让你更好地表达想法和解释概念,专业而引人入胜地代表公司,更不用说为你自己的职业发展打开机会。
- 生产力与情绪掌控。毫无疑问,软件开发有时可能是一项艰难和令人沮丧的工作——其复杂性可能导致生产力下降。软件开发者倦怠是一个真实的问题。这就是为什么开发者需要成为管理注意力、时间和情绪状态的大师。
- 谈判。谈判是开发者的宝贵软技能,帮助他们获得更高的薪资和福利,并协助公司与客户打交道。
如何成为软件开发者
- 开始学习与构建。成为软件开发者的第一步是建立必要的技能。一个经过验证的方法是选择你想创建的简单程序,同时学习完成这些项目所需的基本编程概念。
- 获得学术荣誉或认证(可选)。一些雇主说他们要求学士或硕士学位才能担任公司软件开发者职位。实际上,最重要的是你在完成行业相关项目方面的可证明技能。自学开发者经常进入梦想工作。虽然获得软件开发认证可能并不总是必要的,但它也不会伤害,反而会帮助你获得高薪工作的机会。
- 准备面试。软件开发者面试是另一回事。每当你感觉准备好时,开始制定你的编码面试准备策略。通过几个月的专注学习,你将准备好应对白板编码问题、编程挑战和行为问题。只要对你的求职投入足够的奉献,你就能 sooner rather than later 在该领域找到工作。
课程
诸如Codecademy和Udemy等学习网站为有抱负的软件开发者提供丰富的资源。以合理的价格,你可以使用他们的软件开发课程从第一步一直到编程熟练。
Udemy的“Software Development from A to Z”是初学者从头开始学习编码软件的完美课程。
Codecademy的“Full-Stack Engineer Career Path”是一个为期6个月的前端和后端开发深度课程。
记住在编码教育的同时继续从事你自己的项目。
软件开发学位
如果你准备好投入几年时间接受大学教育,你可以选择获得软件开发学位。
在美国或国际上有无数选择可供学习。
工作保障
考虑到人工智能的兴起,未来几年软件开发者的工作保障很难预测,就像大多数行业一样。美国劳工统计局确实估计到2030年软件开发就业市场将增长超过20%。
然而,很难说自动化是否会打乱计划。
有一件事是肯定的:学习软件开发所需的技能仍将使你在过渡到AI主导的未来时期脱颖而出。即使它完全到来,我也无法想象你作为开发者获得的逻辑技能、解决问题的能力和创造力不会比大多数其他人更好地帮助你应对这样的时代的挑战。
软件开发者的最佳资源
- 官方文档与教程。所有编程语言都提供免费文档和教程。它们是自学开发者熟悉所选语言的概念和任务执行的好方法。
- 付费教育网站。上述的Codecademy和Udemy,以及许多其他优秀的教育平台,将帮助你提升作为软件开发者的技术和职业技能。
- 软件开发工具。从代码编辑器和开发环境,到语言库,到生产力和项目管理工具:有许多应用程序使开发成为可能或/更高效。
- 播客、YouTube和博客。今天丰富的在线软件开发内容让你吸收专家开发者数十年经验中获得的宝贵教训。
- 编程书籍。特别是对于软件架构、创建干净代码等高级概念的深入探讨,不妨看看一些优秀的编程书籍。
- 开发者社区。在诸如StackOverflow、LeetCode或Reddit等论坛中,你可以与开发者同行联系,寻求编码问题的帮助,分享你自己的故事,或从他人的故事中获得灵感。
软件开发者协会与组织
如果你希望进一步参与软件开发作为职业的事务,考虑加入该领域的协会和组织,例如:
- Agile Alliance
- Association for Computing Machinery (ACM)
- Computing Technology Industry Association (CompTIA)
- Information Systems Security Association (ISSA)
- Network Professional Association (NPA)
- Society for Modeling & Simulation International (SCS)
你将能够与同行联系并利用网络机会。
此外,这是一个好凭证,使你的简历、网站和社交媒体资料看起来更专业。
职位空缺
Triplebyte是寻找软件开发工作的好平台。