Fury Road : le parcours du développeur de facturation

Le responsable d’une société de développement de facturation dispose de deux manières de constituer une équipe. La première consiste à recruter des « seniors » prêts à l'emploi et à créer en permanence de telles conditions de travail afin qu'ils utilisent au maximum leurs compétences et leur expérience, se développent et en même temps ne se battent pas. La seconde consiste à créer une équipe composée d'un mélange de nouveaux arrivants, de cadres et de pros, afin qu'ils communiquent, s'influencent mutuellement, apprennent et évoluent au sein de l'entreprise. Je suis contre le cercle vicieux du « pas d'expérience - pas de travail - pas d'expérience » et je ne vois aucun problème à embaucher un développeur débutant. Forward Telecom propose depuis longtemps un programme de stages, qui est devenu un tremplin de carrière pour de nombreux employés actuels.

Je vais maintenant vous expliquer comment je vois le parcours de développement d'un développeur de facturation et dans quel ordre vous devez maîtriser les compétences professionnelles.

1. Apprenez un langage de programmation

Pour commencer, n’importe qui. La priorité est Java, Python et JavaScript, mais Ruby, Go, C, C++ conviennent pour acquérir des connaissances de base. Comment enseigner ? Suivez des cours payants et gratuits ; je peux recommander une formation de Golang. Si votre niveau d’anglais le permet, regarder des vidéos étrangères est une bonne compétence supplémentaire.

Fury Road : le parcours du développeur de facturation

2. Comprendre les concepts du système d'exploitation

Les systèmes d'exploitation reposent sur sept composants qu'il faut connaître et pouvoir expliquer le principe de fonctionnement :

  • La gestion des processus;
  • Threads et code multithread ;
  • Socket (interface logicielle);
  • Répartition des E/S ;
  • Virtualisation ;
  • Stockage;
  • Systèmes de fichiers.

Je recommande de suivre un cours de base sur l'administration Linux. Les deuxièmes systèmes d'exploitation en ligne sont Windows et Unix.

3. Habituez-vous au terminal

Par analogie avec la phobie de la feuille blanche, il existe la phobie de l’écran noir et vierge avec un curseur clignotant. Vous devrez le surmonter pour apprendre à écrire de bonnes commandes sur la ligne de commande.
Doit savoir:

  • Coquilles Bash et KornShell ;
  • Commandes find, grep, awk, sed, lsof ;
  • Commandes réseau nslookup et netstat.

Fury Road : le parcours du développeur de facturation

4. Réseau et sécurité

La facturation est étroitement liée aux exigences du réseau et de la protection des données. Vous ne pouvez pas écrire de services en ligne sans comprendre comment fonctionne le réseau, vous devez donc apprendre les concepts et protocoles de base : DNS, modèle OSI, HTTP, HTTPS, FTP, SSL, TLS. Ensuite, lorsque vous rencontrerez une erreur de connexion refusée, vous saurez quoi faire.

5. Serveurs

Après avoir étudié les principes de transmission des informations sur le réseau, vous pouvez commencer les bases du fonctionnement du serveur. Commencez par les serveurs Web : IIS, Apache, Nginx, Caddy et Tomcat.

Plus bas dans la liste:

  • Proxy inverse ;
  • Proxy anonyme;
  • Mise en cache ;
  • L'équilibrage de charge;
  • Pare-feu.

6. Apprenez l'infrastructure en tant que code

Je crois que cette étape est l'une des plus importantes. Vous devrez comprendre trois grands sujets :

  • Conteneurs : Docker et Kubernetes
  • Outils de gestion de configuration : Ansible, Chef, Salt et Puppet
  • Sauvegarde : Terraform, nuages.

7. Apprenez le CI/CD

Une autre compétence utile pour un développeur de facturation est d'être capable de mettre en place un pipeline pour une intégration et une livraison continues. Dans le domaine CI/CD, il existe des outils comme Jenkins, TeamCity, Drone, Circle CI et autres. Spoiler : apprendre le Jenkins largement utilisé suffira dans un premier temps.

8. Contrôle des logiciels et des infrastructures

L’objectif principal est de comprendre les bases de la surveillance des applications. Les outils dans ce domaine sont divisés en trois groupes :

  • Surveillance des infrastructures : Nagios, Icinga, Datadog, Zabbix, Monit.
  • Surveillance des performances des applications : AppDynanic, New Relic.
  • LMS : ELK Stack, Graylog, Splunk, Papertrail.

9. Services cloud

Dans un avenir proche, chaque application ou logiciel aura son homologue cloud. Tôt ou tard, les développeurs découvrent le cloud, alors renseignez-vous sur les fournisseurs de cloud populaires (AWS, Google Cloud et Azure) et sur les bases de la technologie.

10. Travailler avec la base de données

Tous les projets en cours utilisent des bases de données, et l'expérience avec les SGBD et SQL facilitera le démarrage. Apprenez à écrire des requêtes SQL, à utiliser Explication et à découvrir comment fonctionne l'index. Le plus simple est de suivre un cours. Vous pouvez également mettre en pratique vos compétences en documentation Postgres et jouer avec la réplication.

11. Améliorez vos soft skills

Un point étonnamment hors du commun, mais non moins important. Pour commencer, soyez patient. On s'habitue vite à des situations comme « répare ton fer, tu es programmeur », mais il faut être mentalement préparé aux délais de lancement de nouveaux projets. Si vous avez entre zéro et un an en programmation et que vous êtes considéré comme un junior, préparez-vous aux critiques et apprenez à les accepter, la révision du code par un mentor est souvent un processus douloureux. Mais en même temps, une compétence obligatoire est la capacité à défendre son point de vue et à argumenter de manière constructive ; parfois la vérité naît dans une dispute. Les développeurs n'arrêtent jamais d'apprendre, il n'y a pratiquement pas de plafond dans le métier, donc la capacité d'apprentissage et le DÉSIR d'apprendre de nouvelles choses sont la base de votre développement.

Fury Road : le parcours du développeur de facturation

On me demande souvent quand un débutant atteint le niveau intermédiaire, et quand il peut fièrement être qualifié de « senior ». Je crois que le moment du passage d'un niveau à l'autre n'est pas déterminé par le nombre d'années travaillées, même si les compétences pratiques constituent un critère clé. Ce sont précisément les soft skills qui déterminent souvent la vitesse de croissance d’un développeur : un débutant formé et travailleur peut écrire du code de haute qualité dans plusieurs langues et être capable de travailler en équipe en quelques mois seulement. Un développeur avec 10 ans d'expérience peut être incapable de résoudre des problèmes non standard, de gérer une équipe et d'avoir des compétences unilatérales.

C'est ainsi que je vois le parcours de développement d'un développeur de facturation, c'est ainsi que nous développons des spécialistes qualifiés dans notre équipe Forward Telecom. Il ne semble rien manquer, mais je suis toujours reconnaissant pour les ajouts utiles à ce sujet.

Source: habr.com

Ajouter un commentaire