Depuis le 15 avril, près de deux millions de personnes ont regardé une vidéo mise en ligne par l’ingénieur logiciel de 24 ans Namanh Kapur : “Comment j’apprendrais à coder (si je pouvais recommencer)”.
Les promesses de cette présentation populaire sont évidentes : pour un nouveau développeur, quels sont les éléments de programmation que vous devez vraiment connaître ? Et avez-vous vraiment besoin d’un diplôme en informatique de quatre ans pour lancer du code ?
Dans une interview par e-mail cette semaine depuis son domicile à Houston, Kapur a décrit l’audience massive comme “insensée” et “quelque chose que je n’aurais jamais pu prédire”. Mais il pense également que la vidéo répond à un réel besoin dans le monde d’aujourd’hui. “Je pense que beaucoup de gens s’intéressent au codage et au génie logiciel mais ne savent pas par où commencer… C’est pourquoi ma vidéo les a touchés.
“Je pense aussi que la pandémie nous a obligés à rester à l’intérieur pendant de longues périodes et cela a donné aux gens beaucoup de temps pour grandir et s’améliorer.”
Kapur seulement a débuté la chaîne YouTube il y a cinq mois, explorant des sujets tels que “Les avantages du génie logiciel qui comptent vraiment” et “Pourquoi j’ai étudié l’informatique (et vous devriez aussi).”
Mais le public a le plus répondu aux conseils perspicaces de Kapur sur comment pour devenir programmeur, le tout densément emballé dans une prescription concise de 13 minutes qui se termine par des conseils de pratique pour vos tout premiers entretiens de codage.
Et il examine également comment nous nous préparons aux carrières en programmation d’un point de vue agréable et nouveau : avec un recul glorieux de 20/20.
Kapur dit que les commentaires qu’il a reçus ont été “positifs” et “réconfortants”. Mais il y a une réaction qui a été particulièrement gratifiante : “Les personnes qui ont dit ma vidéo les ont convaincues de franchir le pas et de commencer leur voyage en génie logiciel ou en codage….
“Je pense que le codage est une compétence universelle que tout le monde devrait connaître, donc je suis ravi que de plus en plus de gens cherchent à commencer leur voyage.”
La route non empruntée
La propre expérience éducative de Kapur était riche et complète, à en juger par son profil LinkedIn. Kapur’ est diplômé de l’Université Rice avec une maîtrise en informatique, puis a effectué des stages en génie logiciel chez Schlumberger et Microsoft, ainsi qu’une bourse d’ingénierie chez Kleiner Perkins.
Depuis juin 2020, Kapur est ingénieur logiciel dans la société de paiement en ligne Bolt (qu’il décrit comme une startup à forte croissance). Un CV en ligne montre qu’il s’est même classé premier dans deux des hackathons internes de Bolt.
L’une des premières choses que la vidéo de Kapur souligne est qu’il ne faut pas un bootcamp ou même un diplôme universitaire pour devenir programmeur. “C’est certainement plus difficile, mais si vous êtes prêt à vous mettre au travail, vous pouvez certainement apprendre à coder par vous-même.”
« En fait, si je pouvais revenir en arrière, je ne connaître si j’étais allé à l’université », a-t-il dit
Comme l’explique la description de la vidéo, “Si je pouvais recommencer, je passerais plus de temps à faire des projets pratiques plutôt que de me concentrer sur la théorie.”
Mais même avant cela, le premier conseil de Kapur dans la vidéo est “Adoptez un état d’esprit de codage” – c’est-à-dire simplement croire que chaque bogue a Une solution qui attend d’être trouvée avec un peu de patience et de persévérance.
Kapur avertit que cet état d’esprit conduit également inévitablement à rechercher des solutions à des problèmes courants tels que des grille-pain cassés ou des modems Internet clignotants – mais c’est une sorte de superpuissance, qui amènera vos amis et vos proches à vous demander une assistance technique.
“Il m’a fallu des années pour réaliser que tout le monde n’est pas comme ça”, explique Kapur dans la vidéo. Ainsi, bien que vos parents perplexes puissent Google aussi bien que vous, “ils ne le font pas croire ils peuvent. Et pour être codeur, il faut croire vous pouvez, comme une vérité fondamentale.
“Parce que lorsqu’il est 4 heures du matin et que vous travaillez sur une tâche de programmation, et que vous avez tout essayé mais que vous n’arrivez toujours pas à comprendre le bogue, la seule chose qui vous permettra de continuer est de savoir qu’il existe une solution. Vous avez juste besoin de le trouver.
La vidéo de Kapur conseille également l’humilité – se souvenant du jour où il a cessé de blâmer son ordinateur et a admis que son code était bogué. “La seconde où j’ai reconnu cela et vraiment intériorisé, c’est le jour où j’ai commencé à grandir dans mon parcours de codage.”
« Il n’est pas nécessaire d’être un bon informaticien pour être un bon codeur. Mais vous devez être un résolveur de problèmes décent.
Mais cela implique également une volonté d’apprendre, un autre aspect clé de l’état d’esprit de codage. Dans la vidéo, Kapur partage que son expérience dans diverses entreprises lui a appris une chose : qu’il y a toujours une nouvelle pile, toujours une nouvelle langue à apprendre, ou un tout nouveau paradigme ou plate-forme.
“Lors des hackathons, mes coéquipiers voudraient utiliser des mots à la mode comme ‘apprentissage automatique’ et ‘le cloud’ et je n’aurais aucune idée de ce qu’ils disaient. Mais je le découvrirais », a-t-il déclaré.
La conclusion de Kapur ? « Il n’est pas nécessaire d’être un bon informaticien pour être un bon codeur. Mais vous devez être un résolveur de problèmes décent.
À partir de là, il n’y a qu’un petit pas vers l’apprentissage des structures de données comme les tableaux et les cartes de hachage, ainsi que l’ordre de base dans lequel le code est exécuté (et comment il est affecté par les opérateurs logiques et les boucles), éventuellement vers les principes de base de la programmation orientée objet.
“À mon avis, ce sont les sujets les plus productifs”, a-t-il déclaré.
Mais en tant qu’étape distincte, Kapur recommande également d’apprendre les scripts, pour les tâches quotidiennes onéreuses telles que renommer des fichiers ou manipuler des données. “Ou parfois vous voulez juste écrire du code pour produire code.” Kapur fournit l’exemple d’un script rapide qui génère des chaînes de requête SQL pour une base de données interne.
Ce code quotidien n’a pas besoin d’être exécuté derrière une application Web à part entière, mais sa création améliorera encore vos capacités.
“Avec un état d’esprit de codage, vous disposez désormais d’un outil pratique pour résoudre certains de vos problèmes quotidiens.” Et Kapur propose également un conseil plus spécifique : choisissez un langage de programmation pour apprendre en profondeur.
Apprentissage par la pratique
Pour une expérience plus pratique, la vidéo de Kapur recommande également de participer à des hackathons. “Vous apprendrez beaucoup, vous travaillerez avec d’autres personnes et cela vous donnera un avant-goût de ce à quoi ressemble le génie logiciel dans la vie réelle…
“Sauf que les projets de génie logiciel réels ne sont pas terminés en 48 heures et que vous devez en fait tester votre code. Et tu n’es pas aussi privé de sommeil.
Mais vous obtenez l’expérience de livrer un produit fini aux clients – dans ce cas, vos juges. “La meilleure façon d’apprendre la programmation est de Faire», souligne Kapur. “Et idéalement, vous travaillez sur quelque chose qui vous passionne.”
“Alors choisissez un sujet qui vous intéresse et construisez quelque chose.”
La dernière étape pour les nouveaux codeurs ? S’entraîner pour les entretiens de codage qu’ils rencontreront inévitablement sur leur chemin vers un emploi d’ingénieur logiciel à temps plein.
Il y a des livres pour aider. Kapur recommande “Elements of Programming Interviews in Python” et propose une liste de sujets susceptibles d’être abordés. Il existe même des sites qui vous mettent en relation avec un partenaire pour simuler des entretiens à tour de rôle.
Mais l’une des choses que je préfère dans la vidéo est la façon dont elle combine des conseils pratiques sur quoi et comment apprendre avec l’expérience vécue dans le monde réel d’un programmeur en exercice.
Tout en recommandant des études sur les algorithmes de récursivité et de tri, Kapur note l’une des ironies du codage des entretiens d’embauche. « Des chances que vous utilisiez tout cela au travail réel ? Proche de zéro. Avez-vous des chances de voir ces concepts dans des interviews ? Assez élevé.
La vidéo de Kapur recommande également de se familiariser avec les outils utilisés dans les environnements de développement réels – et à ce stade, Kapur se tourne vers les interfaces textuelles des fenêtres de terminal. Quand Hollywood montre des hackers dans des films regardant des écrans noirs avec des personnages compliqués “La seule chose qu’ils ont bien compris, c’est qu’ils utilisent le terminal.”
«Je vous promets que tôt ou tard, vous devrez vous familiariser avec le terminal. Alors autant commencer maintenant.
Et alors que la vidéo touche à sa fin, Kapur offre à son public de programmeurs en herbe un mélange d’enthousiasme et d’encouragement.
« Je ne peux pas dire que le voyage sera toujours rose. Mais je promets que ce sera épanouissant.