0. 全栈开发人员职业路线图
全栈开发人员是IT行业中薪资最高的职业之一。
如果您想成为一名全栈开发人员,以下是2023年全栈开发人员路线图上的十一个步骤:
- 掌握敏捷开发和Scrum
- 学习浏览器技术,如HTML和CSS
- 熟练掌握JavaScript或TypeScript
- 了解Git及其CI/CD生态系统
- 具备移动应用程序开发能力
- 使用RESTful API交换JSON数据
- 使用SQL管理超大型数据库
- 掌握中间层技术
- 学习用于云原生配置的YAML语言
- 使用Rust或C++与底层技术打交道
- 致力于12因素应用程序开发
1. 敏捷开发
所有全栈开发人员都具备敏捷性这一特质。
每个技术组织都知道,条件变化太快,无法提前数月进行适当的计划。这就是为什么每个全栈开发人员都必须具备敏捷性,并理解快速“响应变化比遵循计划更重要”这一点。
这是敏捷开发的一个原则。其他三个是什么呢?
- 个人与互动高于流程和工具
- 能工作的软件高于详尽的文档
- 与客户的协作高于合同的谈判
无论您使用哪种软件堆栈,精通哪些开发工具或部署到哪个云平台,如果您不是一名敏捷的全栈开发人员,这些都是无关紧要的。
阅读敏捷宣言并将其12个敏捷软件开发原则铭记于心。
在学习过程中,学习敏捷框架,如Scrum或Kanban。
Scrum指南只有13页长。阅读它以便了解敏捷软件开发的全部内容。
2. 需要具备HTML和CSS的核心能力
HTML和CSS是网站开发的基石。
一名全栈开发人员可能不会花费大量时间开发网站的落地页面,但需要深入了解HTML,以便:
- 修复网站错误
- 更新WordPress模板
- 浏览PHP代码片段
- 修复响应式网站
- 进行SEO优化
一名全栈开发人员需要了解和掌握的第一种编程语言是HTML。如果没有HTML知识,您不可能成为一名全栈开发人员。
3. 需要熟练掌握JavaScript
想成为一名全栈开发人员吗?那么您必须掌握JavaScript或TypeScript中的一种。
JavaScript是Web浏览器的四种W3C标准编程语言之一,也是唯一一种可以对WebAssembly组件进行基于浏览器的调用的语言。
此外,JavaScript在服务器端也得到了广泛的支持,如Node.js,因此当需要与数据库或消息队列集成时,可以轻松地将基于浏览器的JavaScript技能转移到后端。
全栈开发人员必须在前端和后端都具备能力。了解JavaScript可以让全栈开发人员进入前后端两个领域。
4. 掌握Git
全栈开发人员编写的所有代码都必须存储在某个地方。
如今,绝大多数代码都存储在基于Git的存储库中,如GitHub、GitLab或BitBucket。
全栈开发人员需要知道如何提交代码、合并分支、变基历史和压缩提交。
Git是一项必要的全栈开发人员技能。
5. 移动应用程序开发
全栈开发人员需要了解移动应用程序开发。
如果您想成为一名全栈开发人员,您需要知道如何使用以下语言开发iPhone和Android设备的应用程序:
- iPhone使用Swift
- Android使用Kotlin
- 两者都可以使用React Native
您还需要了解发布到Apple Store或Google Play Store的复杂性。
如果您不知道如何将移动应用程序分发给客户,那么开发移动应用程序就没有意义了。
6. 使用JSON构建RESTful API
客户端和服务器之间发生的绝大部分通信都是通过交换JSON数据的RESTful API进行的。全栈开发人员需要了解两者。
全栈开发人员需要知道:
- 如何构建RESTful API网关以供客户端访问
- 如何从客户端应用程序连接到RESTful API
- 如何通过认证和加密保护RESTful API
- 如何创建可靠的可扩展的RESTful API
作为学习RESTful API的一部分,还要学习如何将JSON存储在NoSQL数据库中。NoSQL数据库是Facebook和Twitter实现大规模扩展的方式,它们大大简化了RESTful数据持久性。
开始学习RESTful API的旅程,可以阅读Roy Fielding关于RESTful API是什么以及为什么互联网需要它们的2001年论文。这是一篇值得阅读的论文。
7. SQL和关系型数据库技术
NoSQL数据库很重要,但关系型数据库更重要。
全栈开发人员需要了解结构化查询语言(SQL)的基础知识,以便处理存储数十亿行和数TB数据的大型企业级关系型数据库。
SQL和关系型数据库技术的知识对于全栈开发人员非常重要,以便:
- 管理、修改和查询大型数据库系统
- 为外部工具、客户端和API提供后端集成
- 调整和优化数据库性能
- 在出现问题时解决生产问题
8. 中间层技术
全栈开发人员需要知道如何将客户端层和后端数据库层连接起来。
- 如果需要与应用程序服务器和云API交互,则Java非常适合。
- 如果您的堆栈包括机器学习或人工智能,则Python非常适合。
- 如果要使用跨越堆栈多个层的单一语言,则JavaScript非常适合。
全栈开发人员需要了解中间层编程语言,以及与该语言堆栈相关的中间层技术的知识。
例如,一个以Java为重点的全栈开发人员还应该对Java中间层技术有深入的了解,例如:
- Tomcat
- WebSphere
- Kafka
- Jenkins
- CouchDB
- Hadoop
中间层对于全栈开发人员来说非常重要。
9. 使用YAML进入云原生
YAML是云原生技术的标准“应用程序配置”语言。
- 想要使用Terraform进行基础设施即代码管理吗?
- 想要使用GitHub Actions进行持续集成和部署吗?
- 想要使用Docker和Kubernetes部署应用程序吗?
- 想要在AWS上配置网络网关吗?
您可以使用YAML对它们进行配置。YAML是全栈开发人员的必备技能。
10. 靠近硬件
不是所有开发人员都需要“靠近硬件”。
但如果您需要,您需要了解编程语言,如Rust、Go或C。
这些语言使全栈开发人员可以为以下组件编写代码:
- 操作系统,如Linux和Windows
- 制造和汽车领域中使用的嵌入式系统
- 云计算中使用的虚拟化程序
- 密码和安全组件
了解类似Rust或C++的语言,可以让全栈开发人员编写编译为二进制代码的代码,而不需要像Java和Python一样运行在抽象层之上。这就是为什么这些语言被称为“靠近硬件”的原因。
11. 致力于12个要素
“12因素应用程序”原则描述了开发云原生应用程序的最佳实践。
学习如何创建12因素应用程序,并承诺按照这些原则编写您的应用程序。
任何部署为微服务、Lambda过程或无服务器函数的应用程序都必须符合12因素要求。
了解这12个因素,并承诺遵守它们。
如果您掌握了所有这些技能,您将完成2023年全栈开发人员的路线图,并将在IT领域获得可观的职业生涯。
【注】本文译自 2023 full-stack developer roadmap