Apprendre à coder ? Pour les néophytes.

Apprendre a coder

Le développement vous intéresse mais cela vous semble inaccessible ? Vous voulez apprendre à coder mais ne savez pas par quoi commencer ?

Peut-être avez-vous déjà un job et vous pensez être trop vieux pour vous y mettre ? Ou au contraire vous vous demandez si le développement informatique pourrait devenir votre métier ? 

Si vous êtes là, vous vous posez sûrement des questions. Sachez qu’être ici c’est déjà avoir fait un premier pas et que maintenant vous allez vouloir passer à l’action.

Mais d’abord vous voulez savoir de quoi il recèle, par quel miracle vous pourriez un jour devenir développeur. La marche n’est pas si haute. Permettez-moi de vous rassurer, vous pouvez y arriver. 

Pas besoin de sortir de Saint-Cyr, pas besoin de diplômes. Je vais tenter de vous apprendre la meilleure des méthodes pour y arriver.

Je vais démystifier le développement, vous démontrez que quiconque peut en faire son métier, s’il le veut vraiment.

Le monde n’a jamais été aussi connecté, que ce soit notre domicile (volets roulants, lumières intelligentes, assistants personnels), nos voitures (GPS évolués, communications entre voitures, LIDAR, mises à jour Over the air), nos « extensions » technologiques (Smartphones, tablettes). 

Pour vulgariser tous ces appareils possèdent des logiciels, des interfaces qui sont programmables. Ce qui signifie que vous pouvez travailler avec eux et développer des logiciels en tirant parti.

Le développement informatique dépasse la simple création de pages web, le développement informatique est omniprésent. Et vous, vous pouvez apporter votre pierre à l’édifice. Ouai, dis comme ça, ça fait très pompeux.

Si vous aussi vous voulez un jour avoir votre application disponible sur votre smartphone, et celui de votre voisin, vous savez ce qu’il vous reste à faire.

Coder ???

Petite précision avant toute chose, le titre fait appel au verbe « Coder« , uniquement dans un but de SEO. Faites-moi plaisir et rayez-moi ce mot de votre vie avec les termes programmeur et informaticien, il en va de la survie de notre espèce ! Nous sommes des développeurs on parle de développer 😘. P.S: Il y a bien une différence entre tous ces termes, surtout dans le monde Anglo-saxon, beaucoup en France. Pour les anglophones je vous conseille cet article de Scott Hanselmann sur les différences : A Coder, a Programmer, a Hacker, a Developer, and a Computer Scientist.

Dans une entreprise, chez vous ou à l’autre bout du monde

Digital nomad pour les développeurs

Ok, ok, faire une application c’est bien, mais pouvoir le faire d’où on veut c’est encore mieux.

Vous avez déjà entendu parler de Digital Nomad, du nomadisme numérique ? Non ? On passe ça en revue.

Imaginez-vous à Dublin, profitant d’une bonne bière dans un Pub, quoi de mieux au monde ?

Mais les vacances c’est un peu court et vous auriez bien été voir le Connemara, c’est là que vous remarquez que vous avez pensé à prendre votre PC portable et avez accès à la 4G. Fantastique !

Un coup de fil, et quelques arrangements plus tard et vous pouvez profiter du lac tout en travaillant.

Le métier de développeur, n’impose pas, dans la plupart des cas, de postes sédentaires. Ils le sont par nature et par facilité, mais rien ne vous oblige à choisir cette solution-là.

De plus en plus de sociétés vous permettent aussi de faire du télétravail, de bosser de chez vous. Et si vous êtes Freelance, la liberté de lieu est un acquis.

Je vous invite à écouter le premier épisode du podcast « Software Engineering Unlocked » où une salariée travaille dans une boîte (CodePen en l’occurrence) en Full Remote. Pas de bureau, les salariés bossent d’où ils veulent.

