“全栈开发人员是技术奇才,了解所有编程语言和技术,而且唱歌跳舞也很优美。”
谁是全栈开发人员?
那么,什么是传统意义上的全栈开发人员呢?最常见的定义告诉我们,这是一个负责开发系统功能所有部分的专家,包括产品的用户端(前端)和在分布式服务器上运行的内部代码(后端)。一般来说,如果招聘广告中出现“全栈”一词,则意味着开发人员必须同时具备后端和前端开发的知识和技能。然而,许多公司走得更远,他们所说的“全栈开发人员”指的是一个全能士兵,不仅能够开发软件产品的所有组件,而且还可以承担其他一切,从产品管理到建立运营服务器上的系统并修复办公室打印机。事实上,在大多数情况下,全栈开发人员需要对成功完成项目所需的技术集有相当程度的了解。因此,在这种情况下,“堆栈”是指组合在一起以实现所需功能的软件模块和组件的集合。为什么这个话题如此有争议?
关于全栈开发人员真正应该是什么,以及这样的野兽是否存在足够的数量以将这些专家分成一个单独的群体的争论已经持续了相当长的一段时间。正如经验丰富的程序员所指出的那样,在 2000 年代 Facebook 成立之初,Facebook 的代表在一次专门为开发人员举行的会议上发表演讲时表示,他们只雇用全栈开发人员后,它又重新焕发了活力。“如果全栈开发人员的传统定义让你感到困惑,那么一切都是正确的。这是因为全栈开发人员是短暂的。没有科学模型可以描述什么是“全栈”。与其他类似开发人员相比,没有明确的方法来衡量全栈开发人员的水平。关于全栈的唯一共识是,没有人就这一现象本质的单一定义达成一致。这就是为什么你读到的关于这个主题的所有内容都只不过是主观意见,”经验丰富的软件开发人员和架构师 Ryland Goldstein 说。全栈开发的四大支柱
然而,尽管许多专家认为全栈开发人员是一个有争议的概念,但空缺职位并没有减少,恰恰相反。因此,让我们看看通常情况下,您需要具备哪些领域的知识才能申请此类职位。-
前端开发。
通常,前端是指 HTML、CSS 和 JavaScript 等 Web 开发技术和编程语言。它还包括 React 等 JavaScript 框架,以及与产品“客户端”相关的所有其他技术。
从哪里开始学习:
您可以从Create React App或Gatsby框架开始,使用它们可以很容易地创建一个成熟的 React 应用程序。学习 CSS 预处理器、 CSS-in-JS等基本 CSS 工具以及Sass等工具是个好主意。
-
后端开发。
后端包括服务器上运行的所有代码,包括使网站正常运行的应用程序和 API。后端的主要编程语言有Java、Python、Ruby等。除此之外,后端开发还包括数据库管理,这需要SQL知识。
从哪里开始学习:
首先,建议从加深对 JavaScript 的了解开始,JavaScript 在很多情况下是前端和后端之间的桥梁。特别是,学习NodeJS是一个好主意,它是一个基于 V8 引擎的软件平台,可将 JavaScript 从高度专业化的语言转变为通用语言。
Также для того, чтобы иметь максимально полную квалификацию в бэкенде, рекомендуется, помимо Java, постепенно осваивать такие языки программирования, How Python (в первую очередь), PHP и Ruby.
-
Проджект-менеджмент.
От проджект-менеджера, если вкратце, требуется управлять проектом, что включает множество задач, среди которых взаимодействие с клиентами, коллегами, сторонними подрядчиками и т.д. Словом все, что нужно для успешной реализации проекта. Сюда также входит планирование, принятие стратегических решений по работе над продуктом и т.д.
С чего начать изучение:
Для успешного развития в качестве проджект-менеджера не помешает изучить наиболее популярные инструменты в этой сфере. Основными можно назвать: GanttPRO (сервис для планирования и управления проектами с помощью диаграммы Ганта), Jira Software (популярная система для планирования и отслеживания agile-проектов), LiquidPlanner (инструмент для проджект-менеджмента в реальном времени), Basecamp (еще одна система управления проектами и совместной работы) и т.д.
-
DevOps.
Ну и, наконец, четвертым столпом фуллстек-девелопмента является знание DevOps. Обязанности DevOps-а могут сильно отличаться в зависимости от проекта, но How правило к ним относится все, что касается запуска программного codeа в продакшн, включая, например, настройку serverов, на которых будет функционировать приложение, и обеспечение слаженной работы специалистов команды вместе с техническими решениями, которые они используют.
С чего начать изучение:
Сфера DevOps также включает в себя довольно много всяких инструментов. Вот те, с изучения которых имеет смысл начинать: инструменты управления исходным codeом (GitLab, GitHub, Bitbucket), CI/CD-инструменты (Ansible, Jenkins, Chef), тулзы для коммуникации и коллаборации (Slack и Microsoft Teams), а также сервисы облачных вычислений и хранения данных (AWS, Azure и GCP).
Помимо вышеперечисленных четырех базовых составляющих “полного стека,” он не был бы действительно полным, если бы не включал в себя также мобильную разработку, базы данных и QA автоматизацию — истинный Full Stack разработчик разбирается и в этих технологиях тоже.
Зарплаты Full Stack разработчиков
至于全栈开发人员的工资,他们的平均工资并不比从事更具体开发专业的同事高多少。根据PayScale 的数据,在美国,全栈开发人员的平均年薪接近 7.5 万美元。同时,最低工资(全栈职位的程序员)约为每年 4.6 万美元,最高约为每年 11.4 万美元。至于前苏联国家,根据Work.ua资源,在乌克兰,全栈开发人员的平均工资为每月 3.5 万格里夫纳(约 1300 美元),而在基辅则为 4.5 万格里夫纳(约 1650 美元)。根据这些数据,在俄罗斯,全栈开发人员的平均工资在 4 万卢布(530 美元)到 15 万卢布之间。(2000 美元)。如果我们谈论整个世界的平均水平,那么从事我们今天考虑的职位的专家每年的收入约为 45,000 美元。在欧洲,全栈开发人员在丹麦和瑞典的薪水最高。如何成为一名全栈开发人员?
现在,让我们简要回顾一下您需要掌握的技能、能力和技术,以便充满信心地称自己为全栈开发人员,而不带有任何讽刺意味。-
编程语言。
全栈开发人员必须精通多种编程语言。首先当然主要有:Java、PHP、C#、Python、Ruby、Perl等。简而言之,就是最有可能编写产品主要业务流程的那些最流行的语言。当然,要完美地学习所有此类语言将是极其困难的。但你至少需要掌握在开发中发挥重要作用的语言的语法,并且还需要充分了解如何基于一种或多种语言构建、设计、实现和测试项目。
-
框架和代码库。
好吧,在大多数情况下,对主要编程语言的良好了解包括使用流行框架和库的能力,例如 Java Spring、Hibernate、Python Django、PHP thinkphp、MyBatis 等。
-
前端技术。
前端技术知识对于全栈开发人员来说也非常重要,并且随着时间的推移而不断增加。如今,当产品的便利性和整体“包装”变得与功能同等重要时,项目整体成功的一个重要部分就落在了前端的肩上。对于Full stack,你至少需要了解基本的前端技术,即HTML5、CSS3和JavaScript,并掌握主要的前端框架和库,即JQuery、LESS、SASS、AngularJS以及前面提到的反应。
-
数据库。
数据库是“全栈”的另一个重要组成部分,因为任何产品或服务都需要在某个地方存储信息。因此,全栈开发人员应该至少了解几个最流行的数据库系统以及如何使用它们。当今最流行的数据库系统是 MySQL、MongoDB、Redis、Oracle、SQLServer 等。其中,MongoDB作为各种互联网项目最受欢迎的数据库,MySQL和Oracle作为企业产品领域的后端最受欢迎,Redis则常用于缓存和提高系统性能。
-
管理和软技能。
但要在这个领域取得好的成绩,仅仅学习一些技术或编程语言是不够的。成功的项目管理涉及许多组成部分,包括时间管理、规划、良好的沟通技巧等等。而这一切主要是通过实践获得的。
-
设计基础知识。
最后,设计知识,即 UX/UI 设计,虽然处于基础水平,但也在全栈开发人员的能力范围内。
顺便说一句,这是一个精心设计的路线图,旨在以图形方式显示上述所有技术。
GO TO FULL VERSION