Faire de la programmation, c’est apprendre à trouver les réponses à ses questions. Utiliser Google à bon escient vous fera gagner un temps précieux dans vos développements. Une commande qui peut être utile : pour effectuer une recherche sur un site en particulier, tapez « site:lesitequivousinteresse.com » suivi de vos mots-clés pour limiter la recherche à un seul domaine.
Une erreur souvent commise est d’écrire du code trop rapidement. Prenez le temps d’analyser le problème à résoudre avant de coder ne serait-ce qu’une seule ligne. Une bonne pratique consiste à écrire votre code sur une feuille de papier, cela permet de mieux réfléchir en amont et de ne pas vous lancer la fleur au clavier.
La veille consiste à se tenir au courant des innovations et meilleures pratiques dans un certain domaine. La vitesse à laquelle les technologies informatiques évoluent rend la chose indispensable en développement : nouveaux langages, frameworks et autres outils de développement, se tenir au courant des nouveautés peut grandement aider. Même si vous ne comprenez pas tout ou ne mettez pas directement en pratique ce que vous lisez, cela peut aider de simplement savoir que telle ou telle chose est possible, ou que des outils existent pour le jour où vous rencontrerez un certain problème.
Vous pouvez consulter notre article de blog et obtenir des conseils pour réaliser une bonne veille technologique.
Pour autant, il n’est pas nécessaire voire contre-productif de vouloir tout apprendre et tout savoir. La quantité d’information disponible croît de manière exponentielle, il vous faudrait plusieurs vies pour maîtriser l’ensemble du domaine infiniment vaste dans lequel vous évoluez. Heureusement, Internet est là, et d’autres personnes plus spécialisées peuvent vous aider à résoudre un problème, ne vous en privez pas !
Autrement dit, versionnez votre code. Git est simplement le logiciel de versionning le plus utilisé à ce jour, et ce n’est pas pour rien : fonctionnelle, performante, sécurisée et flexible, la solution est idéale pour bon nombre d’équipes de développement.
Une fois que vous utilisez un logiciel de gestion de versions, faîtes-le de manière appropriée et ne partez pas dans tous les sens. Nettoyer vos dépôts et branches comme si vos beaux-parents devaient leur rendre visite. Vous n’en avez plus besoin, supprimez-les, ne les mettez pas dans un coin de placard.
Vous trouvez votre code « sale » ou incompréhensible ? Une nouvelle fonctionnalité doit être ajoutée, une nouvelle architecture pour votre application est prévue ? Les raisons pour refactorer son code sont multiples. Les bénéfices tout autant. Au-delà d’un code propre (ce à quoi le client n’accorde en général que peu d’importance), cela fait partie de l’hygiène de vie de votre application, de sa bonne santé. Le travail futur n’en sera que facilité, pour un gain de temps certain, pour vous comme pour celui ou celle qui passera derrière.
En jouant le rôle du driver ou du navigateur, le pair-programming est une très bonne pratique pour améliorer la qualité des développements et diffuser les connaissances au sein d’une équipe.
Alors oui, c’est sûrement quelque chose que vous avez entendu 36’000 fois depuis vos débuts en programmation. Mais l’intérêt d’ajouter des commentaires lorsqu’on code n’est pas simplement d’aider à la compréhension, c’est aussi un moyen de réfléchir à l’utilité et à la fonction des prochaines lignes à écrire. Définir un but est la clé, un seul but : on évite de créer la superfonctionmultitacheduturfu() ! Commenter chaque bout de code permet d’isoler les différents éléments de votre application, pour les réutiliser ou débuguer plus facilement.
Sortir de sa zone de confort, pour mieux grandir. Si ce que vous faîtes au jour le jour ne vous challenge pas plus que ça, c’est que vous n’apprenez pas grand-chose…
Il est préférable de dire à votre équipe qu’une certaine tâche vous prendra 3 semaines et de la finir en 2 que l’inverse. Gagnez la confiance de vos pairs en évitant de promettre monts et merveilles sans être sûr de pouvoir tenir vos engagements.
Ayez un ensemble d’outils de développement que vous aimez et que vous maîtrisez. IDE, outils de build, de packaging, gestionnaire de code ou serveur d’intégration continue, l’âge de pierre du développement logiciel est terminé et il existe aujourd’hui une batterie de programmes pouvant vous aider à travailler plus efficacement. Testez-les, adoptez-les, essayez-en de nouveaux, partagez-les… ces outils vous rendront la vie bien plus facile. Pensez également aux outils de productivité et de collaboration tels que Trello, Slack ou Asana.
Ne cherchez pas par tous les moyens à résoudre votre problème avec les outils ou techniques que vous maîtrisez. Si votre stack favorite vous permet souvent d’arriver à vos fins, cela ne veut pas dire que c’était le meilleur moyen d’y parvenir. Fondamentalement, votre métier consiste plus à trouver des solutions qu’à écrire du code : comprendre quand utiliser quelle technologie ou méthode, quelle est la plus efficace et pourquoi fera de vous un meilleur développeur. Faîtes grandir votre équipe en proposant des solutions innovantes et peut-être plus efficaces que celles que vous utilisez d’habitude.
En ligne ou dans la vie réelle, entourez-vous de personnes ayant les mêmes centres d’intérêt que vous (que ce soit dans le domaine du développement logiciel ou pas d’ailleurs). Prendre part à la vie d’un groupe peut s’avérer très enrichissant et c’est souvent une excellente source de motivation. C’est un très bon moyen pour faire vivre sa passion, échanger des bonnes pratiques, trouver de l’aide ou simplement rencontrer de nouvelles personnes.
Le site Stack Overflow par exemple est plein de solutions et conseils de développeurs et développeuses, pour vous aider à prendre un problème par le bon bout.
Rejoindre la communauté Letecode sur WhatsApp
Apprenez à captiver vos lecteurs en étant clair et succinct dans vos mails. Un projet informatique réussi implique une communication saine et productive. Personne n’a envie de lire un mail à rallonge et bourré de fautes d’orthographe. Soignez vos écrits comme vous soignez votre code !
Cela vous fera gagner un temps précieux. Ne vous lancez pas sans avoir réellement compris quelle est l’utilité finale de la fonctionnalité à développer. Dans une démarche agile, la formalisation des critères d’acceptation (qui découlent des user stories) est d’ailleurs indispensable sous peine de passer à côté d’un quelconque bénéfice.
Plus généralement, tâchez de toujours garder en tête que la solution que vous développez servira un ou plusieurs métiers spécifiques. Au sein d’une entreprise ou même chez un client, la collaboration avec des personnes du marketing, des ressources humaines ou encore avec la direction est donc essentielle. Cela vous permettra d’avoir de nouveaux points de vue sur votre activité et de développer vos compétences transverses.
Le développement n’est pas un métier individuel. Vous travaillez ou serez amené à travailler en équipe, même en tant que freelance (Rome ne s’est pas construite avec une seule paire de bras). Que ce soit sur un centre de services, en visioconférence ou dans une équipe projet, les personnes qui vous entourent vous apporteront toujours : un regard neuf sur un problème, un encouragement, un nouvel outil, une bonne pratique… Allez vers les autres, échangez avec eux, tout le monde en ressortira grandi.
Et pour évoluer en équipe, le plus important est sûrement de communiquer efficacement. La communication, écrite comme orale, est au cœur des méthodes modernes de développement logiciel : mêlées quotidiennes, réunions de lancement de projet, brainstorming ou encore clôture de phase, les occasions de prendre la parole et d’échanger avec les collègues ne manquent pas. Renseignez-vous sur les meilleures pratiques de communication, et mettez les en application dès que possible.
On ne le dira jamais assez, mais la meilleure alliée dans votre progression est votre propre expérience. Faîtes des essais, échouez, recommencez, réussissez, ou pas, l’important est de mettre les mains dans le cambouis ! Si l’expérience est partout valorisée, ce n’est pas pour rien : pratiquer permet de connaître les réelles difficultés du métier, d’apprendre à résoudre les problèmes (algorithmiques ou autres) et de se constituer un bagage professionnel.
Un point relatif au précédent : un projet personnel vous permettra de mettre en pratique vos connaissances sur quelque chose d’amusant pour vous et qui vous intéresse. Vous pouvez cloner une application existante, un site web ou encore inventer votre propre programme. L’important étant de diversifier vos pratiques, en travaillant sur un projet qui vous tient à cœur et que vous ne percevrez pas comme une contrainte.
Dans le domaine du développement logiciel, acquérir de nouvelles compétences en apprenant par soi-même permet d’évoluer plus rapidement. Obtenir de bonnes notes lors de ses études ne suffit pas, puisque 5 ans plus tard beaucoup de ce que vous aurez appris sera dépassé ou sur le point de l’être. Faîtes vos propres recherches, suivez des formations en ligne et mettez le tout en pratique sur des projets réels. Soyez acteur de votre propre développement !
Cela vous permettra d’améliorer grandement vos pratiques et connaissances en tant que développeur ou développeuse. Trouvez un projet qui vous passionne, corrigez le code, envoyez un patch. C’est aussi simple que cela. Pas besoin d’avoir des années d’expérience : de nombreux projets de développement ont des bugs marqués comme mineurs, faciles ou encore « junior jobs » (« boulots pour débutant »).
Et pour celles et ceux qui ont du mal à se lancer : ce témoignage d’une débutante dans le monde de l’open source peut vous aider à dépasser votre appréhension.
Rapprochez-vous d’une personne plus expérimentée, dans le milieu professionnel depuis quelques temps. Il ou elle pourra vous donner de précieux conseils, tant au niveau de votre carrière que sur le plan technique. Rendez-vous à des meetings, conférences, afterworks, demandez conseil à un collègue, parcourez les réseaux sociaux ou bien des sites comme Coding Coach pour trouver la personne qui vous guidera pendant une partie de votre parcours.
A l’inverse, si vous êtes dans le développement logiciel depuis plusieurs mois voire années, il peut être très bénéfique pour vous d’accompagner quelqu’un de moins expérimenté. Soyez celui ou celle auprès de qui on peut apprendre et échanger des idées.
Il est certainement plus intéressant de se lancer dans la création de nouvelles fonctionnalités, mais ce n’est pas forcément le meilleur moyen pour se familiariser avec un nouveau code source. Parcourir le code en cherchant les bugs vous forcera à plonger dans une application, ce qui vous aidera à mieux appréhender son architecture. Plus vous serez familier avec celle-ci et plus vous serez productif par la suite. Ne fuyez pas les bugs, sautez plutôt dessus dès que vous en avez l’occasion.
Il n’y a pas de question bête. Mais si vous l’avez déjà posée, elle le devient la deuxième fois… Au cours de votre carrière, vous allez apprendre tellement de choses qu’il sera impossible de tout retenir. Et sur un même projet, vous pouvez également vous demandez deux fois la même chose. Les gens sont souvent enclins à vous aider, mais il faut éviter de poser les mêmes questions à répétition : pensez à écrire la solution à un problème susceptible de se représenter.
Nommer les choses peut s’avérer particulièrement difficile. C’est encore plus vrai en informatique : des noms de variables ou fonctions qui ont du sens sont parfois durs à trouver, surtout pour les langages dynamiques où vous n’avez pas de types définis pour vous aider à comprendre les variables. Pensez donc toujours à trouver des noms qui indiquent avec précision le but de votre variable ou fonction, et évitez maVariableTropBien…
N’ayez pas honte d’admettre quand vous ne savez pas quelque chose. En tant que dev, vous êtes constamment en train de résoudre de nouveaux problèmes et on ne peut pas attendre de vous que vous sachiez tout tout de suite. Chercher à cacher son ignorance ne fait que ralentir l’apprentissage.
Apprendre un langage de programmation et apprendre à programmer sont deux choses bien distinctes. Préférez étudier les techniques de programmation, travailler la résolution de problèmes ou vos capacités d’analyses plutôt que d’essayer d’apprendre le plus de langages possibles.
Lorsque vous partagez vos connaissances, vous en acquérez souvent de nouvelles. Cela permet aussi de prendre du recul et de mettre à plat tout ce que vous savez. Peu importe que ce soit via un blog, une chaîne YouTube, un cours sur Udemy ou un article Medium, Internet offre une infinité de possibilités.
La technologie évolue, et elle évolue rapidement. Ne soyez pas réticent ou fermé aux nouveautés du monde du développement et préférez apprendre à les découvrir avant de vous faire une opinion.
Lorsque vous postulez à un nouveau job, un portfolio contenant vos plus belles réalisations peut être un très bon atout pour vous distinguer des autres candidats. Cela permettra à votre futur employeur de se faire une idée concrète de ce que vous êtes en capacité de réaliser. Outre un joli CV et une lettre de motivation bien rédigée, pensez donc à avoir sous la main un portfolio à jour pour mettre en avant vos compétences et les projets sur lesquels vous avez travaillé.
Pour vendre votre expertise ou votre produit, en rendez-vous client ou pour votre direction, il arrivera un moment où vous aurez besoin de présenter votre travail à quelqu’un. Réaliser une bonne présentation, au bon moment, peut vous ouvrir des portes ou au moins faire valoir vos compétences. Sachez vous adresser à une audience en étant à l’aise, adaptez votre discours à vos interlocuteurs et transmettez des informations de manière concise et pertinente, c’est un formidable atout !
Travailler sous la pression des délais est monnaie courante dans un projet informatique. Dépasser ces délais peut engendrer une mobilisation de ressources supplémentaires et influera sur les budgets alloués. La pression qui s’exerce alors sur les individus est souvent source d’un stress pesant et parfois synonyme d’une baisse de la productivité. Apprendre à bien gérer cette pression, en identifiant les facteurs de tension et en les adressant de manière sereine vous permettra de ne plus en subir les effets négatifs.
Dans un environnement de travail, il est très courant d’être distrait, interrompu ou dérangé par des réunions, mails et autres demandes diverses de collègues. Ayez des temps dédiés au code et juste au code pendant votre journée. Le temps total passé à coder n’a que peu d’importance s’il est constamment entrecoupé ne serait-ce qu’une ou deux minutes.
Il y a tellement de sous-domaines en informatique qu’il peut être tentant de vouloir apprendre à faire plein de choses différentes. Mais les entreprises recherchent et paient mieux quelqu’un qui excelle dans un certain domaine. Il vaut donc mieux être expert sur une technologie en particulier que de toucher à tout.
La réussite est constituée de plusieurs étapes. Vous ne pouvez pas devenir un expert ou une experte de la programmation en une journée. Ni en une semaine, un mois ou même un an. C’est un long chemin, très sympa à parcourir mais parsemé d’embûches. Votre carrière dans le développement logiciel vous mènera de stagiaire à mentor, vous passerez par des phases de doute, d’exaltation, d’agitation, d’énervement, d’enthousiasme… L’important est de toujours croire en vos capacités, c’est ainsi que vous continuerez à progresser.
L’automatisation logicielle est devenue un outil essentiel dans l’industrie IT. Avec l’évolution rapide des architectures informatiques, les entreprises ont un besoin accru de flexibilité. Même constat à l’échelle individuelle : utiliser des technologies pour effectuer certaines tâches répétitives vous permettra d’être plus agile, et de gagner un temps précieux. Automatiser le pipeline de build, certains développements ou tests logiciels vous libérera du temps pour vous concentrer sur des tâches plus intéressantes, et surtout plus gratifiantes.
Vos compétences techniques sont votre fer de lance. Mais vous ne deviendrez pas meilleur programmeur ou programmeuse en vous contentant de programmer. Connaître votre secteur et ses spécificités peut vous permettre de progresser : quels sont les différents métiers qui le composent ? Comment utilisent-ils les solutions logicielles ? Dans quel but ? Quelles sont les entreprises qui dominent le marché ? Pourquoi ? Plus vous vous intéressez à l’industrie dans laquelle vous évoluez plus votre travail sera pertinent.
Que ce soit en équipe ou individuellement, la mise en place d’un processus de développement qui tient la route est fondamentale. En particulier, définir des objectifs clairs permettra de ne pas s’égarer et d’atteindre plus rapidement le but recherché. Vous pouvez pour cela utiliser la technique des objectifs SMART, qui vise à mieux comprendre et appréhender le résultat escompté. Ecrire une simple liste de choses à faire pendant la journée peut déjà se révéler très efficace !
Programmation orientée objet, fonctionnelle, concurrentielle, déclarative… chaque paradigme de programmation amène sa propre philosophie. En pratiquant différentes approches, vous acquerrez une meilleure compréhension de l’ensemble : étudier un certain paradigme améliorera votre façon de programmer avec un autre.
Cela peut paraître trivial, mais lire le code d’un autre développeur ou d’une autre développeuse ne va pas forcément de soi. Surtout s’il est écrit dans un langage sur lequel vous n’avez pas l’habitude de travailler. Chacun a sa propre manière de programmer, son propre style et tout le monde ne code pas de la manière la plus efficace possible. Apprenez à analyser du code et sachez déterminer si la façon dont un problème a été résolu est la meilleure.
C’est un peu une règle d’or en informatique. A force d’être confrontés à des problèmes récurrents, les informaticiens et informaticiennes ont mis au point des méthodes et outils dédiées à leur résolution. Que vous ayez des difficultés à designer un bout de votre application, ou à écrire une requête pour fouiller dans une base de données, tachez d’appliquer ce principe : partir d’une solution existante et construire la vôtre par-dessus. Un framework est quelque part une roue inventée par quelqu’un et qui permet à d’autres de ne pas tout recommencer.
En programmation, lorsqu’on bloque sur un certain problème, la meilleure chose à faire est parfois de se lever un coup, s’étirer, boire un verre d’eau et faire autre chose pendant 5 minutes avant de se remettre au travail. Fixer son écran pendant de longues minutes ne permet que très rarement d’arriver à une solution…
Il existe bon nombre de documents recensant les conventions de codage, ou bonnes pratiques pour l’écriture du code dans un langage donné. Le Style Guide pour Python, celui pour le langage Ruby ou encore les recommandations standards PHP sont des exemples parmi d’autres. Ces conventions peuvent paraître effrayantes mais une fois maîtrisées (dans les grandes lignes), elles garantissent au sein d’une équipe de développement une certaine cohérence et facilité de relecture du code.
Votre métier, comme beaucoup d’autres d’ailleurs, vous oblige à rester en position assise généralement jusqu’à 7 à 8 heures par jour. Sur le long terme, cela peut être très mauvais pour votre santé (mal de dos, posture avachie…) : trouvez un sport que vous aimez et qui vous permette de compenser cela, votre corps et votre esprit vous diront merci !
7 à 8 heures assis, c’est aussi 7 à 8 heures devant un écran… C’est déjà bien assez (trop !), évitez de rentrer à la maison et de vous asseoir devant votre PC ou votre télé. Si la tentation est trop forte, il existe des filtres à installer sous forme de logiciels, pour ménager vos yeux et éviter une surexposition à la lumière bleue.
On ne réussit jamais du premier coup. Encore moins en programmation. Mais si quelque chose plante, bug, ça ne veut pas dire que tout est à jeter. Les plus grands accomplissements ont été précédé de multiples échecs. Les voir comme une avancée vers votre objectif vous permettra de toujours continuer à apprendre, et de les utiliser pour ne pas commettre les mêmes erreurs plusieurs fois.
Gagner sa vie en programmant n’est pas donné à tout le monde. N’importe qui peut coder, mais en faire une carrière c’est autre chose. Il faut de la passion et une continuelle soif d’apprendre : la technologie avance vite et si vous n’aimez pas découvrir de nouvelles choses vous serez vite dépassé. Il est donc important d’apprécier ce que vous faîtes au quotidien : apprendre à coder pour gagner de l’argent est incohérent et ne durera pas très longtemps…
Disclaimer : ces conseils et bonnes pratiques sont principalement issus de recherches sur le net, et non de l’expertise technique (largement contestable) de leur auteur. En espérant qu’au moins un ou deux de ces points aura pu vous être utile, merci d’être arrivé jusqu’ici et bonne chance à toutes et à tous pour ce sinueux mais passionnant parcours qui vous attend !