11 种类型的开发人员(你会是哪一种?)
已发表: 2022-10-05说“开发者”这个词,我们 Kinsta 会想到“软件”。 不是,比如说,“房地产”。 然而,即使是对计算机和代码的关注也为描述开发人员的类型留下了很大的空间。
我们可以根据他们使用的编程语言对开发人员进行分类——比如“JavaScript 开发人员”或“Python 开发人员”——但这并不能揭示他们正在创造什么或他们在这个过程中的角色。 此外,开发人员了解多种语言是很常见的。
因此,我们将为开发人员类型使用一些被广泛接受(并且更具描述性)的标签,并查看它们背后的任务和工具。
什么是开发人员?
我们已经确定,软件是我们开发人员故事的关键。 这可以采取多种形式。
Microsoft 的 SQL Server 数据库软件背后的编程团队的一名成员是一名开发人员。 使用结构化查询语言处理存储在此类数据库中的信息的人也可以是开发人员。
一位开发人员创建了嵌入在电路板中的计算机操作系统。 另一个编写 Bash 脚本来自动执行多个其他软件程序之间的交互。
所有这些类型的开发人员都使用代码构建了一些东西。
有多少种类型的开发人员?
没有开发人员职位描述的“官方”列表。 我们将使用一些常用术语来了解开发人员所做的工作,我们甚至将范围广泛的“Web 开发人员”类别分解为三个不同的角色。 (我们承认:我们心中对建立网站的人情有独钟。)
总之,我们将在这里回顾 11 种类型的开发人员。
1.前端Web开发人员
前端开发人员专注于网站的用户界面。 他们使用自己的 HTML 和 CSS 技能来控制网站的外观和感觉,通常适应移动和桌面浏览器的各种屏幕尺寸。
前端开发人员通常依靠 JavaScript 为用户创建响应式体验。 这些开发人员通常熟悉可以加速创建面向客户端的动态应用程序的 JavaScript 库和框架。
前端开发人员致力于提高网站性能、优化图像、JavaScript 和标记,以加快浏览器的加载时间。 大多数前端开发人员还专注于搜索引擎优化和网站可访问性。
所有这些都需要很多技能,前端开发人员的薪水可以反映这一点。
前端开发人员是网页设计师吗?
许多前端开发人员也是设计师,但这不是“前端”标题的要求。 同样,许多网页设计师精通 HTML 和 CSS——并且可能在模型中使用它们——但不认为自己是开发人员。
对于许多组织而言,设计是品牌推广的一部分,包括网络以外的媒体。
无论是谁创建了设计,前端开发人员的工作就是将其在网页上栩栩如生,并将用户体验的愿景转变为功能正常的应用程序。
2.后端Web开发人员
后端开发人员构建的服务器端应用程序通常需要 Web 服务器软件、数据库和运行它们的操作系统方面的专业知识。 Linux 操作系统、Nginx 或 Apache Web 服务器以及 MariaDB 或 PostgreSQL 数据库是一个全开源示例。
后端和前端开发之间的界限被 PHP 之类的技术所模糊,PHP 只是一种将 HTML 发送到前端浏览器的服务器端脚本语言。
PHP——它为 WordPress 和其他流行的 CMS 以及 Laravel 等开发框架提供支持——是网络上最常见的服务器端脚本语言。 不过,后端开发人员可能会使用 C# 和 Microsoft 的 .NET 框架、Python、Java、Ruby on Rails 或 Node.js 等技术。
后端开发人员可以期望与负责网站面向客户端的团队成员协作。 服务器端开发还可以包括创建支持前端服务的应用程序编程接口 (API),而无需将两者紧密耦合。
如果这一切听起来像是你的工作,你可能会对典型的后端开发人员薪水感兴趣。
3. 全栈 Web 开发人员
您可能已经猜到,全栈开发人员负责前端和后端开发人员的工作。 (不幸的是,这并不意味着典型的全栈开发人员的薪水是其他人的两倍。)
尽管如此,掌握所有级别的 Web 开发似乎还是有回报的。 StackOverflow 于 2022 年对开发人员进行的一项调查发现,当要求受访者描述他们的角色时,“全栈开发人员”是最热门的回答(近 47%)。
WordPress 开发人员是全栈开发人员吗?
Kinsta 托管 WordPress 托管的功能允许任何有能力胜任 PHP 的人进行认真的开发,而无需深入研究服务器端。
安装在任何地方的 WordPress 对开发人员都很友好,并提供了一个包含自己的 PHP 函数/方法的大型库,这些函数/方法是一些常见服务器端任务的抽象层。 例如,WordPress 开发人员可以在不编写 SQL 的情况下在关系数据库中存储和检索记录。 他们可以将媒体上传保存到服务器的文件系统,而无需了解 PHP 中实现这一切的核心功能。
“WordPress 开发人员”在这里本来可以是一个单独的类别,但是对于使用 Drupal、Joomla 和 DNN 等 CMS 产品以及 Laravel、.NET 和 Django 等框架的开发人员,我们必须这样做。
许多 WordPress 开发人员——尤其是一些构建 WordPress 主题和插件的开发人员——都有鼓舞人心的全栈印章。 那么,“WordPress 开发人员是全栈开发人员吗?”这个问题的答案。 是:这取决于。
4. 移动应用开发者
术语“应用程序”涵盖了软件开发的很多领域。 从桌面到 Web,应用程序是为最终用户完成工作的工具。
当缩写为“应用程序”时 - 例如,“有一个应用程序!” — 我们倾向于首先考虑智能手机、平板电脑和其他移动设备上运行的应用程序。 创建移动应用程序需要专业类型的开发人员。
移动应用程序开发人员熟悉用于为设备操作系统(如 Apple 的 iOS 或 Google 的 Android)构建应用程序的软件开发工具包 (SDK) 和相关工具。
Swift 是 iOS 的原生编程语言,而 Java 和 Kotlin 最常用于 Android。 此外,Apache Cordova 和 NativeScript 等应用程序构建工具的大型生态系统可以将基于 Web 友好的 JavaScript、HTML 和 CSS 的代码转变为原生移动软件。
当我们查看应用程序开发人员的平均工资时,我们发现那些为移动平台构建的人比那些专注于桌面或网络的人的收入略高。
5. 桌面软件开发商
桌面开发人员创建在个人计算机和工作站上运行的软件应用程序。
开发者通常为特定操作系统构建桌面应用程序,因此该领域的活跃度反映了微软的 Windows、苹果的 macOS、谷歌的 Chrome OS 和开源操作系统 Linux 等平台的相对市场份额。
Statcounter 使用从全球网站访问中收集的数据估计,在 2022 年 8 月,Windows 在桌面操作系统中占有 74% 的市场份额。
开发人员可能会使用集成开发环境 (IDE) 工具进行编程,以快速编辑、调试和编译源代码。
桌面应用程序编程的流行语言包括 C#、C++、Swift 和 Java。
桌面软件在本地运行,但现代应用程序可能会使用 Internet 连接来完成从产品更新到通过云存储共享数据的各种任务。
6. 数据科学家(大数据开发人员)
人类通过日常生活帮助生成大量数据:在杂货店结账、上网、开车经过交通摄像头、使用手机——甚至投票。 我们已经建立了系统来记录来自自然现象的数据,例如天气、地震和来自太空的电磁信号。
数据科学家是一个拥有计算机的数学向导,可以发现所有信息中的模式。
这些开发人员很有可能使用 Python 编程语言或更专业的语言,例如 R、Scala 或 Julia。
“大数据”通常会出现在关系数据库中,因此数据科学家的编程工具箱中可能会有 SQL。
7.人工智能/机器学习开发者
人工智能 (AI) 软件开发人员寻求模仿人类行为,例如决策。 添加机器学习 (ML),随着时间的推移,应用程序可以变得更加智能。
AI/ML 应用程序通常使用复杂的算法处理大量数据,因此该领域的开发人员通常是数据科学家。
市场研究公司 IDC 发现,2021 年全球人工智能相关应用、硬件和服务的收入超过 3830 亿美元,比 2020 年增长近 21%。
客户关系管理软件和企业资源管理软件约占 AI 增强应用收入的 65%。
8. 游戏开发者
电脑游戏开发人员代表了广泛的技能。
他们的软件可能在台式机、移动设备、控制台或网络浏览器中运行。 故事情节适应不同的游戏类型,例如军事或运动模拟、第一人称射击游戏、策略或角色扮演。 然后可能还有 3D 图形、音乐和音效。
在互联网连接的游戏世界中,大型多人游戏的开发人员面临着与最繁忙的电子商务网站一样苛刻的后端服务器和数据库要求。
游戏开发人员通常具有 3D 渲染工具和其他动画相关软件方面的专业知识。
此外,SlashData 的 Developer Nation 最近对尖端技术进行的开发者调查显示,刚刚超过 37% 的增强现实 (AR) 或虚拟现实 (VR) 应用程序是 AR/VR 游戏。 还有 27.9% 的项目涉及构建虚拟世界——有些是为了游戏。
9. 操作系统开发人员
尽管数以千计的开发人员在最流行的操作系统上工作——为 Linux 做出贡献或受雇于微软、苹果或谷歌——但它仍然是一个排他性的群体。 毕竟,SlashData 表示其调查表明全球开发人员总数超过 2400 万。
您的冰箱很有可能拥有操作系统,但流行的计算机操作系统需要大型开发团队的努力,其中大多数人正在开发整个项目的较小组件。
大多数操作系统的核心是内核,它管理对 CPU、内存、文件系统和 I/O 设备的访问。 C 是 Microsoft Windows、Apple 的 macOS 和 Linux 背后内核的主要编码语言。 还使用了一些用汇编编写的低级代码。
Android内核是从Linux内核演变而来的。
在内核之上,操作系统具有驱动程序来管理各种硬件设备和应用程序以进行系统管理。 然后是系统的图形用户界面。 开发人员可能会为这些组件使用 C、C++、Objective C (macOS) 甚至 Python (Linux)。
10. 开发运维工程师
DevOps 工程师管理工具和工作流,使软件从开发阶段快速可靠地发布到公开版本。
“DevOps”是“开发”和“运营”这两个词的组合,从业者可以自动执行重复的软件开发任务——从管理代码到测试、部署、监控、维护和故障排除。
这些工程师使用一套 DevOps 工具来帮助加快软件发布周期,管理项目代码库的各种版本,并确认最终产品按预期工作。
在用于 Web 开发时,DevOps 流程还可以确保应用程序所需的资源在 Web 服务器上可用并正确配置。
DevOps 需要高级技能,而 DevOps 工程师的薪水通常反映了这一点。
11. 安全开发人员(SecDevOps)
安全开发人员构建工具并管理测试软件和计算机系统安全的流程。
在软件开发中,安全通常是 DevOps 流程的一个组成部分。 在那种环境中关注安全的人可能被称为 SecDevOps 工程师。
安全开发人员致力于保护软件和计算机系统免受网络安全攻击和威胁。 他们使用各种工具(包括 Python、Bash 和 Ruby 等脚本语言)来自动执行重复性任务。
安全开发人员必须对他们试图保护的软件和系统有深入的了解。
您想成为哪种类型的开发人员?
如果您正在考虑自己成为一名开发人员,我们提供了一些信息来帮助您采取后续步骤。 你可以阅读最好的编程语言来学习或深入学习 PHP 和发现 JavaScript 教程。
也许您有兴趣了解如何成为 Laravel 开发人员或专注于学习 WordPress,这是世界上最受欢迎的 CMS。
然后,也许有一天,你会加入我们,在 Kinsta 工作。
概括
这是对 11 种类型的开发人员的看法,他们的角色截然不同,足以突出其领域中可用的各种任务。
尽管如此,许多开发人员担任不止一个角色,并且大多数人都熟悉多种编程或脚本语言。 也许这就是为什么我们永远不会就开发人员类型的“官方”列表达成一致。
同时,如果您有一个想要启动的基于 Web 的项目,您可能想要探索 Kinsta 的应用程序托管和数据库托管解决方案。