JavaRush /Blog Java /Random-FR /Le Suédois et le Faucheur. Qui est un développeur Full St...

Le Suédois et le Faucheur. Qui est un développeur Full Stack et comment le devenir ?

Publié dans le groupe Random-FR
Le Suédois et le Faucheur.  Qui est un développeur Full Stack et comment le devenir ?  - 1Il existe une position dans le domaine du développement informatique qui est mystérieuse et obscure, mais en même temps séduisante et attrayante. C’est, comme vous l’avez probablement déjà compris, la position d’un développeur Full Stack. Il a gagné cette réputation controversée pour un certain nombre de raisons, qui seront discutées ci-dessous, mais en bref, c'est parce que les développeurs et autres spécialistes techniques ne parviennent pas à un consensus sur ce que devrait être un véritable développeur Full Stack. Le Suédois et le Faucheur.  Qui est un développeur Full Stack et comment le devenir ?  - 2

"Un développeur full stack est un assistant technique qui connaît tous les langages et technologies de programmation, et qui chante et danse également à merveille."

Ian Peters-Campbell est
un développeur expérimenté et fondateur de la société de logiciels Stickbuilt.

Qui est un développeur Full Stack ?

Alors, qu’est-ce qu’un développeur Full Stack au sens traditionnel du terme ? La définition la plus courante nous dit qu'il s'agit d'un spécialiste chargé de développer toutes les parties des fonctionnalités du système, y compris à la fois le côté utilisateur du produit (frontend) et le code interne exécuté sur les serveurs distribués (backend). En règle générale, si l'expression « full stack » apparaît dans une annonce pour un poste vacant, cela signifie que le développeur doit avoir à la fois des connaissances et des compétences en développement back-end et front-end. Cependant, de nombreuses entreprises vont plus loin et par « développeur Full Stack », elles entendent un soldat universel qui est non seulement capable de développer tous les composants d'un produit logiciel, mais peut également prendre en charge tout le reste, de la gestion du produit à la mise en place du système d'exploitation. système sur les serveurs et réparation d'une imprimante de bureau. En fait, dans la plupart des cas, un développeur full stack doit avoir un niveau de connaissance décent de l’ensemble des technologies nécessaires à la réussite du projet. Ainsi, dans ce cas, « pile » désigne un ensemble de modules et de composants logiciels combinés pour obtenir la fonctionnalité requise. Le Suédois et le Faucheur.  Qui est un développeur Full Stack et comment le devenir ?  - 3

Pourquoi ce sujet est-il si controversé ?

Le débat sur ce que devrait réellement être un développeur Full Stack et sur la question de savoir si une telle bête existe en quantité suffisante pour séparer ces spécialistes en un groupe distinct dure depuis un certain temps. Comme le notent des programmeurs expérimentés, il a repris avec une vigueur renouvelée après que des représentants de Facebook, à l'aube de sa création dans les années 2000, lors d'un discours lors d'une des conférences spécialisées pour les développeurs, ont déclaré qu'ils embauchaient uniquement et exclusivement des développeurs Full Stack. « Si les définitions traditionnelles d’un développeur Full Stack vous laissent perplexes, alors tout est correct. En effet, un développeur Full Stack est quelque chose d’éphémère. Il n’existe aucun modèle scientifique décrivant ce qu’est un « full stack ». Il n'existe aucun moyen clair de mesurer le niveau d'un développeur full stack par rapport à d'autres développeurs similaires. Le seul consensus concernant le Full Stack est que personne ne s'accorde sur une définition unique de l'essence de ce phénomène. C’est pourquoi tout ce que vous lisez sur ce sujet n’est rien d’autre qu’une opinion subjective », a déclaré Ryland Goldstein, développeur et architecte de logiciels expérimenté. Le Suédois et le Faucheur.  Qui est un développeur Full Stack et comment le devenir ?  - 4

Quatre piliers du développement Full Stack

