Revenir au site

Culture générale tech à destination des recruteurs

Par Marie Hernandez et Benjamin Morali

Hello les colibris,

Pour ce premier meetup de l’année, nous nous sommes plongés dans l’univers de la tech avec Marie Hernandez et Benjamin Morali

Avec Benjamin et Marie, nous sommes partis du constat qu’il est important de comprendre l’univers des personnes que nous recrutons et des collègues avec qui nous échangeons au quotidien. Ici, l’univers des développeurs ! 

Client vs Serveur

En informatique, il y a ce que l’on voit - ce qui s’affiche sur nos navigateurs web, sur nos applications mobiles - c’est le frontend. Et une immense partie que l’on ne voit pas, tout ce qui touche au backend, aux bases de données, aux serveurs… 

Le côté CLIENT (ce que l’on voit) communique avec la partie SERVEUR (ce que l’on ne voit pas) à travers des API - interfaces qui permettent de faire communiquer deux applications, par exemple le back et le front. 

Lors du meetup, nous avions pris l’exemple d’Instagram

Admettons que Benjamin veuille publier une vidéo en story, il va ouvrir l’application sur son téléphone, prendre la vidéo, ajouter des tags et cliquer sur “Publier”. Jusque là on était sur le frontend. Après l’action “Publier”, c’est le backend qui entre en action, il se passe plein de choses que l’on ne voit pas : le frontend d’instagram va envoyer des données au backend d’instagram via leur langage commun qui est l’API. Le backend va recevoir la vidéo, les tags, l’heure de publication, la liste des destinataires… plein d’infos et il va en faire plein de choses ! Par exemple, il va les stocker en base de données, puis Instagram va envoyer des notifications aux contacts de Benjamin pour leur dire “Benjamin vient de publier une story”... 

Langages

Maintenant qu’on a dégrossi le sujet, comment nous - humains - pouvons-nous communiquer avec la machine ? Avec des langages de programmation. On va retracer ensemble l’histoire des méthodes et langages de programmation.

A partir des années 1950, on utilise des langages dits “bas niveau”, parce qu’ils parlent à la machine, c’est l’humain qui parle en langage machine pour qu’elle donne des résultats. Le bas niveau nous permet d’obtenir des résultats de la machine mais c’est long et très illisible pour l’Homme. Assez rapidement, dans les années 1970, on voit apparaître des langages plus haut niveau et la Programmation Orientée Objet (POO) qui vont être beaucoup plus intelligibles pour nous humains et vont nous permettre de parler plus “produit” à la machine. 

Ces langages de programmation plus haut niveau vont avoir différentes attributions :

  • On peut s’en servir pour les objets connectés (montres, drônes, casque VR…), souvent avec du C++.
  • Pour faire du web, à partir des années 1990. On va distinguer le client lourd du client léger. Le 

client lourd est un logiciel qu’on va télécharger sur notre machine, par exemple développé en Java, en C#... Le client léger se consulte directement sur nos navigateurs web, et va être développé souvent en JavaScript…

  • Et pour développer des applications mobiles, notamment à partir de 2005/2006 quand on voit exploser le marché des smartphones. Aujourd’hui il y a 

deux langages majeurs dits natifs en développement mobile : Swift pour développer des applications iOS (Apple : iPhone), et Kotlin pour développer des applications Android (Google : Samsung, Huawei…). Il existe également des langages hybrides (ou crossplatform), qui vont nous permettre de développer à eux-seuls des applications iOS et Android - par exemple React-Native, Flutter… 

Frameworks

Le framework d’un langage va nous donner un cadre pour ne pas réinventer la roue à chaque nouveau projet. Voici les frameworks les plus utilisés actuellement, certains vont nous permettre de faire plutôt du frontend (ce qu’on voit), beaucoup en JavaScript (React, Angular, Vue..) et d’autres seront plutôt pour le backend (ce qu’on ne voit pas). 

Bonnes pratiques

Des bonnes pratiques, il en existe de différentes sortes ! Nous avons pris le parti de revenir en particulier sur trois d’entre elles : 

  • Les tests ! 