Bien sûr certains vont préférer et aimer travailler de chez eux, et c’est plaisant – j’arrive personnellement à être plus productif de cette manière. D’autres au contraire vont saisir l’opportunité de pouvoir « voyager » tout en travaillant. Le luxe c’est d’avoir le choix.

Trouver un job c’est la galère

Hé oui c’est la crise ma bonne dame, enfin pas dans tout les secteurs.

coder - beaucoup de poste à pourvoir pour les développeurs

Vous avez entendu parler de plein emploi et croyez que c’est comme les leprechauns, le seul moyen de le trouver c’est au pied d’un arc-en-ciel ? Bonne nouvelle, avec le développement informatique c’est tout comme. 

À l’heure où j’écris ces lignes 22175 offres sont disponibles dans la catégorie Informatique de l’APEC. Alors bien sûr on n’a pas que du développement : Chef de projets, Administrateur systèmes, Technicien support, etc… Mais je peux vous assurer que sur tous ces offres, au moins 1/3 concerne directement un poste de développeur.

Et encore je ne suis pas allé sur le site de Pôle Emploi, LinkedIn et compagnie. 22175….

N’allez pas croire que c’est facile, et qu’il suffit de claquer des doigts pour y arriver, mais avec un peu de sérieux et un bon mentorship rien ne vous arrêtera.

Se perdre n’est pas une fin en soi

Apprendre à coder même si l’on s’est perdu en chemin

Rien ne m’était destiné à faire du développement, bien sûr j’aimais l’informatique mais entre monter des PC et faire du développement il y a un gap !

Mon parcours à défaut d’être atypique, le démontre plutôt pas mal : élève plus que moyen (disons-le mauvais), 2 tentatives de brevets, un bac STI électronique décroché à 2 points près (sur 720!), un BTS Informatique et réseaux option Administrateur réseau obtenu en 3 ans (ok j’étais peu présent la première année et les 2 autres je les ai survolé tellement tout me paraissait simple). 

3 ans durant lesquels j’ai eu quelques des profs exécrables m’ayant franchement dégoûté du développement.

Mais après ce BTS il a fallu se décider, s’insérer dans le monde du travail ou continuer.

Je préfère être direct, même si j’ai survolé mon BTS, une simple formalité, le fossé entre les compétences acquises durant ce cursus et la réalité me paraissait gigantesque.

Du coup, rebelotte, 3 années de Master en plus, quand tu ne supportes pas l’école s’est compliqué. Mais même à l’issue de ces trois années j’étais toujours branché sur le fait de devenir Administrateur Réseau. 

J’insiste mais, même si c’est lié à l’informatique et qu’une culture générale de l’IT (Technologies de l’information) est un très gros plus, le développement n’est pas de l’administration de réseau.

Fin d’étude en recherche d’un stage type de pré-embauche, dans une région pas très dynamique à l’époque sur la partie réseau, compliqué…Au point de postuler pour un stage de développement. 

Bien sûr j’avais quelques bases, mais rien, rien ne pouvait me préparer à ce que j’allais faire. Rien.

Et vous non plus.

Un saut dans le void

Le métier de dév n’est pas différent de la plupart des métiers, comme tous, il y a un début, et ça peut-être très casse gueule, car les choses qu’on vous a apprises ne sont pas celles qui rentrent en ligne de compte.

Apprendre une syntaxe on s’en fout, apprendre un langage de développement en particulier, connaître des patterns de développement….

Les seules choses qui rentrent en compte c’est l’envie, l’adaptabilité, l’apprentissage. Rien n’est jamais acquis, le développement c’est organique, c’est vivant. 

Je vous ai fait peur ? Vous vous dîtes que le gars a avalé trop de films de Cronenberg ?

De la gratification de toucher son travail

Je ne sais pas pour vous, mais personnellement je ne suis pas un artiste, je n’ai pas de talent particulier, je chante mal – mais souvent. Je ne risque pas de composer, le solfège je ne sais même pas ce que c’est et même si j’essayais de dessiner un smiley, pas sûr qu’il soit rond.

