loading...

Pourquoi je prends du temps lors de la prise en main d'une technologie ?

tawalmc profile image TawalMc Updated on ・6 min read

Hi. Je m'appelle Tawaliou et ceci est mon premier article en tant que dĂ©veloppeur logiciel(junior 😎). Alors je vous explique un peu pourquoi je prends parfois 1 Ă  2 mois voire plus pour apprendre une nouvelle technologie, les avantages de cette maniĂšre de faire. Dans la suite techno fait rĂ©fĂ©rence Ă  language de programmation ou bibliothĂšque.

Une nouvelle techno ? Un nouveau language de programmation ?

Parfois Ă  cause de ses orientations en tant que dĂ©veloppeur, l'on choisit d'apprendre de nouveaux languages, de nouveaux frameworks, bref rester productif, ĂȘtre Ă  la page et pour le fun đŸ€—. Dans mon cas c'est simple: je peux prendre 2 mois et bannalement 4 mois pour apprendre une nouvelle techno(language ou bibliothĂšque). Pourquoi?

  1. Pour avoir assez d'informations sur la techno:
    • communautĂ© et popularitĂ©,
    • projets l'utilisant,
    • l'historique de la techno;
  2. Pour me familiariser avec les concepts de base du language, la syntaxe et la maniÚre de présenter le code dans cette techno;
  3. Pour avoir une vue panoramique des fonctionnalités de la techno et de ce qu'elle est habiletée à faire et donc adaptée à mes besoins ou pas;
  4. Pour (trĂšs important) me familiariser avec sa documentation officielle.
1. Avoir des informations sur la techno

Souvent Ă©tant donnĂ© la popularitĂ© + communautĂ© + l'historique d'une bibliothĂšque on se lance dans son apprentissage parce qu'elle rĂ©pond dĂ©jĂ  Ă  certains de nos besoins. Prenons l'exemple de ReactJS. Je cherchais une bibliothĂšque front-end assez puissante, lĂ©gĂšre et pas trop compliquĂ©e. Donc fallait choisir entre: VueJS - React - Angular. Je me suis alors basĂ© sur la communautĂ© trĂšs grande autour de ReactJS et le fait qu'il soit supportĂ© par une des entreprises que j'apprĂ©cie, Facebook. Mais Angular aussi est supportĂ© par Google. Simple j'ai passĂ© plusieurs semaines Ă  faire des confrontations de commentaires et disons que j'ai commencĂ© avec de petits bouts de code mais rapidement j'ai trouvĂ© React plus abordable. Donc imaginez le temps mis. De plus, pour moi l'historique derriĂšre une techno est source de motivation car tu essaies d'imaginer le niveau de ses dĂ©veloppeurs, du travail abattu et des Ă©checs et corrections apportĂ©es pour avoir une version stable et tu te dis waooh j'aimerais ĂȘtre comme eux: une techno utilisĂ©e par des milliers de dev, cela doit ĂȘtre fait par des dĂ©veloppeurs trĂšs bons. Cela te pousse Ă  vouloir comprendre en profondeur la techno, Ă  rĂ©aliser des petits TPs avec et donc Ă  prendre du temps avec!

2. Se familiariser avec les concepts de bases du language et sa syntaxe

PremiÚre remarque à ce niveau: quand je fais une prise en main en moins d'un mois (sans oublier les cours à l'université); c'est sûr que je ne vais pas apprécier le language soit à cause de la syntaxe soit à cause de la maniÚre de faire certaines fonctions.
Preuve vivante: PHP et Go đŸ€Ł. Parce que j'avais un background en C++ (mon language prĂ©fĂ©rĂ©) j'ai fait la prise en main du PHP en moins de 3 semaines. Super et tout mais bof j'ai dĂ©testĂ© plusieurs choses dans ce language ce qui m'a fait perdre de vue la richesse de ce language:

  • prĂ©cĂ©der $ du nom des variables Ă  tout moment (la galĂšre đŸ˜«)
  • une masse incroyable de fonctions prĂ©dĂ©finies dans le language pour rĂ©soudre des problĂšmes et l'inconformitĂ© dans la syntaxe de certaines fonctions: les fonctions exĂ©cutant des rĂŽles similaires devraient ĂȘtre nommĂ©es de la mĂȘme maniĂšre.... Gbich, Erreur de erreur. J'ai nĂ©gligĂ© le language. Il m'a fallut m'orienter en premier lieu dans l'IoT pour voir qu'il est trĂšs important et utile et mĂȘme facile Ă  utiliser (avec des prĂ©cautions) et en deuxiĂšme lieu dans le web pour voir que je ne pouvais pas l'Ă©viter facilement. Pour Go mĂȘme chose: moins d'un mois je pouvais compiler des codes de calculs mais j'ai vite lacher prise Ă  cause de la syntaxe que je traitais dans le temps de Guingois. Comment un language comparĂ© au C pouvait avoir une telle syntaxe assez moche, c'Ă©tait mon avis il y a 1 an. Mais maintenant je me dis que j'aurais mieu fait de me familiariser avec ce language pour mieu le dĂ©couvrir. En 3 semaines tu ne comprends pas forcĂ©ment le bien fondĂ© d'une techno. Par contre avec le C++ dont la rĂ©putation en terme de difficultĂ© n'est plus Ă  dĂ©montrer, j'ai avec le temps apprĂ©ciĂ© le language et continuĂ© Ă  le suivre: j'ai pris 1an pour sa prise en main. Ce qui m'a permis de comprendre le pourquoi de certaines syntaxes soit pour cause de compatibilitĂ© avec le C soit pour dissiper des doutes, bref faciliter la vie du dev.
