4 choses que j'ai apprises en devenant développeur principal au cours de ma première année en tant que programmeur professionnel autodidacte

Cet essai s'adresse à tous ceux qui ont décidé de sauter dans le train des développeurs un peu plus tard que la plupart de leurs pairs. Peut-être que vous venez de créer votre premier fichier `index.html` et que vous êtes intéressé par le développement professionnel d'un logiciel. Peut-être que vous venez de décrocher votre premier emploi dans le développement Web. Peut-être avez-vous même quelques années d'expérience et envisagez maintenant de passer à un poste plus élevé dans votre entreprise. Ici, je partage humblement certaines choses que j'ai apprises en devenant développeur principal au cours de ma première année en tant que programmeur autodidacte sans aucune formation formelle en informatique

Photo d'Alex Kotliarskyi sur Unsplash

Entrer dans le monde du développement logiciel professionnel sans formation dans un domaine pertinent n'est pas exactement facile. J'ai eu ma première expérience avec le développement d'une application web d'entreprise dans mon rôle d'étudiant travaillant dans un énorme cabinet d'avocats pour lequel je travaillais pendant mes études en anthropologie sociale. À un moment donné, on m'a demandé de superviser les résultats d'un nouveau système d'intégration que l'équipe interne «IT» développait pour de nouveaux clients. En échange avec un responsable QA, j'ai testé la nouvelle application pendant des mois avant qu'elle ne soit prête à être publiée.

Voir ce qui était possible dans le cadre d'une application Web «moderne» () m'a fait réaliser à quel point j'aimerais pouvoir faire bouger les choses par moi-même à l'écran. J'ai donc commencé à rechercher des cours en ligne sur le développement Web, à plonger dans des didacticiels Javascript, à comprendre comment faire bouger les boutons avec jQuery et comment créer un blog simple avec Ruby (on Rails) et mon framework SPA de choix, AngularJs.

J'ai eu de la chance et j'ai eu la chance de rejoindre une startup locale en tant qu'étudiant. La société cherchait simplement à embaucher de nouveaux développeurs front-end pour poursuivre le développement de leurs applications Web. Ils m'ont donné la chance de faire mes preuves et c'est ce que j'ai fait. Même sans beaucoup d'expérience de travail et de vastes compétences techniques, j'ai été rapidement embauché en tant que développeur front-end à temps plein. Finalement, de plus en plus de développeurs et de stagiaires ont rejoint l'équipe et ont dû être organisés sur nos trois produits principaux. Le CTO, qui à ce stade était devenu un bon ami à moi, m'a demandé si je me sentirais à l'aise de diriger l'équipe pour l'un de ces produits en tant que chef d'équipe disciplinaire et j'ai (en quelque sorte) accepté l'offre en toute confiance.

À ce stade, j'avais une bonne idée du fonctionnement de nos applications frontales, mais j'étais loin de me qualifier de développeur Web «expérimenté». J'ai parlé au CTO et il était convaincu qu'il était tout aussi important de pouvoir parler aux gens et de comprendre ce qui les motive que de connaître le fonctionnement interne d'un produit d'une entreprise et d'un côté technique.

Après presque deux ans dans ce rôle, j'ai dressé une liste de choses que j'ai apprises dans mon rôle de chef d'équipe tout en visant continuellement à améliorer mes compétences en tant que développeur Web professionnel. J'espère que cela vous aide ou vous motive à prendre une décision sur la prochaine étape!

# 1 Le développement logiciel ne consiste pas uniquement à écrire du code éloquent

Depuis que j'ai rejoint l'équipe, j'avais ajouté plus de 150 000 lignes de code aux produits que l'on m'avait demandé de développer et de maintenir. C'est du moins ce que Github m'a dit

Cependant, entre les sessions de codage, j'ai appris qu'être une bonne interface avec les parties prenantes et les utilisateurs était tout aussi important. Sans comprendre le besoin d'une fonctionnalité, je ne pourrais pas expliquer pleinement une tâche de développement à mes collègues. Les parties prenantes ne sont pas toujours parfaites et il arrive rarement qu'elles vous contactent avec une histoire d'utilisateur entièrement préparée. Il est donc important que vous, en tant qu'interface, puissiez comprendre tout ce dont ils ont besoin de votre produit et le traduire en un élément exploitable sur les listes de tâches de vos développeurs.

À moins que votre entreprise n'emploie des concepteurs ou des chefs de produit dédiés, vous devrez peut-être permettre aux développeurs de conceptualiser les fonctionnalités à un niveau non technique. Dans tous les cas, vous et vos développeurs devrez trouver un moyen de définir des modèles d'objets et de choisir l'architecture appropriée pour votre système, mais à moins que vous ne puissiez créer une interface fonctionnelle et accessible, vos utilisateurs n'en tireront aucun profit.

En lisant sur des sujets UI / UX et en apprenant à voir votre produit avec les yeux de différents types d'utilisateurs, vous pouvez en tant que responsable de préparer des demandes de fonctionnalités d'une manière qui générera de la valeur commerciale à la fin.

# 2 Il n'est pas nécessaire d'être le meilleur programmeur de l'équipe pour être un bon leader