Cependant, même si de nombreux experts affirment qu'un développeur Full Stack est un concept controversé, les postes vacants n'en sont pas moins nombreux, bien au contraire. Examinons donc les connaissances dans quels domaines, en règle générale, vous devez posséder pour postuler à ce type de poste.
  1. Développement front-end.

    En règle générale, le front-end fait référence aux technologies de développement Web et aux langages de programmation tels que HTML, CSS et JavaScript. Il inclut également des frameworks JavaScript tels que React, et toutes les autres technologies liées au côté « client » du produit.

    Par où commencer à étudier :

    Vous pouvez commencer avec les frameworks Create React App ou Gatsby , avec lesquels il est assez simple de créer une application React à part entière. C'est une bonne idée d'apprendre les préprocesseurs CSS, les outils CSS de base comme CSS-in-JS et les outils comme Sass .

  2. Développement back-end.

    Le backend comprend tout le code exécuté sur les serveurs, y compris les applications et les API qui font fonctionner le site. Les principaux langages de programmation pour le backend sont Java, Python, Ruby et autres. En dehors de cela, le développement backend inclut également la gestion de bases de données, qui nécessite une connaissance de SQL.

    Par où commencer à étudier :

    Tout d’abord, il est recommandé de commencer par approfondir ses connaissances en JavaScript, sorte de pont entre le frontend et le backend dans bien des cas. En particulier, c'est une bonne idée d'apprendre NodeJS , une plateforme logicielle basée sur le moteur V8 qui transforme JavaScript d'un langage hautement spécialisé en un langage généraliste.

    Aussi, afin d'avoir les qualifications les plus complètes en backend, il est recommandé, en plus de Java, de maîtriser progressivement les langages de programmation tels que Python (principalement), PHP et Ruby.

  3. Gestion de projet.

    En bref, un chef de projet est tenu de gérer un projet qui implique de nombreuses tâches, notamment l'interaction avec les clients, les collègues, les sous-traitants, etc. Bref, tout ce dont vous avez besoin pour réussir la mise en œuvre du projet. Cela inclut également la planification, la prise de décisions stratégiques concernant le travail sur le produit, etc.

    Par où commencer à étudier :

    Pour réussir à évoluer en tant que chef de projet, cela ne fait pas de mal d'étudier les outils les plus populaires dans ce domaine. Les principaux peuvent être appelés : GanttPRO (un service de planification et de gestion de projets à l'aide d'un diagramme de Gantt), Jira Software (un système populaire de planification et de suivi de projets agiles), LiquidPlanner (un outil de gestion de projet en temps réel), Basecamp ( un autre système de gestion (projets et collaboration), etc.

  4. DevOps.

    Et enfin, le quatrième pilier du développement full stack est la connaissance du DevOps. Les responsabilités DevOps peuvent varier considérablement selon le projet, mais en règle générale, elles incluent tout ce qui concerne l'exécution du code logiciel en production, y compris, par exemple, la configuration des serveurs sur lesquels l'application sera exécutée et la garantie que les spécialistes de l'équipe travaillent bien avec techniques les solutions qu'ils utilisent.

    Par où commencer à étudier :

    Le domaine DevOps comprend également de nombreux outils différents. Voici ceux qui ont du sens pour commencer : les outils de gestion de code source ( GitLab , GitHub , Bitbucket ), les outils CI/CD (Ansible, Jenkins, Chef), les outils de communication et de collaboration (Slack et Microsoft Teams), ainsi que services de cloud computing et de stockage de données (AWS, Azure et GCP).

    Le Suédois et le Faucheur.  Qui est un développeur Full Stack et comment le devenir ?  - 5

    En plus des quatre composants de base ci-dessus d'une « full stack », elle ne serait pas vraiment complète si elle n'incluait pas également le développement mobile, les bases de données et l'automatisation de l'assurance qualité : un véritable développeur Full Stack comprend également ces technologies.

Salaires de Développeur Full Stack

Quant aux salaires des développeurs full stack, ils ne sont en moyenne pas beaucoup plus élevés que leurs collègues ayant une spécialisation plus spécifique en développement. Aux États-Unis, le salaire moyen des développeurs full-stack s'élève à près de 75 000 dollars par an, selon PayScale . Dans le même temps, le salaire minimum (pour les programmeurs occupant des postes full-stack) est d'environ 46 000 dollars par an et le maximum est d'environ 114 000 dollars par an. En ce qui concerne les pays de l'ex-URSS, en Ukraine, selon la ressource Work.ua , le salaire moyen des développeurs full stack est de 35 000 hryvnia (environ 1 300 dollars) par mois, tandis qu'à Kiev, il est de 45 000 (environ 1 650 dollars). En Russie, selon ces données, les salaires des développeurs full-stack varient en moyenne de 40 000 roubles (530 dollars) à 150 000 roubles. (2000$). Si nous parlons de la moyenne mondiale, les spécialistes occupant le poste que nous envisageons aujourd'hui gagnent environ 45 000 dollars par an. Et en Europe, les développeurs full stack reçoivent les salaires les plus élevés au Danemark et en Suède. Le Suédois et le Faucheur.  Qui est un développeur Full Stack et comment le devenir ?  - 6