Bref, ce dire que le développement s’apparente à de la création, et qu’on compose avec des gammes aux possibilités infinies ça fait quelque chose.

De ce dire que notre travail peut participer au bien commun (je vous assure je ne suis pas gourou, du moins pas encore) ça émeut.

C’est ça être artisan développeur ! (Bravo le marketing)

Coder vous donne un but, un sentiment d’accomplissement

Plus sérieusement, le fruit de votre travail finira dans les mains d’utilisateurs, de collègues, de connaissances, il ne sera pas vain et le simple fait de se dire un jour : 

Ça y est j’ai poussé le dernier le commit, plus qu’à builder et déployer la stack dans le swarm et la V1 sera en Prod.

Ce sera une grosse victoire. Ah, et si vous n’avez rien pipé, ça viendra !

Le développement touche tellement de domaines, d’appareils, de techniques, tellement vaste que chacun peut y trouver son compte. Et le pire c’est qu’une fois à l’aise, changer de domaine, de « type » de développement, de langage, c’est possible. 

La singularité de ce job c’est que la plupart des non-initiés ne le comprennent pas et peut-être que vous-même ne le comprenait pas, et ça ce n’est pas grave, c’est pour ça que vous êtes là après tout.

…donc comment on fait ? 

Je ne vais pas réuser de ce proverbe, rouillé comme la lame censée être forgée mais la pratique est le seul moyen de rentrer dans le concret. 

Les cours « scolaires » sont au mieux dispensables, les cours ciblés ne le sont que trop et ne seront utiles qu’une fois que vous aurez une direction (et ils auront alors un sens pour vous).  

Le vrai frein c’est la variété de l’offre, les langages, les plateformes, les frameworks, l’informatique de manière générale. Des bases sont nécessaires à l’appréhension du développement dans son ensemble.

Sans vision d’ensemble, sans compréhension de l’écosystème, vous allez rentrer dans un moule. Vous allez prendre la forme des premières connaissances que vous allez acquérir, vous aller vous conformer au langage ou au framework que vous utiliserez.

Vous ne devez pas faire ça.

Tout est histoire de choix et de contexte, comme je vous l’ai dit plutôt l’offre en développement est pléthorique. Il y a une raison derrière cela, il est très – très – rare de voir deux descriptions de postes de développement similaires.

Pléthorique ?

Oui car le développement de la version Windows de Spotify, n’est pas la même chose que le site web de twitter, ou que le développement d’un système bancaire…

Les technologies et les contraintes diffèrent.

Aujourd’hui vous n’avez peut-être pas encore d’avis ou de préférences mais ça viendra.

Mais allez, même avec un doigt dans l’œil, j’imagine qu’une grande partie d’entre vous voudra faire soit du web, soit des applications mobiles !

Je vous blâme pas. Tout le monde ne veut pas faire des applications décentralisées sur Ethereum pour exploiter la Blockchain ou faire du Machine Learning ou de l’Intelligence Artificielle avec python pour trouver la réponse à : Quel est le sens de la vie ? (P.S: L’IA n’existe pas)

Je me répète mais si vous ne comprenez pas ce charabia, ce n’est pas grave, au contraire, c’est plutôt bon signe. Vous êtes encore pure !

Maintenant, on prend sa souris, son clavier et on attaque !

Les clés : envie, adaptabilité, apprentissage

Je devrais rajouter, d’entrée, la persévérance, car quoi que vous envisagez, vous DEVEZ persévérer. 

N’attendez pas un cours de développement personnel, ce n’est que du bon sens, vous êtes l’acteur de votre changement et chaque étape, chaque palier est une épreuve. La persévérance c’est ce qui sépare l’échec de la réussite.

Comprenons-nous bien l’échec est inévitable, c’est une partie du processus, et il va revenir.

La persévérance, c’est continuer, échouer, recommencer, jusqu’à la réussite.

Ça paraît con, ou simple, mais c’est plutôt le contraire.