3. Pour avoir une vue panoramique des fonctionnalités de la techno

Je ne vous demande pas de tout savoir sur le language ou la bibliothĂšque, non. Je ne vous demande pas d'en devenir des Chuck Norris en 1 an, non et de toute façon c'est pas possible đŸ€Ł. Mais je demande d'en savoir assez sur la techno: ses pros et cons. Ses atouts, et une idĂ©e de jusqu'oĂč elle peut vous amener. Et pour ça faudra beaucoup lire, se documenter sur la techno et s'exercer et ceci lors de la prise en main. Peut ĂȘtre que ce que vous apprendrez ne vous sera pas utile dans 1 an mais elle vous permettra de vite vous en sortir devant des situations compliquĂ©es.
Exemple: RĂ©cemment durant mon stage Ă  YoupiLab (BĂ©nin 😎) je devrais faire un petit dashboard en HTMl+CSS+JS pour un projet IoT. Je devais afficher une liste de donner que l'utilisateur allait envoyer Ă  une base de donnĂ©es. Pour ne pas me fatiguer j'ai basculĂ© la majoritĂ© du code vers le JS (affaire de front-end đŸ€Ł). Mais un problĂšme se posait: Je voudrais supprimer une liste d'Ă©lĂ©ments pour en afficher une autre mais avec des propriĂ©tĂ©s similaires sans recharger la page. Bref je voulais garder une rĂ©fĂ©rence sur l'Ă©lĂ©ment supprimĂ©: Basique direz-vous, je sais. Mais je ne savais pas trop comment faire la recherche sur Google et comment m'y prendre. Alors de proche en proche j'y suis arrivĂ© sans Googler.:

  • j'utilise removeChild() pour supprimer les Ă©lĂ©ments.
  • il y a 2 ans dans un TP lors de la prise en main de JS j'avais lu que removeChild() garde une rĂ©fĂ©rence de l'Ă©lĂ©ment du dom supprimĂ©. Bref ce que je cherchais Ă©tait en ma possession et avec quelques console.log() j'ai eu ma rĂ©ponse. C'est suite Ă  ce fait que j'ai dĂ©cidĂ© d'Ă©crire cet article đŸ€Ł. Parce que j'avais lu ça il y a deux ans, je savais qu'il avait un comportement pareil; je ne l'ai nĂ©anmoins jamais testĂ©. J'ai fait au moins 4 mois avec le JS.
4. Le plus gros point: me familiariser avec sa documentation officielle

Pour moi la documentation d'un language est la meilleure chose que j'ai trouvĂ©e en programmation informatique. MĂȘme quand j'ai la flemme de coder, de travailler; il y a la documentation des technos que j'utilise. Donc simple je m'amuse Ă  les ouvrir, Ă  les lire, Ă  comprendre comment cette documentation est structurĂ©e et comment m'y retrouvĂ©e facilement si j'ai des besoins. Je lisais mĂȘme des notions que je n'aborderai alors que 2 ans plus tard; comme les templates et la STL il y a 3 ans avec le C++. Une documentation est je dirai ce que les auteurs ont lĂ©guĂ© aux utilisateurs pour atteindre leur but. En plus de donner rĂ©ponse Ă  des questions profondes, elle fournit des exemples de code qui Ă©clairsissent dans beaucoup de situations. De plus la docmentation te montre qu'il faut bien faire son travail Ă  tel point de dĂ©crire en dĂ©tail toutes les fonctionnalitĂ©s de la techno, ce qui n'est pas aisĂ©e; car une chose est de crĂ©er la techno pour rĂ©soudre un problĂšme, l'autre chose est de l'expliquer Ă  ceux qui doivent l'utiliser, comment l'utiliser pour rĂ©soudre leur problĂšme.

Vous allez me demander mais s'il y a google pourquoi se gĂȘner avec la doc qui peut ĂȘtre difficle Ă  comprendre ?

Simple: je suis au BĂ©nin (Afrique) la connexion internet ne facilite pas vraiment le taf en tant que dev, un peu chĂšrs, puis lente Ă  tel point que la crĂ©ation d'un projet CRA en React peut Ă©chouer Ă  cause de Timeout đŸ€ŁđŸ€ŁđŸ€Ł. Donc quand on a l'occasion d'avoir les documentations offline, alors on les prends et se les approprie pour qu'elles soient notre google en cas de petits besoins. Big up Ă  Zeal qui fait un travail formidable pour qu'on ait en offline dans un mĂȘme logiciel la documentation de la plupart des technos 😎😎😎.

Conclusion

VoilĂ  j'en suis Ă  la fin, certes cet article est long mais je ne voulais pas le diviser en deux parties car je trouve que les informations sont complĂ©mentaires. En gros certaines pratiques vous font aimer le mĂ©tier de software developer et vous facilites la vie mĂȘme si elles sont lentes Ă  donner le rĂ©sultat.
A bientĂŽt pour un new article.

Posted on by:

tawalmc profile

TawalMc

@tawalmc

Power and Process engineer student. Learning software development with C++, JavaScript (React, Material UI, Ionic; NodeJS), PHP. Write software for energy domains.

Discussion

markdown guide
 

Article assez instructif surtout pour ceux qui commence dans la programmation (Qu'importe le langage)

 

Merci à toi Said. 😎

 

Waouh.. c'est cool. Et c'est drĂŽle en plus. J'avais pas envie de finir la lecture..(rire)

 

Merci bro sûr. On sera de trÚs bon devs. Tkt