Comment devenir développeur Full Stack ?

Passons maintenant brièvement en revue les compétences, capacités et technologies que vous devez maîtriser pour vous qualifier de développeur full stack en toute confiance et sans la moindre ironie.
  1. Langages de programmation.

    Un développeur full stack doit maîtriser plusieurs langages de programmation. Tout d’abord bien sûr, il y a les principaux : Java, PHP, C#, Python, Ruby, Perl, etc. En un mot, les langages les plus populaires dans lesquels les principaux processus métier du produit seront très probablement écrits. Bien sûr, il sera extrêmement difficile d'apprendre parfaitement un certain nombre de ces langues. Mais il faut au moins maîtriser la grammaire du langage qui jouera un rôle important dans le développement, et aussi avoir une bonne connaissance de la façon de structurer, concevoir, mettre en œuvre et tester un projet basé sur un ou plusieurs langages.

  2. Frameworks et bibliothèques de codes.

    Eh bien, une bonne connaissance des principaux langages de programmation inclut dans la plupart des cas la capacité d'utiliser des frameworks et des bibliothèques populaires, tels que Java Spring, Hibernate, Python Django, PHP thinkphp, MyBatis et autres.

  3. Technologies frontales.

    Важность знания фронтенд-технологий для фуллстек-разработчиков также велика, и со временем возрастает. Сегодня, когда удобство и общая “обертка” продукта становятся не менее значимыми, чем функционал, значительная часть общего успеха проекта ложится на плечи фронтненда. Для Full stack надо How минимум знать базовые фронтенд-технологии, то есть HTML5, CSS3 и JavaScript, а также владеть основными фронтенд-фреймворками и библиотеками, а именно JQuery, LESS, SASS, AngularJS и ранее упомянутым React.

  4. Базы данных.

    Базы данных являются еще одной важной составляющей “полного стека,” ведь любому продукту or сервису нужно хранить где-то информацию. Соответственно, фуллстек-девелоперу положено знать хотя бы парочку наиболее популярных систем баз данных и то, How с ними работать. Наиболее популярные на сегодняшний день системы баз данных — это MySQL, MongoDB, Redis, Oracle, SQLServer и другие. Среди них, MongoDB наиболее популярна в качестве базы данных для различных интернет-проектов, MySQL и Oracle — для бэкенда в сфере корпоративных продуктов, а Redis часто используется для кэширования и повышения производительности системы.

  5. Менеджмент и soft skills.

    А вот чтобы добиться хороших результатов в данной сфере, просто выучить Howую-нибудь технологию or язык программирования будет недостаточно. Успешное управление проектами включает в себя множество составляющих, среди которых тайм-менеджмент, планирование, хорошие коммуникационные навыки и многое другое. А приобретается все это преимущественно через практику.

  6. Базовые знания дизайна.

    И наконец, знания дизайна, а именно UX/UI-дизайн, пусть и на базовом уровне, также входят в компетенцию full stack девелопера.

    Кстати, вот неплохо составленный роадмап, призванный графически отобразить все разнообразие вышеперечисленных технологий.

Выводы и перспективы

Comme vous pouvez le conclure de tout ce qui précède, pour devenir un développeur full-stack à part entière et peut-être même standard, vous devrez consacrer beaucoup de temps et d'efforts. Cependant, une pratique constante et régulière permet de maîtriser dans la durée des disciplines bien plus complexes. L'essentiel est de comprendre où aller, de travailler sur les compétences clés et de ne pas arrêter l'auto-apprentissage. Mais la question de savoir si vous devez faire de tels efforts pour devenir un développeur Full Stack performant est une autre question. Si nous parlons des avantages et des inconvénients d'un tel travail, les inconvénients sont évidents - vous devez beaucoup étudier et comprendre beaucoup de choses différentes. Les avantages sont plus compliqués. Un développeur full stack a généralement la possibilité d’avoir un plus grand impact sur le projet dans son ensemble que les programmeurs hautement spécialisés. Pour la majorité, cela augmente la satisfaction au travail et, là encore, le ChSV fleurit et sent bon. Alors que comprendre l’ensemble des technologies et des compétences nécessaires à un développement réussi ouvre parfois des possibilités véritablement illimitées. On pense que les développeurs full stack deviennent le plus souvent des entrepreneurs informatiques à succès. Et en général, une personne possédant un tel ensemble de compétences ne se retrouvera certainement pas sans travail , quelles que soient les crises.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION