Quand on me demande quel est le secret pour devenir un bon développeur web, ma réponse est :

Il n'y a pas de secret. Il faut lire (beaucoup) et pratiquer (beaucoup).

Rien de tel que d'expérimenter avec de nouvelles technologies (ou renforcer celles que l'on maitrise déjà) en concevant de nombreux projets. L'avantage des petits projet est d'avoir un portfolio bien rempli à présenter à un futur employeur, même sans expérience professionnelle.

Mais bien souvent les développeurs juniors, malgré leur motivation, n'ont pas d'idée de projet à coder ou bien ne veulent simplement pas copier un concept déjà fait 1001 fois par d'autres développeurs.

C'est pour ça que j'ai créé cette liste de projets courts, dont le concept est connu de tous mais dans lequel chaque développeur va pouvoir insuffler son âme et sa créativité, ce qui est bien plus intéressant !

Pour information, la difficulté indiquée est en rapport avec le niveau de développeur junior, la plus haute difficulté reste accessible même aux débutants mais prendra plus de temps à réaliser.

1 - Un générateur de noms aléatoires

Compétences : Front-end
Focus : Interface, formulaire, gestion de l'aléatoire
Difficulté : 1/5

L'avantage avec un projet comme celui-ci, est que l'interface peut être très simple et fonctionne pour tout un tas de sujets.

Vous êtes fan de jeux de rôles ? Générez des noms de personnages ! Mais cela fonctionne aussi pour des noms de startups, des noms de chats et chiens, etc... Il y en aura pour tous les goûts !

2 - Un portfolio

Compétences : Front-end
Focus : Design et hiérarchie des informations
Difficulté : 1/5

Si vous pensez que développer un portfolio ne peut pas être fun, c'est que vous n'y avez pas encore suffisamment réfléchi et que vous devez essayer de sortir des idées préconçues qui cloisonnent votre esprit !

Votre portfolio doit à la fois permettre à quelqu'un de trouver vos informations comme il le souhaite, et être vraiment original pour capter son attention !

Voilà un exemple de portfolio/cv en terminal de commandes que j'ai développé il y a quelques années : https://nicolas.brondin-bernard.com/cv/

3 - Un Quiz

Compétences : Front-end et Back-end
Focus : Workflow de données
Difficulté : 2/5

Créer un quizz sur un sujet que vous maîtrisez bien est à la fois un bon moyen d'apprendre à maîtriser un workflow de données simples, de s'assurer que vos joueurs ne peuvent pas tricher mais aussi de vulgariser et transmettre des informations sur un sujet que vous aimez.

4 - Un convertisseur original

Compétences : Front-end
Focus : Manipulation de données
Difficulté : 2/5

L'idée ici n'est pas de convertir des euros en dollars, mais plutôt de convertir une donnée d'un système de mesure peu fréquent vers un autre. Par exemple : Quelle est la taille de la Tour Eiffel en nombre de hamburgers ? Quel est le poids de la planète Mars en nombre d'imprimantes ?

Bien sûr si le convertisseur est bien fait, il devrait permettre de convertir de vraies unités et avoir des résultats tous aussi cohérents !

5 - Une interface de bureau

Compétences : Front-end
Focus : Gestion des intéractions en javascript
Difficulté : 3/5

Que diriez-vous de développer votre propre système d'exploitation graphique en Javascript ? Bien sûr il ne s'agit pas de développer la partie logicielle sous-jacente complexe d'un système d'exploitation, mais de se limiter à la gestion des fenêtres, l'ouverture des fichiers, des icones, etc...

Evolutions:

  • Vous pouvez même transformer ce projet en jeu d'enquête dans lequel le joueur doit chercher des informations cachées dans le système !

6 - Une inscription parfaite

Compétences : Front-end, Back-end
Focus : Expérience utilisateur, gestion de formulaire, gamification, authentification
Difficulté : 3/5

Votre but : créer un formulaire d'inscription et de connexion de plusieurs pages si bien pensées et si surprenantes, que l'utilisateur devra avoir envie de s'inscrire même si il ne connait pas le service derrière.

Arriver à capter l'attention de l'utilisateur, faire en sorte qu'il ne ressente de déception à AUCUN moment pour lui faire faire un saut dans le vide est un exercice très formateur en terme d'UX.

Evolutions :

  • Ajouter un système d'analyse pour savoir à quel moment la plupart des utilisateurs s'arrêtent afin de le corriger.

7 - Un jeu de rôle textuel

Compétences : Back-end
Focus : Jeu vidéo, parsing de commandes
Difficulté : 4/5

Vous connaissez le jeu Zork ? C'est un jeu d'aventure sorti dans les années 70 dont le but était de venir à bout d'une quête en intéragissant avec le jeu par des commandes de texte simples comme:

"Open the chest; Pick sword; Go North;"

L'idée d'un tel jeu est géniale parce qu'elle suscite l'imagination, qu'il n'y a pas besoin de ressources graphiques pour le développer mais que celà permet de débuter dans la programmation de moteurs de jeux.

Pour ceux qui voudraient tester le jeu d'origine, il est disponible en ligne : http://textadventures.co.uk/games/play/5zyoqrsugeopel3ffhz_vq

8 - Une page de visualisation de données open-source

Compétences : Front-end et back-end
Focus : Cartes, graphiques et visualisation
Difficulté : 4/5

Ce qui est intéressant avec une bonne visualisation, c'est qu'on peut faire passer un message, inspirer des gens ou leur faire prendre conscience de quelque chose de grave en jouant uniquement avec des sources précises et vérifiables.

Il existe même un site français qui rassemble des centaines de jeux d'open-data juste ici : https://www.data.gouv.fr/fr/

L'un des exemples les plus connus ces dernières semaines est le site de tracking des cas de Covid-19 en temps-réel : https://ncov2019.live/data

9 - Un crawler automatique de site

Compétences : Back-end
Focus : HTTP, proxys, user-agents, cron...
Difficulté : 5/5

Arriver à récupérer les informations d'un site qui ne dispose pas d'API ouverte est comme jouer au chat et à la souris, car si votre but est de récupérer les données qui vous intéresse en temps voulu, la tâche du site en question est bien souvent de vous-en empêcher.

Attention néanmoins à rester dans le cadre légal de consultation des données fournies par le site ciblé !

Merci d'avoir lu cet article, n'hésitez pas à laisser un commentaire tout en bas de la page et de cliquer sur les réactions disponibles !

À bientôt !


À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage de d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !


Photo par Carl Heyerdahl sur Unsplash