Tu es posé dans ton fauteuil en train de travailler sur ton projet et d’écrire tes lignes de code, lorsque que tu lances ton meilleur navigateur pour voir le résultat de l’incroyable fonction que tu viens d’écrire quand tout à coup … RIEN, il ne se passe rien, si ce n’est une belle erreur en rouge qui s’affiche.
Cette situation te dit quelque chose ?
Que l’on soit développeur débutant ou confirmé, nous rencontrons toujours des erreurs ou des blocages lors de nos développements. Qui a déjà coder un site web sans avoir une seule erreur, un seul blocage, une connaissance manquante ? Personne.
Lorsque que tu es développeur, tu dois faire face à cette situation plusieurs fois par jours et tout au long de ta carrière de développeur. Il va donc falloir que tu saches trouver des solutions à ces blocages, trouver des solutions à tes erreurs, et apprendre les nouvelles compétences lorsque tu en as besoin, pour avancer dans tes projets.
Heureusement, internet regorge d’informations et tu n’es pas seul dans le bateau. Il existe sur internet une énorme communauté de développeurs qui ont déjà eu les erreurs sur lesquelles tu vas tomber et qui ont partagé leurs expériences.
Il faudra simplement savoir où chercher ces informations. Pour t’aider je vais te montrer comment trouver une solution lorsque tu es bloqué.
Demandes à Google
C’est la base ! Dès que tu as un blocage, commences toujours par aller sur Google pour chercher une solution. Dans 80% des cas tu trouveras une solution avec.
Comment chercher sur Google ?
Lorsque tu tombes sur une erreur dans ton code, la première chose que tu peux faire c’est de copier-coller le texte de ton erreur. Tu devrais tomber rapidement sur d’autre développeurs qui ont eu le même problème et qui explique leur solution.
La petite astuce : si tu souhaites que Google n’affiche que les résultats où il y a le texte exact de ta recherche, mets ta recherche entre guillemets : « referenceerror: $ is not defined ». Ainsi tu n’auras que les résultats dans lesquelles la phrase « referenceerror: $ is not defined » apparait mot pour mot.
Si dans ton erreur, tu as un nom de variable ou une classe que tu as définie toi-même, retires-la de ta recherche. Par exemple si tu as “referenceerror: maVaribableAMoi is not defined”, retires « maVariableAMoi ». Chaque développeur nomme ces variables et ces classes comme il le souhaite, tu as donc moins de chance de trouver des résultats avec le nom de ta variable dedans.
Cherches en anglais
Lorsque tu fais une recherche sur Google, essayes de la faire en anglais. Tu trouveras beaucoup plus de résultats. L’anglais est la langue universelle des développeurs, beaucoup de sujets, sont en anglais ainsi que la majorité des sites d’entraide populaires.
Par exemple, si tu cherches comment connecter une base de données en PHP, il est préférable que tu cherches « connect database php » à la place de « connecter base de données php »
Tu vois que pour la même recherche, nous avons 2 fois plus de résultats en anglais qu’en français.
Ne fait pas des phrases à rallonge
Ce n’est pas la peine d’écrire des phrases à rallonge lorsque tu cherches une solution. Google utilise uniquement les mots clés de ta recherche. Si on reprend notre exemple précédent, il est préférable que tu cherches « connecter base de données php » plutôt que « comment connecte-t-on une base de données en php »
Dans cette exemple il y a 5 fois plus de résultats en utilisant uniquement les mots clés important.
Et tu auras encore plus de résultats si tu fais cette même recherche en anglais.
Stackoverflow
Stackoverflow est une plateforme communautaire sur laquelle les développeurs peuvent créer des posts pour demander de l’aide aux autres développeurs lorsqu’ils sont bloqués.
Lorsque tu chercheras une solution sur Google pour ton erreur, il y a de très forte chance que tu tombes sur ce site.
Comment ça fonctionne ?
Lorsque que tu arrives sur un post, tu retrouves le titre du post ainsi que la description du problème dessous. Je trouve l’interface de Stackoverflow super bien faite. Les textes peuvent être formatés et une coloration syntaxique est ajoutée au code pour qu’il soit facilement lisible.
On retrouve dans la partie gauche un système de vote et en dessous les « tags » qui permettent de catégoriser le post.
En dessous du post, tu retrouves l’ensemble des réponses données par les autres développeurs. Si une des réponses a permis à l’auteur de se débloquer, il peut la valider et celle-ci apparait en première avec une petite coche verte pour indiquer que cette solution a fonctionnée. Pratiques pour avoir, d’un seul coup d’œil, une réponse à ton erreur.
Les chiffres que tu retrouves dans la partie gauche sont une sorte de « vote ». Plus le chiffre est grand plus la réponse est fiable et a aidé un grand nombre de personnes.
De plus, il est possible de compléter ou corriger une réponse donnée par quelqu’un afin que celle-ci soit plus compréhensible ou plus complète.
Ici la réponse a été donné par iamjonesy et éditée par Dharman qui est venu la compléter.
Ce système permet d’avoir une bonne qualité dans les réponses données.
La plupart du temps, lorsque tu tombes sur un post de Stackoverflow qui correspond à ton erreur, tu n’auras cas regarder la réponse validée et tu devrais pouvoir te débloquer. Si ce n’est pas le cas, regarde les autres réponses données plus bas, elles pourront te donner des pistes de réflexions.
Stackoverflow est une mine d’or pour les développeurs. Dans 80% des cas, je résous mes blocages grâce à ce site. Lorsque je fais une recherche sur Google de mon erreur, même si le site de Stackoverflow n’arrive pas en tant que premier résultat (mais deuxième ou troisième), je vais quand même le consulter en premier. Je me suis habitué au formalisme de Stackoverflow et je consulte directement la réponse validée et je trouve la solution à mon problème assez rapidement sur ce site.
Trouver la solution dans un autre projet
Lorsque tu commences à travailler sur différents projets, que ce soit perso ou pro, tu as surement dû rencontrer plein de blocages que tu as résolu.
Tu peux ainsi retrouver des bouts codes précédents sur lesquels tu avais fait plus ou moins le même fonctionnement ou rencontré le même problème. Cela te permettra de partir d’une base qui fonctionne et éventuellement de partir sur une autre façon de faire ton code.
Souvent lorsque je suis bloqué, j’essaie de retrouver des bouts de code que j’avais fait précédemment ou que mes collègues ont fait pour essayer de m’en inspirer ou de trouver une solution à mon blocage.
Il existe plusieurs façons de faire une même chose, il n’y a pas qu’un seul code qui fonctionnera pour avoir un même résultat. Parfois je suis parti avec une idée en tête et le fait de voir la façon de faire d’une autre personne m’a permis de réfléchir différemment et de partir sur un nouveau code.
Avances coute que coute
Parfois, tu peux passer plusieurs heures, voir plusieurs jours sur un problème. Dans l’idéal, tu finis par trouver une solution qui vas dans le sens de ton code, de ce que tu as commencé à faire. Mais parfois, pour ne pas rester bloquer plus longtemps et perdre trop de temps, il faut aussi savoir faire différemment, emprunter un autre chemin, peut-être un peu moins bien et se rabattre sur une solution un peu moins propre, un peu moins performante mais qui fonctionne. L’essentiel est d’avancer dans le projet. « Mieux vaut fait que parfait ». Tu pourras toujours, par la suite, revenir sur ton code pour l’améliorer.
Regardes sur YouTube
YouTube regorge de vidéos explicatives et de tutoriels. Tu peux facilement trouver une vidéo d’une personne qui t’explique comment réaliser telle ou telle chose.
C’est aussi un bon moyen de trouver une solution à ton problème. Dans la barre de recherche renseigne le nom de ton erreur. Tu tomberas surement sur plein d’autres personnes qui ont eu le même problème et qui l’expliquent sous format vidéo.
Il m’arrive régulièrement de chercher sur YouTube des solutions et de chercher d’autre façon de faire les choses. Comme je le disais précédemment il existe différente manière d’arriver à un même résultat et les vidéos YouTube exposent bien le point de vue et les différentes méthodologies de chacun pour arriver à résoudre un même problème.
Lorsque tu recherches sur YouTube, essayes d’élargir un peu ta recherche afin de trouver plus de résultats et de voir comment les autres développeurs apportent leur solution. Par exemple si tu es bloqué pour intégrer une librairie spécifique d’un « datepicker » dans ta page web, fait une recherche générale sur le principe de « datepicker » sur YouTube et non une recherche sur la librairie spécifique que tu souhaites utiliser. Ainsi tu pourras peut-être voir qu’il existe d’autres librairies plus facile à manipuler ou intégrer et suivre le tutoriel expliqué en vidéo.
Variante à Youtube
Tu peux aussi regarder dans l’onglet « vidéos » de la recherche Google.
La plupart du temps tu arriveras sur YouTube mais parfois des développeurs postent des solutions en vidéo sur leurs propres sites. Ces vidéos ne sont pas toujours répertoriées sur YouTube.
Demandes de l’aide sur un forum
Après toutes tes recherches il se peut que tu n’aies toujours pas réussi à trouver de solution à ton problème. A ce moment-là, tu peux demander de l’aide sur des forums ou bien des groupes Facebook.
Ne postes qu’une fois que tu as fait toutes les recherches sur internet et que tu n’arrives pas à trouver de solution après des heures de recherche.
Pourquoi je te dis ça ?
Dans un premier temps parce que c’est ton boulot de développeur de trouver des solutions et de faire des recherches, que ce soit pour se débloquer soi-même mais aussi pour trouver une solution aux besoins / problème du client. De plus, plus tu chercheras par toi-même plus tu apprendras. A chaque problème que tu rencontreras et que tu résoudras, tu obtiendras plus d’expérience. Toutes ces expériences développeront ta capacité à résoudre les problèmes et te permettront d’avancer plus vite lors de tes prochains projets.
La seconde raison est que tu passeras pour un touriste sur les forums si tu n’as pas fait l’effort de faire des recherches avant et que la solution est évidente. Personne n’aime faire le boulot à la place des autres. Les autres développeurs ne vont pas faire le travail à ta place. Ils pourront t’apporter une solution que si tu montres que ton problème est assez complexe et que tu expliques l’ensemble des recherches que tu as faites avant.
Pense à ouvrir ton problème, prends de la hauteur. Ainsi les autres pourront t’apporter différents points de vue et peut être une autre façon de faire à laquelle tu n’avais pas pensé. Ne diriges pas ta question vers une solution trop précise.
L’aide à un ami (collègue)
Si tu travailles dans une entreprise ou que tu as quelqu’un dans ton entourage qui a des connaissances sur le sujet, tu peux lui demander de l’aide.
Là aussi ne demandes que lorsque tu as fait toutes les recherches en amont pour ne pas le déranger pour rien et toutes les 10 minutes. Il faut être autonome quand on est développeur.
Tu peux aussi demander à un de tes collègues de faire une revue de ton code avec toi. C’est-à-dire qu’il analyse ton code et ta façon de faire pour qu’il puisse donner son avis et t’expliquer comment lui l’aurais fait ou trouver un moyen plus optimiser d’arriver au même résultat. C’est un bon moyen d’apprendre et de progresser.
Tu as aussi le droit de demander de l’aide à d’autres développeurs moins expérimentés que toi. J’ai souvent travaillé avec des stagiaires, des alternants, ou des personnes moins expérimentées que moi et je n’avais aucun problème à leur demander leur aide lorsque je bloquais sur un point afin d’avoir leur point de vue.
Les personnes moins expérimentées, ont moins de technique. Elles vont donc moins réfléchir sur l’aspect technique et plus sur l’aspect « solution générale ». Lorsqu’on est la tête dans le guidon dans son code, ça fait du bien que quelqu’un d’autre analyse ce que l’on fait d’une manière plus globale.
Donc n’est pas peur de demander à une personne moins expérimentée que toi, elle pourra elle aussi t’aider et de son côté, ça lui apportera beaucoup de t’aider.
J’espère que cet article t’aura aidé à trouver des solutions lorsque tu es bloqué. Si tu as d’autres méthodes pour chercher des solutions partages-les dans les commentaires.