« Je veux tout apprendre en même temps et je n’avance pas dans mon apprentissage »
« Je fonce dans un projet sans maitriser les bases et je me retrouve à ré-inventer la roue et perdre du temps dans mes projets »
Tu t’es déjà retrouvé dans une des ces situations ? Un peu perdu dans ton apprentissage du développement web, à vouloir te lancer dans un projet à fond, sans réfléchir aux tenants et aboutissants de ton projet ?
Lorsque tu débutes, c’est normal d’être un peu perdu. Sans un cadre de travail ou sans quelqu’un pour te montrer le chemin à suivre, il peut être compliqué d’avancer, de trouver la bonne route, la voie à suivre.
Après quelques recherches sur internet je me suis rendu compte qu’il y avait beaucoup de formations qui t’apprenaient certains langages (HTML, CSS, Javascript, PHP, Python, …) mais qui ne donnaient aucune base concrète sur le développement en lui-même. C’est-à-dire tout ce qui concerne les bases essentielles qui te permettront par la suite de pouvoir comprendre n’importe quel projet, peu importe le langage.
A travers cet article, je vais essayer de te donner un chemin à suivre, des étapes à respecter dans ton parcours sur lesquelles tu devras passer un peu de temps. Pour que tu puisses, avoir de solides bases et pouvoir partir dans un projet sereinement, en ayant toutes les compétences de bases qu’il faut avoir.
Tu le sais peut-être mais j’ai fait mes études dans une école d’informatique. Dans cet article, je te faire un condenser des étapes que j’ai suivi tout au long de mon parcours.
Comprendre comment ça fonctionne ?
Tout d’abord avant de commencer n’importe quel langage, tu dois comprendre les mécanismes du web. Comment se génère une page web, comment sont gérées les interactions avec les serveurs, comment les navigateurs interprètent les pages web, comment sont stockées les données, etc.
Tu dois comprendre toutes ces choses-là. Elles seront essentielles pour comprendre ce que tu feras et pourquoi les choses marchent ou ne marchent pas correctement. Si tu ne sais pas comment fonctionne une page web, ce qu’il est possible de faire ou non, comment sont traitées les données, etc, tu ne pourras pas comprendre ce que tu es en train de faire.
Imagine que tu doives construire un vélo par toi-même. Si tu ne comprends pas les mécanismes qui font avancer le vélo, qui le font tourner ou freiner, tu auras du mal à le concevoir correctement, à anticiper les choses, etc. Ça va être une vraie galère.
Il est donc essentiel d’avoir une compréhension générale du fonctionnement des pages web et des serveurs.
Une image comme celle-ci t’en dit déjà beaucoup sur le fonctionnement
Commencer par le HTML / CSS
A ce niveau-là, je pense que je ne t’apprends rien d’incroyable. Il faut débuter par le HTML et CSS. 2 langages qui te permettront, dans un premier temps de créer des pages statiques mais qui offrent déjà de nombreuses possibilités.
Sur internet, tu trouveras de nombreux tutoriels, pour apprendre le fonctionnement de ces 2 langages et commencer à créer tes propres sites web.
Tu n’as pas besoin de connaitre toutes les balises HTML, souvent, tu utiliseras les mêmes. Si tu as besoin d’en utiliser certaines en particulier, tu pourras toujours aller faire quelques recherches sur internet.
La base de la programmation : l’algorithmique
Peut-être que tu t’es dit que c’était enfin le moment de passer à un langage de programmation un peu cool, un peu sympa, faire des petites animations sur ton site, commencer à gérer de la donnée.
Hé beh non ! Il faut apprendre les bases de la programmation avant de se lancer dans l’apprentissage d’un langage. Encore une fois, il est nécessaire de bien comprendre les mécanismes de l’algorithmique et de faire simple dans un premier temps.
Si tu commences par apprendre un langage de programmation, tu ajoutes déjà une couche supplémentaire et tu complexifie ton apprentissage.
Tu dois donc passer du temps à comprendre les algorithmes, à en créer, à les faire fonctionner. Prends une feuille de papier et un crayon et entraines toi. C’est un peu à l’ancienne mais tu verras que ça t’aidera de n’avoir aucune autre distraction et de te concentrer uniquement sur la manière de faire fonctionner un algorithme.
Ce n’est pas une perte de temps. Tous les langages de programmation fonctionnent de la même manière. Une fois que tu maitrise l’algorithmique, tu es capable de travailler sur n’importe quel langage, tu n’auras plus qu’à apprendre la syntaxe du langage mais tu auras déjà fait 80% du travail.
Aussi, prends un peu de temps pour appréhender les fonctions et les procédures. Les procédures te permettent de découper un gros algorithme en plein de petits. Un algorithme te permet de résoudre un problème et ce problème peut être découpé en plusieurs petits. Ce sont des procédures qui vont résoudre tous ces « petits » problèmes.
Quelques algorithmes que tu peux faire
- Additionner deux nombres
- Afficher tous les chiffres pairs de 0 à 100
- Créer un jeu qui devine le chiffre auquel tu pense
- Créer un jeu de morpion
- Inventer des recettes de cuisine en demandant les ingrédients à l’utilisateur
Par exemple le pour créer le jeu qui devienne le chiffre auquel je pense, tu devras créer un algorithme qui va faire les étapes suivantes :
- Créer 2 variables : minimum et maximum où minimum = 0 et maximum = 100
- Demander un chiffre à l’utilisateur
- Le mettre dans une variable (par exemple 20)
- Afficher un premier chiffre aléatoire (entre 0 et 100)
- Demander à l’utilisateur si c’est plus ou moins
- Si c’est moins, donner la valeur du chiffre afficher à la variable maximum (minimum = 0 et maximum = 34)
- Si c’est plus, donner la valeur du chiffre afficher à la variable minimum (minimum = 18 et maximum = 100)
- Afficher à l’utilisateur un chiffre entre maximum et minimum
- Et ainsi de suite. L’écart entre maximum et minimum va se resserrer jusqu’à trouver le bon chiffre
- Afficher le chiffre trouvé à l’utilisateur
Voici un exemple des étapes à faire dans ton algorithme. Créer tes algorithmes en français ou dans la langue qui est la plus facile à comprendre pour toi. Le but ici, est vraiment de comprendre les bases et de savoir résoudre n’importe quel problème.
Une fois que tu maîtrises correctement cette partie, tu peux enfin passer à l’apprentissage d’un langage de programmation
Commencer à apprendre un langage de programmation
Le moment tant attendu mais aussi le grand choix redouté par tous !
Quel langage je choisi ?
J’ai envie de te dire, on s’en fiche un peu. Maintenant que tu connais l’algorithmique, tu peux apprendre assez facilement n’importe quel langage. Apprendre un nouveau langage n’est pas très compliqué une fois que tu as les notions de bases. Le langage de programmation va être un simple outil.
Choisis un langage en fonction de tes projets, tes envies et tes objectifs. Il n’y a pas de bon ou de mauvais langages. Lors de mes études on ne m’a pas dit qu’il fallait commencer par tel ou tel langage. On m’a indiqué les principaux langages du web et nous avions quelques cours dessus pour les apprendre. J’ai principalement appris 4 langages dans le web : Python, Javascript, PHP, Java. Tu peux ainsi choisir l’un d’entre eux. Par la suite, tu pourras toujours en choisir un autre. Lors de mes études j’ai pratiqué un peu de chacun de ces langages jusqu’à trouver celui qui me correspondait le mieux.
Pour trouver celui qui te correspond, tu peux te définir 1 « mini projet » et le créer avec les différents langages de programmation. Par exemple tu peux créer une « TODO List » et passer du temps à la faire avec plusieurs langages. Comme ça tu passeras un peu de temps sur chaque et tu choisiras celui avec lequel tu es le plus à l’aise. Le choix devrait se faire naturellement.
Une fois choisi, concentres toi dessus et spécialises toi dedans. N’est pas peur de passer à côté d’autre chose. Tu verras d’autres développeurs te dire qu’il y a mieux comme langage pour telle ou telle raison. Mais si tu repars dans un autre apprentissage, toutes les compétences et l’expérience que tu auras emmagasinée ne te serviront plus. C’est dommage.
Apprendre un langage de bases de données
A un moment tu vas devoir gérer des données, les stocker etc… Si tu as commencé à faire du PHP, c’est fun mais ça le serait encore plus cool si on pouvait manipuler les données en plus.
Là aussi, il ne faut pas tout faire en même temps. Il va falloir que tu apprennes comment on créer une base de données.
La création d’une base de données se fait en 2 étapes :
- Créer un modèle, un schéma, un plan de ta base
- Créer la base de données
Modèle conceptuel de données
Il va falloir que tu apprennes à modéliser une base de données. C’est-à-dire qu’avant de la créer, il faudra que tu fasses le plan. C’est un peu comme pour construire une maison. Tu n’arrives pas avec ta perceuse et ton marteau en disant : « Allez je construis les murs et on verra au fur et à mesure ». Non, il faut d’abord faire un plan. Pour une base de données c’est pareil.
Tu vas devoir apprendre à faire un modèle conceptuel de données (MCD). J’imagine que tu n’as pas vu ça sur internet et que personne n’en parle mais c’est aussi une des bases du développement web. Grâce au MCD, tu vas pouvoir structurer ta base de données, définir les relations entre elles, vérifier que tout fonctionne correctement et t’assurer que tu as toutes les informations nécessaires.
Tu peux retrouver une initiation en cliquant ici.
Les modèles conceptuels de données sont les fondations de n’importe quelle base de données. Une fois que tu auras appréhender ces notions, tu pourras concevoir des bases de données avec n’importe quel système de gestion de bases de données (MySql, PostgreSQL, Oracle, …)
Le langage SQL
Pour la suite, je te conseils donc d’apprendre le langage SQL (un des plus populaires sur le web) et d’apprendre à créer tes bases grâce à des requêtes. Aujourd’hui beaucoup de logiciels aident à la conception de base de données. En quelques clics il est possible de créer une base. Mais je trouve que pour l’apprentissage, il est beaucoup plus intéressant de le faire à la main, via les requêtes (CREATE TABLE, ALTER, UPDATE, etc…). C’est un bon moyen de se former aux langages SQL. Suite à ça, manipuler les données en écrivant des requêtes SQL est un bon exercice pour se familiariser avec.
Une fois que tu auras suffisamment maitriser les requêtes SQL, tu vas pouvoir intégrer une base de données à ton site et interagir avec.
A ce niveau-là tu as toutes les clés pour commencer à créer des sites web complets, créer des interactions avec une base de données, créer des pages dynamiques à l’aide d’un ou des langages de programmation. Tu dois pouvoir être autonome dans un projet.
Rome ne s’est pas construite en un jour
Tu dois te dire que ce parcours est un peu long et très lourd à apprendre. En effet, ce n’est pas de tout repos mais on n’a rien sans rien. Une fois que tu auras assimiler correctement toutes ces bases et ces notions, tu n’auras aucun mal à passer de projet en projet, à t’adapter à de nouveaux langages, à comprendre les choses, à avancer beaucoup plus rapidement.
Il va aussi falloir que tu pratiques beaucoup, encore et encore, tous les jours. Il y a beaucoup de concepts à comprendre et à assimiler. Ça prends énormément de temps et ce n’est qu’en pratiquant que tu apprendras et que tu maîtriseras. Il faut donc que tu fasses plein de petits projets, que tu essayes des choses, que tu recommences, que tu améliores ton code et que tu te formes en permanence. La chose à garder en tête est ton but final. Pourquoi tu fais ce que tu fait ? Ce que je veux dire ici, c’est que pour progresser il faut que tu saches vers quoi tu veux aller et pour quelles raisons tu veux savoir coder. Si tu sais vers quoi tu veux aller, tu as simplement à utiliser les bon outils (langages de programmation) pour y arriver.
Tu vas surement faire face à de nombreux problèmes, à de nombreux blocages mais c’est la vie de développeur. Etre bloqué, chercher, apprendre, essayer, trouver une solution et avancer. Il ne faudra pas se décourager. Dis-toi que si tu en as réussi à en arriver là, c’est déjà une grosse partie du chemin qui est fait.
La cours des grands
A ce stade tu devrais avoir fait quelques petits projets par ci par là, avoir un ou deux petits sites qui fonctionnent correctement et avoir une bonne maitrise de tous les concepts de bases de développement web.
Maintenant il vas falloir que tu sautes le pas et que tu passes dans la cours des grands.
La programmation orientée objet (POO)
Ça va être le moment de passer à la programmation orientée objet. La programmation orientée objet (POO) est très abstraite au début. En effet, elle permet de conceptualiser des objets de la « vraie vie » en terme de code. Tu peux créer un objet voiture, ou stylo, ou téléphone. Les objets sont simplement des classes avec un ensemble d’attributs. Si on veut un objet voiture, tu déclareras une classe voiture à laquelle tu lui ajouteras les attributs roues, portes, couleur, marque, …
Ainsi, il sera possible de créer différentes voitures avec des marques différentes, des couleurs différentes, un nombre de roues différent.
L’approche orientée objet devient très pratique lorsque tu souhaites organiser ton code plus proprement et aller plus loin dans la programmation. Aujourd’hui tous les Framework reposent sur la programmation objets, et la majorité des programmes en entreprises sont fait à l’aide de la POO. C’est une étape indispensable dans ton apprentissage. Il faudra tôt ou tard que tu apprennes la POO dans ton langage de programmation.
Les autres concepts
Dans le web il existe encore d’autre concepts que tu vas devoir appréhender tels que les design pattern ou les bonnes pratiques du web ou encore l’utilisation de Framework.
Les designs patterns
Les designs patterns sont des « façons » de coder qui permettent de résoudre un problème de programmation général. C’est-à-dire qui solutionne un besoin commun aux développeurs. On peut citer le design pattern : Modèle Vue Contrôleur (MVC) qui est une structure permettant de dissocier différentes parties d’un site web pour réduire les dépendances de ces parties entre elles. Ainsi, si pour une raison ou une autre on souhaite changer la partie « Vue », c’est-à-dire le visuel du site web, il est possible de le faire facilement, sans avoir à tout recoder. Le MVC répond donc au besoin de ne pas rendre dépendantes certaines parties du code entre elles.
Les design pattern répondent ainsi à des problématiques différentes. Il est essentiel de connaitre les plus communs, et les plus utilisés (MVC, factory, singleton) afin de savoir quand les utilisés dans lors de tes développements
Les bonnes pratiques
Les bonnes pratiques sont un ensemble de règles qu’il convient de respecter lors de tes développements. Elles ne sont pas obligatoires mais améliorent l’expérience utilisateur (UX) et la qualité du code et donc la maintenance. J’ai rédigé un article sur le sujet qui te donnera une idée plus précises de ce que sont les bonnes pratiques. Tu peux le retrouver en cliquant ici.
Les frameworks
Les Framework sont omniprésents dans le web maintenant. Ils fournissent une structure aux développeurs, un cadre de travail. Ils sont essentiels au développement pour des questions de productivité. Ainsi, ils fournissent un ensemble d’outils très pratique à utiliser et qui facilitent grandement le développement. Les débuts avec un framework peuvent être complexe (beaucoup de concepts du framework à apprendre) mais une fois maîtrisés, les développements deviennent très rapide.
Les frameworks sont dans la plupart du temps orientés objets et embarquent un ensemble de design patterns. C’est pour ces raisons qu’il ne faut s’y aventurer que lorsque l’on maitrise suffisamment les concepts de bases et la POO.
Tu es presque développeur web
Je t’ai donné toutes les étapes à respecter et toutes les clés pour devenir un développeur web. Comme tu l’auras compris, les bases ne sont pas à négliger et il faut passer du temps dessus. C’est parfois un peu long de devoir apprendre tout ça mais lorsque les résultats sont là, tu pourras être fier de toi.
Désormais, les cartes sont entre tes mains. Tu as le chemin à suivre, tu n’as plus qu’à pratiquer ce que tu as appris à chaque étape. Pratiquer suffisamment pour passer à l’étape suivante.
Il n’y a que par la pratique que tu arriveras à progresser. Passes un peu de temps sur la théorie et beaucoup sur la pratique. C’est le moyen le plus rapide pour acquérir les compétences.
Ce parcours peut te prendre du temps. Il ne faut pas que tu te mettes la pression en te disant que tu dois avoir tout vu d’ici 3 mois. Comme je te le disait au début, tout ce parcours m’a pris 5 ans d’études. Il faut donc que les choses se fassent à leur rythme, sans sauter les étapes.
Ne te décourages pas dans ton apprentissage. Une fois que tu auras toutes ces compétences, beaucoup de portes s’ouvriront à toi. Aujourd’hui le métier de développeur web, est un beau métier mais pour y arriver il faudra du travail.
Dis-moi dans les commentaires, quelle est pour toi l’étape la plus difficile à surmonter ou à comprendre.
Bonjour,
Merci pour ce guide. Moi, je connais déjà html et css, et un peu de javascript. Maintenant je veux avancer encore et plus vite. Mais je me trouve dans une situation délicate. J’apprends en même temps deux « langage ». Et mon problème et que je confonds les écritures par exemple pour une déclaration de variable.
Je ne sais pas comment me souvenir des différentes écritures tout en avançant plus vite.