A l’ajout d’une nouvelle fonctionnalité, il est fréquent que d’autres fonctionnalités déjà présentes créent des problèmes. La mise en place de tests automatisés va donc permettre au développeur de vérifier que son code fonctionne comme prévu et en toutes circonstances. Il en existe différents types : unitaires, fonctionnels, d’intégration… L’idée principale étant d’imiter le comportement d’un utilisateur afin d’éviter les bugs lors de la mise en production et de s’assurer que l’application agira correctement.

  • La code review, ou revue de code !

 C’est une relecture du code d’un dév par un autre dév. Comme en français, on peut faire des fautes de frappe, d’orthographe, de grammaire… Cette vérification humaine, combinée à la mise en place de tests, permet d’éviter la majorité des erreurs.

  • Dernier point, et pas des moindres, le versionning ! 

Avec git, les développeurs vont pouvoir enregistrer et partager leur code. Comme dans un “Google Docs”, l’outil sauvegarde le travail des développeurs, les historiques de modifications… et permet de “merger” (= fusionner) tous les codes des développeurs sur une branche commune (appelée master). C’est ce résultat final - la branche master - qui est mis en production et ensuite accessible sur le web et les app mobiles. 

L’entretien

Avant de vous laisser, on vous a préparé un récapitulatif de notre trame d’entretiens chez BENEXT. Nos échanges commencent par une présentation imagée de BENEXT ; un moment ludique pour comprendre les motivations et besoins du candidats ; on passe ensuite au détail de ses expériences, selon le déroulé suivant : 

 

Quelques questions / réponses que nous avons eu pendant le meetup :

Côté RH : 

A faire lorsque je suis en entretien avec un développeur ?

Savoir dire que l’on ne sait pas, c’est la base et c’est normal :) Poser des questions ouvertes, prendre note des réponses du candidat et ensuite regarder de quoi il s’agit. Ne pas hésiter à demander au candidat de vulgariser (cela nous permettra aussi de voir à quel point il est à l’aise à expliquer son sujet). 

Comment mieux me former pour réussir à identifier les bons profils ?

  • Comme pour la première question, prendre des notes des termes techniques que vous entendez en entretien et regarder de quoi il s’agit :) 
  • Participer à des meetups ! Cela vous permettra de démystifier certaines notions techniques tout en rencontrant de potentiels futurs candidats.
  • Questionner les développeurs de votre entreprise, n’hésitez pas à les suivre 1h ou 1/2 journée de temps en temps pour voir comment se passent leurs journées (c’est le meilleur moyen de bien comprendre en quoi consiste leur métier et les différentes missions). 

 

Côté tech :

Framework / Librairie, c’est quoi la différence ?

Le framework donne un cadre dans lequel développer. La librairie (bibliothèque) est un ingrédient qu’on va pouvoir ajouter à notre code, elle va venir compléter / renforcer le framework. 

J'ai entendu parler de langages no-code, est ce que cela signifie que l'on ne code plus ?

Oui et non. Dans le cadre idéal oui mais souvent on a à toucher du code. On peut voir le no-code comme un meuble prêt à monter. Wordpress - qui est un CMS - peut être assimiler à du no-code mais dès qu’on veut le personnaliser, il faut coder. 

 

Pour conclure :

Notre ambition à travers ce meetup (et cet article) était de vous partager les connaissances qui nous ont été utiles à nos débuts dans le recrutement et l’accompagnement de développeur.ses ! Nous espérons avoir pu vous éclairer un peu 💡 

Comme dans beaucoup de métiers, la plupart des développeurs que vous rencontrerez seront passionnés par ce qu’ils font ! Quelques connaissances sur leur sujet et leur univers devraient vous faire gagner des points (et vous faciliter la tâche dans votre sourcing) ! 

Si vous avez des questions, nous nous ferons un plaisir d’y répondre ! Et - pourquoi pas - d’organiser une nouvelle rencontre pour approfondir certains points 🙂 

 

Tous Les Articles
×

Vous y êtes presque...

Nous venons de vous envoyer un e-mail. Veuillez cliquer sur le lien contenu dans l'e-mail pour confirmer votre abonnement !

OK