Il est difficile de se mettre en position de pouvoir échouer, et il faut être suffisant intelligent pour pouvoir en tirer des conclusions, corriger le tir, se réorienter pour enfin réussir.

L’envie, c’est ce qui vous drive, c’est ce qui le matin vous met le pied à l’étrier et qui est intimement lié à l’apprentissage. L’envie d’apprendre, de réussir, de se surpasser, mais surtout l’envie d’accomplir ce qu’on pensait impossible jusqu’alors.

L’adaptabilité, bordel, ça c’est important. Même si ça ressemble à un truc chiant collé en plein milieu de la liste. 

Du coup, c’est quoi l’adaptabilité ? Pour un dev, ça va être la capacité à pouvoir être mis sur des projets aux technologies différentes ou dans un contexte métier compliqué (bancaire, santé) avec des règles contraignantes.

L’apprentissage c’est vaste, c’est aussi ce qui différencie le dev de bien d’autres métiers, et surtout ce qui différencie un bon développeur d’un mauvais (pas uniquement hein 😉 ). Vous devrez constamment apprendre. Si apprendre vous emmerde, passez votre chemin.

Des compétences qui évoluent

Que ce soit de nouveaux langages de programmation ou des frameworks qui ont la cote, votre envie et l’environnement évoluera et vous voudrez acquérir ses nouvelles compétences.

Par exemple l’avènement de Docker et/ou Kubernetes a participé à amplifier la mouvance DevOps, qui demande au développeur d’acquérir des compétences d’opérationnels (Administrateurs systèmes et réseau).

Vous l’aurez compris devenir développeur se fait par étapes. 

Vous écouterez souvent des gens dire d’eux-mêmes avec un ton pseudo-hautain « Je suis un autodidacte », j’espère dans ce cas que vous le dîtes aussi, car vous l’êtes. Pratiquer le développement ou même l’utilisation de l’informatique de manière générale ce fait de manière autodidactique.

Bien sûr, on a parfois besoin de conseils, de formations, d’aide de manière général, mais au final la moindre « fonction », le plus simple programme, peut être écrit de milliers de façon différente et arriver au même résultat.

Ce qui sépare le départ de l’arrivée est unique.

Ne pas sauter les étapes

Certains se jettent dans le développement avec une cible (ex: faire un site), c’est très bien, mais ne pas sauter les étapes c’est encore mieux.

Avoir une connaissance générale est un pas important qui vous aidera à mieux aborder le développement.

Commencez par cela : acquérir une compétence minimum de l’informatique.

  • Qu’est-ce qu’un système d’exploitation ?
  • Comment fonctionne un site web ?
  • Qu’est-ce qu’un framework ?
  • C’est quoi une base de données SQL ? une fonction ? Des instructions

Et un langage de programmation c’est quoi ? Ai-je besoin d’être trilingue ?Frontend, Backend, Fullstack ? Reggaeton ? 🥵

Ceci n’est pas une checklist et si vous ne savez pas y répondre c’est très bien, mais si un jour vous progressez et revenez sur cet article, et vous vous rendez compte que maintenant tout cela est clair pour vous, je peux vous assurer à 100% que vous serez fier du chemin parcouru.

Quand on y prend goût

Après vous rentrerez sur des sujets plus spécifiques en lien avec votre « spécialisation » :

  • C’est quoi une PWA ?
  • Pourquoi les microservices ?
  • Quel est l’avantage entre un site web et une application mobile ?
  • Docker Swarm vs Kubernetes ? Lequel vous convient ?
  • Développé en Natif ou choisir un framework cross-platform ?
  • Pourquoi .Net Core envoie du pâté ?
  • Cycle en V vs Agilité ? C’est quoi le mieux ?

Il y a une infinité de possibilités, de questions, d’orientations. Le développement est une ressource intarissable. Je suis ici pour vous éviter la noyade.

La raison de ce blog est de permettre à chaque personne de se lancer dans le développement informatique.

