CodeGym /Cours /Frontend SELF FR /Le Chemin du Programmeur

Le Chemin du Programmeur

Frontend SELF FR
Niveau 47 , Leçon 4
Disponible

6.1 Échelle de Carrière

Échelle de Carrière

Les programmeurs eux-mêmes ont des grades en fonction de leur qualification. Autrefois, on utilisait des termes comme « codeur », « programmeur » et « hacker », mais aujourd'hui tout le monde est passé aux termes de l'IT américaine.

Pour un développeur, il y a 6 principaux grades :

  1. Intern Software Engineer
  2. Junior Software Engineer
  3. Middle Software Engineer
  4. Senior Software Engineer
  5. Tech Lead
  6. Principal Software Engineer

D'un pays à l'autre, certains paramètres peuvent varier, mais l'essentiel est à peu près le même :

Intern Software Engineer — ce sont des stagiaires. Ils sont en train d'apprendre la programmation, n'ont ni expérience commerciale, ni expérience de participation à de grands projets. Ils travaillent généralement sous la supervision de collègues plus expérimentés. Leur tâche principale au travail est d'étudier la base de code et les bases du développement logiciel, en effectuant des tâches simples de codage et en participant aux tests.

Junior Software Engineer — ce sont déjà des programmeurs, mais sans expérience commerciale sérieuse ou avec une expérience de moins d'un an. Ils travaillent sous la direction de développeurs plus expérimentés, réalisant des parties de projets et participant aux cycles de code review. Cette étape de carrière se concentre sur l'approfondissement des compétences techniques et la compréhension des tâches du projet.

Middle Software Engineer (ou simplement Software Engineer) : ils ont plus d'autonomie dans la prise de décisions techniques, sont responsables de parties significatives du projet, commencent à encadrer des collègues moins expérimentés et participent plus activement aux discussions architecturales. En général, ils ont 2 à 5 ans d'expérience pratique.

Senior Software Engineer : ils sont responsables de la conception et de la mise en œuvre de systèmes complexes, fournissent du mentorat et du leadership au sein de l'équipe, participent à la planification stratégique des projets et représentent souvent l'équipe dans les échanges avec les clients et d'autres parties prenantes. En général, ils ont 5 à 10 ans d'expérience.

TechLead : en tant que leader technique, ils sont responsables du résultat technique final du projet, dirigent le développement, résolvent les problèmes les plus complexes, veillent au respect des normes techniques et coordonnent les activités des développeurs.

Principal Software Engineer : ils travaillent au plus haut niveau technique, participant souvent à la définition de la stratégie technique de l'entreprise, au développement de solutions innovantes et à l'établissement de normes techniques, ils sont le principal mentor pour les leaders techniques et un expert clé dans les questions techniques complexes.

C'est intéressant

Les grandes entreprises peuvent avoir des rôles et sous-rôles supplémentaires. Par exemple, chez Google, il y a des rôles comme :

  • Staff Software Engineer (L6) : a un impact significatif sur la politique technique de son département.
  • Senior Staff Software Engineer (L7) : travaille sur des projets vastes et complexes, détermine la direction stratégique du développement technologique dans l'entreprise.

6.2 Produits Lego

Il y a très longtemps (en 1975), Niklaus Wirth, le créateur du langage Pascal, a écrit un livre intitulé « Algorithmes + Structures de données = Programmes ». Depuis, beaucoup de choses ont changé.

Un produit logiciel moderne n'est pas du tout ce qu'il était il y a 10 ans et certainement pas ce qu'il était il y a 20 ans. Quant à 1975, il n'y a pas à en parler : ça fait 50 ans que ça s'est passé.

Le programmeur moderne n'écrit plus les programmes à la main. Il les assemble plutôt à partir de pièces prêtes à l'emploi (bibliothèques) et écrit du code qui aide ces pièces à interagir.

Les produits logiciels modernes peuvent être composés de dizaines et de centaines de programmes, certains s'exécutant sur l'ordinateur de l'utilisateur, sur ses appareils mobiles, et la plupart sur des serveurs dans des data centers.

Nombre de ces programmes, comme un serveur web ou une base de données, sont déjà écrits. Il suffit de les configurer correctement pour qu'ils fonctionnent comme il faut. Bien que, avec le temps, le processus de configuration puisse devenir si complexe que cela se transforme en fait en développement. 🤦‍♂️

Les programmeurs se battent constamment contre eux-mêmes. Au lieu de réécrire un code similaire dans différents programmes, ils écrivent des bibliothèques qui peuvent être configurées pour répondre à leurs besoins et les branchent simplement là où c'est nécessaire.

Au cours des 20 dernières années, les programmeurs ont écrit beaucoup de bibliothèques, de frameworks et de dépôts ouverts. Il y en a vraiment des millions. Et maintenant, écrire tout le code à partir de zéro est considéré comme de mauvais goût. Au lieu de cela, il faut assembler un programme à partir de solutions de qualité éprouvée - bibliothèques, frameworks, packages et modules.

Mais même cette approche est déjà dépassée. La tendance des 10 dernières années, c'est le passage au cloud — de grands data centers qui fournissent à vos programmes tout ce dont ils ont besoin. Vous voulez une base de données ? On en a des centaines au choix. Vous voulez un serveur web rare unique — on les a. Tout caprice pour votre argent.

6.3 « Je suis un ingénieur » (c) Elon Musk

Fusée en orbite

Plus besoin d'écrire des choses complexes et ennuyeuses. Maintenant, si vous avez besoin d'une fonctionnalité cool et complexe, il y a toujours une bibliothèque pour ça. Vous avez juste besoin de : a) savoir qu'elle existe, b) trouver la bonne (il peut y avoir des dizaines d'alternatives de qualité différente), c) comprendre comment l'intégrer dans votre projet.

Le travail est devenu plus intéressant. Maintenant, vous pouvez ajouter de nouvelles fonctionnalités au produit 10 fois plus vite. Il y a 30 ans, si vous aviez besoin d'un serveur web, vous deviez l'écrire. Il y a 20 ans — l'acheter, l'installer et le configurer. Et maintenant, il suffit d'aller dans le panneau d'administration du "cloud" et de l'activer.

C'est d'ailleurs l'une des raisons de la popularité du Frontend. Un backend complexe peut maintenant être écrit en JavaScript avec Node.js, ou simplement "activer" divers services dans les data centers cloud. Le Frontend n'est plus fortement limité par les restrictions du backend et s'est pleinement épanoui. Et à en juger par sa popularité, il fait bien son boulot.

Et la profession de développeur Frontend s'est transformée en Frontend Fullstack Software Engineer. Un développeur Frontend moderne doit comprendre comment fonctionne une base de données pour travailler efficacement avec elle. Comprendre HTML & JavaScript, NginX pour configurer le fonctionnement du frontend avec le backend. Et Docker est indispensable — c'est déjà un standard de l'industrie.

Le développement moderne ne ressemble guère à ce qu'il était il y a encore 20 ans. Un programmeur moderne écrit du code pas plus de 50% de son temps. Le reste du temps, il lit des docs, étudie de nouvelles technologies et passe en réunions. Les programmeurs solitaires appartiennent au passé.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION