尽管经济形势不明朗,仍有很多科技公司在招聘,技术人员可以通过成为全栈软件工程师来增加市场竞争力。这些技术人员负责从前端到后端的整个开发过程,该工作还包括数据结构的完成、架构设计和代码审查。
Grammarly的软件工程师Kendal Cockrel可以分解堆栈的各个部分。Cockrel说:“前端通常包括web或移动等客户端用户界面——把它想象成用户可以看到和交互的东西。”后端由用户无法看到的系统部分组成——服务器、应用程序和数据库。
Codecademy的工程经理Reed Laverack表示,全栈工程还包括“建立数据库存储、开发与数据交互的逻辑、构建API层,并最终以有用的方式将数据呈现给终端用户。”
从小型软件开发开始
Laverack建议,在培训成为全栈工程师时,从学习如何开发一个简单的应用程序开始,然后从哪里开始构建。接下来的步骤可以包括证书程序、示例项目或完整的投资组合网站。Laverack还建议参加本地的聚会,并在在线软件工程社区中讨论全栈工程的目标。
如果是一家初创公司,你将有额外的机会从事软件的多个方面。Laverack表示,像谷歌和Facebook这样的大公司,软件工程师的职位分离度更高。
编码训练营coding Dojo的高级讲师Saurabh Dahal建议开发人员从前端开始学习HTML、CSS和Vanilla JavaScript。在此之后,你可以继续使用Python或JavaScript编写完整的堆栈。
在Scala做了两年后端工程师之后,Cockrel开始了她的全栈开发。她从她的网页开发同事那里学习了React,然后就能够更广泛地从事网站和前端服务的工作。
Cockrel说:“最终,我把时间平均分配给了这两个模块,并定期在这两个模块上工作。”
在软件堆栈中学习什么
Cockrel建议,对于开发移动前端的全栈工程师来说,他们应该学习面向iOS的Objective C和Swift,面向Android的Java和Kotlin。Kotlin是一种跨平台语言,可以作为Java的替代品。
Cockrel还建议全栈开发人员加强对服务器端语言(如Java、Python或Ruby)和数据库技术(如SQL (MySQL)和NoSQL (DynamoDB, Mongo))的学习。
作为全栈工程师构建适应性
全栈工程师以其通用性而闻名,Cockrel说:“与专注于某一专业的开发人员不同,全栈工程师是通才,通常具有充分的后端和前端技术知识。”
Cockrel在Grammarly担任全栈工程师,她描述了自己从事的各种项目:“在一些sprint中,我可能会花大部分时间和设计师一起用React和TypeScript构建前端接口。在其他的冲刺阶段,我可能会用Java重新设计和重构API,或者用Scala编写Spark Job,将数据输出到数据库中。”
此外,Cockrel 还拥有其他一些端到端的项目:“作为一个全栈开发人员,我一直负责创建一个数据库模式,设计CRUD API,然后构建使用这个API的网页,让用户与这些数据进行交互。”
虽然许多大学课程和训练营教授软件开发,包括前端和后端,但如果你选择了一个专注于全栈的程序,那么你应该正在设计一些大项目(并获得可观的薪水)。
“全栈开发正变得越来越流行,”Cockrel说。“随着工程师就业市场的增长,对多才多艺的开发人员的需求也在增长。”
作者:Brian T. Horowitz