Si tout ça vous intéresse et qu’il y a des sujets que vous souhaitez que j’aborde, alors envoyez-moi un mail à romain@randomdev.fr. Progressez avec ce blog, et ce blog progressera avec vous.

N’hésitez pas à commenter et à partager cet article.

3 commentaires sur “Apprendre à coder ? Pour les néophytes.

  1. Très bon article sur le ressentis des devs 🙂

    Je pense quand même que certains lecteurs attendent au moins une réponse partielle en rapport avec le titre.
    Peux tu donner une feuille de route pour débutant ? je pense notamment par quel langage commencer (pour du web, pour une appli desktop ou encore pour une appli mobile).

    Personnellement, pour du web, ce serait les classiques HTML, CSS, PHP, SQL et JS, dans cet ordre pour mon cas parce que je déteste JS mais qu’il faut quand même le connaitre.

    Ensuite, mes préférences sont Python, C#, Xamarin, travaillant beaucoup avec Visual Studio, cela permet de faire facilement des appli desktop et mobile simplement avec ce minimum de connaissance.

    J’ai envie de tenter l’aventure du jeu, donc je suis en train de chercher ce qui serait le mieux, il y a des chances que je me tourne vers Unity 3D au début avant de me lancer sur du Unreal Engine, logique avec l’utilisation de VS est des connaissances déjà acquises. Mais comme toi, je ne suis pas un créateur né, et ma dernière fille dessine bien mieux que moi 😀 Donc je ferais certainement des personnages avec une tête triangulaire… parce que rond ou carré c’est d’un banal !

    Tu parlais de Fluttr sur un article invité, je n’ai pas testé donc je ne peux pas critiquer, mais en général j’essaie d’utiliser le moins de framework, de librairie possible pour me concentrer uniquement sur les fonctions natives d’un langage. Est-ce que c’est bien ou mal, chacun voit midi à sa porte 😉 Et il est vrai que l’argument principal du gain de temps est en règle général toujours d’actualité même s’il faut un moment pour appréhender le machin.

    En tout cas je t’encourage à continuer, pour une fois qu’on ne parle pas de tutos avec des bouts de code dans tous les sens, c’est top 😉 @ bientôt.

  2. Merci pour ton commentaire👍, et tu as raison il faut que je m’attelle à la suite…à savoir guider les gens vers une feuille de route.

    Et comme tu le soulignes, le HTML, CSS, pour du Web c’est la base. C’est par là que je vais commencer, je suis en train de préparer une « formation » vidéo pour créer un premier site HTML Responsive.

    Pour le PHP je laisserais ça à d’autres, n’ont pas que je n’aime pas, mais je suis aujourd’hui bien plus habitué à faire des SPA avec Angular avec du .Net en Backend que je ne serais pas le plus pertinent là-dessus.

    Je comprends tout à fait ton point sur les Frameworks, en temps normal je préfère partir sur du natif pure, surtout quand il y a de fortes interactions avec des API de bas niveaux.

    Mais pour le coup, sur mobile, une très grande majorité des apps, n’exploite pas le smartphone, et je trouve que Flutter est une super alternative, et j’adore la syntaxe…sans vraiment savoir pourquoi 😀.

    Merci encore et à bientôt.

  3. Salut l’ami, je passe par ici parce que j’ai lu ton billet sur « Flutter » que tu as écris sur le blog de . Et effectivement tu n’as pas menti, ton blog est aussi vide que ton frigo MDR ! Enfin ça je ne n’en sais rien, je me fie seulement à tes dires ! 🙂
    J’ai beaucoup aimé ton article et j’en ai retenu que si certains langages sont tout objet, Flutter est tout widget. 🙂 Plus sérieusement, je l’ai trouvé fort intéressant. Même pour quelqu’un comme moi de totalement étranger au dev mobile. :). Tu as l’air vraiment passionné par le sujet.
    Pour ce qui est de ton article à toi, sur ton blog à toi 🙂 . Je le trouve lui aussi pertinent. 🙂
    En espérant te voir publier plus de contenu à l’avenir.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut