Savoir coder | Et le monde est à vous

Rédigé par Hugo Beisser, 22 ans, étudiant à EPITA.



Dans un monde où l’ordinateur et les logiciels sont rois, très peu savent coder. Et si cette incapacité à créer, qui réduit aujourd’hui l’écrasante majorité à l’état de simples consommateurs du numérique, nous rendait à l’avenir, manipulés et dépendants du système ?

« Chacun devrait apprendre à programmer un ordinateur, parce que c’est comme apprendre à penser. » disait Steve Jobs. Avec l’arrivée de nombreuses plateformes de cours en ligne dédiées à la programmation et l’introduction progressive des langages informatiques dans le cadre scolaire, la tendance actuelle semble se rallier à l’avis de l’ancien directeur général d’Apple.

Alors quels grands défis la maîtrise de la programmation permet-elle de relever ? Véritable tremplin professionnel mais également un moyen de mieux comprendre le monde de demain, comment s’y lancer sans aucune connaissance au préalable ?

Avant de plonger dans le vif du sujet, il est important de comprendre pourquoi on parle désormais d’un « monde numérique ».



code


Hello world !

Êtes-vous en train de lire cet article sur votre smartphone ? Peut-être que vous avez préféré vous installer plus confortablement devant l’ordinateur ? Dans les deux cas vous utilisez probablement Firefox, Chrome ou bien Safari, et il y a de fortes chances pour qu’aujourd’hui vous alliez vérifier vos e-mails ou utiliser un moteur de recherche.

Aujourd’hui, une grande partie de votre vie est stockée en ligne, que ce soit votre parcours professionnel sur LinkedIn, votre dossier médical dans plusieurs bases de données, où encore vos commandes passées sur Amazon.

En se dirigeant vers l’extérieur, les voitures actuelles embarquent un ordinateur de bord, elles sont toutes assemblées en usine par des robots, et demain elles seront dotées d’intelligences artificielles complexes. Dans les airs, les avions se laissent porter par le pilotage automatique, communiquent entre eux, et à quelques centaines de kilomètres d’altitude supplémentaires, la station spatiale internationale (ISS) prend des photographies satellitaires et enregistre des données météorologiques.

Toutes les technologies citées plus haut dépendent de logiciels. Nous vivons littéralement entourés par le code, et très vite, des robots nettoieront vos maisons, vous verrouillerez vos portes avec des ordinateurs, des algorithmes seront en mesure de prédire les risques de santé, il sera possible de vivre dans des mondes de réalité virtuelle, tout ça ne faisant qu’augmenter cette quantité de code à l’avenir.



code


#1- Le code, un tremplin professionnel


Avez-vous déjà entendu parler de Big data, de Data mining ou de sécurité informatique ? Ces trois problématiques majeures du 21ème siècle en terme de numérique font que la recherche de compétences en code a explosé.

Cet article illustre bien la chose et met en lumière le fait que l’informatique est le secteur montrant le plus grand écart entre le taux d’embauche (élevé), et le nombre de demandeurs d’emploi (bas !). Le secteur IT peine donc à recruter, pendant que d’autres sont actuellement bouchés.

Et les compétences en programmation ne sont pas seulement pour les diplômés de l'informatique. En analysant 26 millions d'offres d'emploi en ligne, les chercheurs ont découvert que près de la moitié des emplois les mieux payés (un minimum de 57.000 $ par an) nécessitent un certain niveau de compétence en terme de code. Et cette tendance est susceptible de s’accentuer à l’avenir.

Voici les prévisions de croissance de l'emploi faites d’ici 10 ans:


tablo

D’après ces chiffres, le code est donc professionnellement parlant, un outil qui aide à la croissance, mais également un acteur garant de l’emploi.



code


#2- Programmer, une activité culturelle


Si nous voulons comprendre davantage l’importance du codage, il faudrait commencer par dégager celle-ci de son association quasi-systématique avec les machines. Le code n’est pas un simple outil, c’est une activité humaine, son but est aussi de développer une nouvelle forme de pensée.



Un des textes fondamentaux de l’enseignement de la programmation « Structure and Interpretation of Computer Programs » (manuel de base de la branche informatique au MIT jusqu’en 2008) énonce : “Le langage informatique n’est pas seulement un moyen de réaliser des opérations, mais plutôt un nouveau médium formel permettant d’exprimer des idées.”

Attention cependant à ne pas tomber dans la confusion en se posant les mauvaises questions. Par exemple, on est à côté de la plaque en se demandant si Barack Obama dirigerait mieux son pays si un matin en se levant, il était tout d’un coup devenu un as du code JAVA ou PHP. Formulons plutôt cela autrement :

Est-ce que Barack Obama - ou n'importe qui d'autre - pourrait prendre de meilleures décisions s'il améliorait sa capacité à penser en apprenant de nouvelles stratégies de résolution de problèmes et en développant une meilleure maîtrise de la logique ?



code


Voici à travers quelques exemples concrets, des aspects intéressants de code :

1) La représentation de l’esprit humain: l'intelligence artificielle, l'apprentissage automatique, la vision numérique autant de sujets qui font partie intégrante de la science informatique, mais également de la biologie, la psychologie et des mathématiques.

2) Les données : comment représenter l’information ? Comment est-ce qu'on modélise le monde réel, et l’univers tout entier ?

3) La résolution par algorithmes : Des stratégies générales comme "Diviser pour régner", ou comment décomposer un problème complexe de base en sous-problèmes simples à résoudre, pour arriver à une solution, ou l’heuristique qui consiste à fournir rapidement une solution approchée pour un problème que les algorithmes “classiques” mettent trop de temps à résoudre.

Alors, pourquoi ne pas se lancer ?


#3- S’initier au code sereinement !


Pour beaucoup, l’informatique représente une science obscure et réservée à une poignée de fins connaisseurs, souvent appelés les “geeks”. Heureusement, la réalité est très loin de ce stéréotype ! Alors dites adieu au petit binoclard boutonneux collé à son écran, aujourd’hui le code est accessible à n’importe qui de motivé.



code


Voici donc quelques pistes et conseils afin d’éclaircir les points essentiels qui permettent de bien débuter :

A) Choisir par où commencer...



La première question à se poser ? Avec quel langage débuter !

Il existe un nombre impressionnant de langages informatiques, certains se ressemblent, tandis que d’autres sont radicalement opposés. Globalement, il n’y a pas de meilleurs ou mauvais langages, le tout est d’en choisir un adapté à ce que l’on veut faire (web ou logiciel, analyse de données…). On peut commencer par là : HTML, CSS et JavaScript, quelle différence ?

Cette infographie qui résume de manière originale assez bien la chose, contient les principaux langages utilisés dans le monde aujourd’hui. De même avec cet article de WhoIsHostingThis, offrant également leur vision condensée sous forme graphique.



code


B) Quelques bonnes adresses.



Des sites comme Codecademy ou Code.org proposent des cours en ligne accessibles gratuitement. Vous en retrouverez plus dans cet article qui recense 5 plateformes pour apprendre à coder gratuitement.

Du côté des écoles d’informatique, il existe entre autres l’EPITECH pour les écoles payantes, ou bien l’école 42 de Xavier Niel, qui elle est gratuite.

Le web présente également un nouvel outil : les MOOCs, des cours mis en ligne et réalisés par des universités, notamment les plus prestigieuses, comme Harvard ou le MIT. Le portail Coursea en répertorie un grand nombre dans des domaines variés.



code


C) Les points importants, une fois lancé !



Une fois que le choix est fait, il ne reste alors plus qu'à prendre quelques bons réflexes...

Avoir un objectif



Programmer, c’est un peu comme parler une langue… Mais avec son ordinateur. C’est toujours plus motivant d’apprendre une langue étrangère à la suite d’une belle rencontre, de la même façon, vous fixer un objectif précis que vous pourrez remplir, tels que créer son site internet, développer une application mobile, etc… Vous aidera indéniablement.

Lire des livres et guides



Les livres sur la programmation ne manquent pas ! A l’heure où les supports traditionnels se dématérialisent, le support papier offre tout de même un vrai confort pour l’apprentissage.

Utiliser Google



Si vous rencontrez des difficultés durant votre apprentissage du code, soyez certain qu’une personne aura déjà rencontré les mêmes problèmes que vous. Vous gagnerez beaucoup de temps en effectuant une recherche, en copiant-collant par exemple une phrase ou un code d’erreur dans la barre de recherche. Et si vous êtes à l’aise avec l’anglais c’est encore mieux, la langue de Shakespeare vous permettra, pour une recherche équivalente, d’avoir jusqu’à 10 fois plus de résultats !



code


Intégrer une communauté



Les programmeurs s’entraident beaucoup entre eux, l’échange et le partage de connaissances est une notion majeure du numérique, c’est l’essence même du concept de l’open source (code libre de droit). Des communautés comme la désormais célèbre Stack Overflow permettent de poser des questions et de solutionner des problèmes très rapidement, mais aussi de participer en aidant les autres membres.

Garder à l’esprit que l’on peut toujours apprendre



« Quand on croit détenir la vérité, il faut savoir qu’on le croit, non pas croire qu’on le sait ». dit un jour le philosophe français Lequier. L’informatique s’est divisée en de très nombreux sous domaines, et s’est diversifiée au point qu’il serait impossible de la faire tenir dans un seul cerveau humain. Cultivez donc votre soif d’apprendre.

Réutiliser des exemples déjà existants



Une erreur typique du débutant et de vouloir réinventer la roue. Ne perdez pas trop de temps à réécrire des bouts de code déjà existants, et sachez qu’il est possible de passer par ce qu’on appelle des bibliothèques, ou en quelque sorte du code déjà prêt à être utilisé. On pourra citer Bootstrap pour le web.





Rédigé par Hugo Beisser
mosieur.hugo@gmail.com
Follow me on LinkedIn