Conseils aux étudiants en développement logiciel

Depuis plusieurs années, j’interviens dans plusieurs filières (👋 UCA, ISIMA et Hesias) pour donner des cours de développement web. J’ai sans aucun doute moins de qualités pédagogiques qu’un enseignant de formation, en revanche, je peux probablement apporter aux étudiants une vision du marché du travail, de la vie en entreprise, des processus de recrutement, plus concrète qu’un enseignant. Et chaque année, j’aime prendre quelques minutes pour discuter de ces sujets et leur apporter mon point de vue (qui n’est pas la vérité absolue hein).

En particulier, j’essaye de leur donner des éléments pour maximiser leur chance de trouver un emploi après leur formation. Je me suis dit que ça ferait un sujet intéressant à partager :simple_smile:.

Attention, je ne parlerai ici que de comment avoir plus de chances d’être embauché dans une entreprise mais il y a d’autres façons d’exercer le métier de développeur (devenir freelance, créer son entreprise, …). Tout ce qui suit est simplement mon avis, rien d’autre.

Pendant les études

Au moment où j’écris ce billet, le marché de l’emploi pour les dev ayant de l’expérience est vraiment “facile”. Beaucoup de postes, peu de candidats et on est sollicité sans arrêt sur Linkedin ou autres pour passer des entretiens. Mais pour les nouveaux diplomés c’est loin d’être aussi simple et ça, peu importe le diplome (à quelques exceptions près peut-être) ou les compétences (dans une moindre mesure, j’explique ça par la suite).

Pourtant, il y a pas mal de choses que l’on peut faire lorsqu’on est étudiant pour arriver fraichement diplomé, avec plus de chances que d’autres de trouver un poste dans une bonne entreprise.

Les “side projects”

Les projets que vous devez réaliser pendant vos études ne sont clairement pas suffisant pour acquérir un niveau “professionnel” (encore une fois, je parle d’après mon expérience personnelle). Réaliser des applications en plus des projets scolaires est vraiment très formateur. Il y a plein de possibilités :

  • faire une appli qui va vous servir dans votre quotidien
  • faire le site web de votre club de sports / association / …
  • si vous n’avez vraiment aucune idée, vous pouvez essayer de copier une application que vous connaissez juste pour vous entrainer

Par exemple, j’ai fait le site web de mon club de tennis de table quand j’étais étudiant, d’abord en PHP natif, puis en Symfony 1.4. J’ai passé un nombre d’heures incroyables dessus, c’était un vrai plaisir d’ajouter des nouvelles fonctionnalités, de tester de nouvelles idées (genre aller “scraper” le site de la fédération française de TT pour récupérer des infos sur les joueurs 😛), tout en essayant de comprendre comment fonctionnait PHP, puis Symfony. Je me suis cassé les dents un nombre incalculable de fois, j’ai eu une tonne d’erreurs et d’exceptions mais ça m’a appris à persévérer dans la recherche de solutions. J’ai vraiment eu le sentiment d’avoir une longueur d’avance en développement (et dans ce domaine uniquement 😅) sur beaucoup d’autres étudiants en arrivant en stage de fin de DUT ou de licence.

S’investir dans un ou plusieurs “side projects” c’est vraiment le conseil N°1 que je donne aux étudiants.

Avoir un compte Github (ou similaire)

Avoir des compétences c’est top, mais c’est encore mieux si vous pouvez le montrer. Je conseille systématiquement aux étudiants de créer un compte Github (ou tout autre service d’hébergement de code) et de mettre des choses dessus :

  • des travaux pratiques
  • des projets scolaires
  • des “side projects”
  • des katas de code
  • des “snippets” sur tout et rien

En tant que débutant, par définition on n’a pas beaucoup de références, donc tout ce qui peut montrer ce que vous savez faire est bon à prendre.

Meetup locaux

Dans la tech, on a la chance d’avoir une communauté très portée sur le partage. L’une des manifestations de ça sont les “meetups” locaux. Ce sont des événements (le plus souvent) gratuits, qui ont lieu plusieurs fois par an en petits comités (quelques dizaines de personnes en principe) où des gens viennent parler de tech ou de sujets gravitant autour de la tech. Ils sont organisés par des bénévoles, passionnés et bienveillants (enfin ceux que je connais en tout cas 😄).

Ces “meetups” sont une chance à plusieurs titres :

  • apprendre et découvrir des technos, des concepts, …
  • créer son réseau

Concernant ce dernier point, oui c’est intéressant (mais pas obligatoire) de rencontrer des gens, de se faire connaitre pour éventuellement nouer des relations qui vous permettront de trouver un stage de fin d’année plus facilement, voir un emploi.

Par exemple près de chez moi il y a 3 ou 4 associations qui proposent des “meetups” (plus ou moins) régulièrement :

Pour finir sur ce sujet, j’aurais aimé avoir le courage en tant qu’étudiant de proposer de donner un “talk”. Même en tant qu’étudiant, on a plein de choses intéressantes à raconter (et ça sera un “soft skill” dont vous pourrez parler en entretien d’embauche 😉) !

Conférences

Les conférences tech sont plus rarement gratuites et en tant qu’étudiant on n’a pas forcément le budget pour s’y rendre (plusieurs centaines d’euros souvent). En revanche, vous pouvez trouver les replays de ces conférences sur Youtube, et ça c’est top pour découvrir de nouvelles choses, se rendre compte des tendances, etc. Attention, regarder une tonne de vidéos ne remplace pas le fait de coder. Regarder quelques vidéos sur Rust ne fera pas de vous un développeur Rust, mais ça peut vous donner envie de creuser un sujet, ou donner quelques axes et grandes lignes sur un processus ou une techno.

Voici quelques chaines Youtube de conférences :

Avant un entretien

Juste avant un entretien il y a quelques astuces qui peuvent vous aider à vous démarquer auprès de la personne que vous aurez en face.

Se renseigner sur l’entreprise

Si vous avez un entretien avec un recruteur, quelqu’un de l’équipe RH, le patron (bref une personne à priori pas technique), s’être renseigné et venir en ayant des choses à raconter sur l’entreprise, c’est basique mais c’est déjà beaucoup de points marqués. Bon, en fait c’est un “travail” qui devrait être fait avant même de postuler, mais avoir des infos bien en tête avant de se présenter à l’entretien est vraiment important.

Quelques trucs pour ça :

  • allez sur le site de l’entreprise, parcourez-le
  • ayez une idée claire de son “business”
  • allez voir si l’entreprise est présente sur les réseaux sociaux et repérer son actualité
  • essayez de trouver la stack technique (et documentez-vous un minimum sur ce que vous ne connaissez pas)

Si vous êtes capable de placer subtilement les infos que vous avez recueillies, ça marquera à coup sur votre interlocuteur. C’est quelques minutes/heures de recherche mais ça vaut le coup.

Codingame / algo

Les entretiens techniques sont vraiment très variés. Personnellement, j’ai dû en passer une trentaine, voir une quarantaine dans ma vie, certains que j’ai très bien réussis, d’autres complètement ratés. Je ne vais pas parler de leur pertinence (très discutable à mon avis pour la plupart). Un entretien technique, à mon sens, n’évalue pas vraiment vos compétences de développeur, mais votre préparation à tel ou tel type d’exercice.

Un type d’exercice que j’ai déjà eu l’occasion de passer est un test d’algo sur Codingame (ou autres plateformes du genre). Sincèrement, si vous ne vous préparez pas un minimum sur ce genre d’exercice, ça peut être très compliqué de performer lors de l’entretien. Même si vous êtes très calé sur le développement web, très compétent sur un framework, vous maitrisez les patterns du GoF, SOLID, etc etc, vous ne réussirez pas forcément ce type de test qui n’a rien à voir. Souvent ça demande 2 choses : d’être plutôt bon en algorithmique (bah ouais normal), et surtout bien connaitre certaines fonctions de manipulation de chaines de caractères ou de tableaux qui vont vous aider à construire/simplifier votre algo.

Rien de vous interdit (au contraire), de vous entrainer avant. Quelques heures peuvent suffire à comprendre un peu la logique et la façon de faire de ce genre d’évaluation. Dans mon cas, la première fois que j’ai eu un entretien technique sur Codingame, j’étais prévenu, je me suis entrainé, je suis tombé sur un genre de jeu très semblable à ceux sur lesquels je m’étais entraîné, j’ai très bien réussi :simple_smile:. Des années plus tard (donc je suppose que je suis plus compétent qu’avant techniquement), je suis retombé sur ça sans être prévenu du type de test, je n’avais plus fait ce genre d’exercice d’algo depuis … ce premier test technique 😄 et j’ai complètement loupé. Bref, entrainez-vous.

Entretien technique (j’ai vu passer un meme dans le même genre très drôle qui montre un profil Linkedin de fou pour un candidat pas fou mais je ne le trouve plus)

Pendant un entretien

Pendant un entretien, il y a évidemment plein de choses à faire mais je vais juste me concentrer sur 2 ou 3 points qui sont très importants je pense, car ils vont vous apporter une certaine confiance et vous aider à être à l’aise (j’ai la chance de ne jamais avoir eu de problème de ce côté-là, mais j’ai vu quelques candidats être tellement paniqués qu’ils n’ont pas été embauchés alors qu’ils étaient peut-être très compétents).

Les sujets maitrisés

Lorsque vous maitrisez bien les sujets techniques évoqués par votre interlocuteur, faites le bien savoir ! Il y a forcément une techno que vous avez plus creusée qu’une autre, alors soyez précis, n’hésitez pas à parler de votre expérience sur le sujet, entrez dans les détails, montrez l’étendue de vos connaissances. Attention, ne vous survendez pas non plus, ce n’est pas le but.

Cela a un double intérêt pour moi : montrer quelles sont vos compétences et laisser moins de temps à votre interlocuteur de parler des technos que vous maitrisez moins 😛.

Les sujets non maitrisés

A propos des sujets que vous ne maitrisez pas : soyez honnête ! N’essayez pas d’entourlouper la personne en face de vous, ça n’a aucun intérêt de vendre des compétences que vous n’avez pas. Si vous la personne en face comprend que vous ne maitrisez pas du tout ce dont vous parlez, ça risque de l’agacer et être rédhibitoire pour la suite de l’entretien, si vous arrivez à faire illusion, une fois en poste vous allez avoir du mal et ça va vite se voir.

Encore une fois, double intérêt : l’honnêteté est toujours appréciée (est-ce que j’ai envie de travailler tous les jours avec quelqu’un qui n’est pas honnête ? probablement pas) et ça permet d’évacuer vite le sujet et de passer plus de temps sur vos atouts 😉.

Conclusion

Outre tous les conseils classiques que vous pourrez trouver un peu partout ou que vous aurez vu pendant votre formation, ces conseils “pratiques” vous permettront, je pense, de vous démarquer en tant que débutant/junior. C’est un peu d’investissement, mais clairement ça sera rentable.