Lorsque j'ai rejoint l'entreprise, je construisais des applications Web en privé depuis moins d'un an. J'étais définitivement au niveau junior et, en plus, j'étais le seul membre de l'équipe à ne pas être diplômé en informatique. En fait, j'avais terminé un baccalauréat en «anthropologie sociale» quelques années plus tôt et j'allais justement terminer ma thèse pour ma maîtrise dans le même domaine. Pas exactement une formation technique au sens traditionnel. Mon équipe était composée d'un stagiaire à temps plein qui venait de terminer sa maîtrise en informatique et d'un jeune professionnel qui développait déjà des logiciels comme passion depuis de nombreuses années. Me nommer chef d'équipe était une décision risquée, mais cela s'est bien passé puisque j'ai apporté des compétences à ce poste qui s'est avéré nous aider à être très productifs en équipe

Être capable de se mettre à la place de quelqu'un est un talent essentiel si vous devez faire la traduction entre les parties prenantes et les développeurs. Cette compétence combinée à un certain sens de l'empathie vous permettra de diriger une équipe de manière très productive. Identifier les forces d'un collègue et comprendre ses faiblesses vous permet de les compléter de manière efficace. Par exemple, si vous sentez que quelqu'un se sent mal à l'aise avec la quantité de responsabilité qui lui a été confiée dans un certain projet, vous pouvez le guider et le laisser grandir pour devenir plus indépendant. Comprendre ce qui excite et motive vos collègues et utilisateurs est tout aussi important que de comprendre ce qui les frustre.

Être un leader ne signifie plus que personne ne peut plus vous apprendre…

Je me souviens avoir parlé à un développeur nouvellement embauché qui me demandait des conseils sur la façon de résoudre un problème dans le backend. À ce moment-là, je ne travaillais que sur les interfaces de nos applications et je ne savais pas trop comment aider. Elle était toujours convaincue que puisque j'étais un chef de file, je saurais certainement une meilleure façon qu'elle de résoudre le problème. Au lieu de surfer sur cette vague, j'ai admis que j'étais probablement moins qualifiée qu'elle, mais que j'aimerais l'aider à comprendre le problème tout en m'expliquant exactement ce qu'elle essayait de faire. À la fin, nous l'avons compris ensemble et tous les deux ont appris quelque chose en cours de route.

# 3 Les startups sont un endroit incroyable pour grandir

Si vous commencez tout juste votre carrière dans le développement de logiciels, les startups sont un endroit incroyable pour commencer. Selon les catégories de produits, vous pourriez rejoindre une petite équipe de développeurs avec un très large éventail de compétences, motivé par la passion de résoudre des problèmes complexes et de créer des produits fantastiques.

Dans les petites équipes interconnectées, la culture d'entreprise peut avoir autant d'importance que la qualification. Si vous êtes déterminé à croître et à vous joindre aux efforts de croissance de l'entreprise, vous serez séduit par le talent qui vous entoure. Vous apprendrez beaucoup en discutant avec des personnes de différents départements, en échangeant des idées de projets de temps libre et en participant à des événements externes avec vos collègues. Les gens aiment partager leurs connaissances. Il pourrait simplement être de votre responsabilité de créer un espace dans lequel ils pourront le partager avec vous. Ce qui est important dans ce contexte, c'est que vous n'arrêtez pas de chercher des défis. Ne cessez pas de vous remettre en question et de défier les autres.

Tout en vous mettant au défi, vous pouvez vous fixer des objectifs tels que développer de petits projets pendant votre temps libre, utiliser un nouveau cadre ou le langage de programmation dont votre collègue vous a parlé tout en prenant une bière sur la terrasse.

Tout en défiant les autres, vous pouvez essayer de vous battre avec vos collègues et amis les plus «avisés». Dites-leur que seuls les «mauvais programmeurs commentent leur code car ils oublient ce qu'il fait». Une discussion sur les «tabulations contre les espaces» est également un régal pour votre pause déjeuner.

# 4 L'humilité est toujours payante

Dans de nombreux cheminements de carrière, les gens ont tendance à se cacher derrière un masque de «faux jusqu'à ce que vous le fassiez». Cela peut certainement être utile dans une situation dans laquelle vous essayez de vendre une idée, mais vous devez toujours être conscient de vos limites. Un bon ami à moi aime dire: «réel reconnaître réel». Si vous exploitez votre position pour prendre des décisions sans réserve, les personnes possédant une véritable qualification commenceront bientôt à le remarquer. D'un autre côté, si vous restez «réel» et abordez les conflits avec honnêteté et confiance dans les connaissances que vous possédez, vous serez certainement récompensé par vos pairs qualifiés. Admettre que vous ne comprenez pas quelque chose est une bonne chose et vous mènera très probablement vers une solution plus rapidement que de vous cacher derrière un rideau de termes techniques et de connaissances superficielles.

Si vous restez réel avec vous-même et utilisez l'honnêteté et la transparence comme un outil de leadership, vos pairs vous respecteront pour l'impact positif que vous avez sur votre équipe tout en vous permettant de devenir le poste qui vous a été attribué.

Cet essai a été inspiré par une conversation que j'ai eue avec un bon ami qui à l'époque envisageait où aller ensuite dans sa carrière de développeur. La beauté de l'art du développement logiciel professionnel est qu'il vous permet d'aller dans différentes directions; de devenir un expert sur la technologie sous-jacente et d'exceller en tant que programmeur à se lancer dans la direction et la supervision des processus environnants de création de produits incroyables pour le monde entier.

Le ciel est la limite!