31/05/2021 Projet : 100 Days of code
100 jours, 1 heure par jour

Concept
100 days of code est un concept relativement populaire chez les développeurs. Je ne sais pas si le concept a démarré d'ici, mais les règles sont les suivantes :
- Pratiquer tous les jours pendant 100 jours, durant au moins une heure une nouvelle techno ou un nouveau langage.
- Et de tweeter tous les jours en détaillant sa progression.
Objectifs
- Apprendre un nouveau langage.
- Progresser en algorithmie et apprendre les algos les plus fréquemment utilisés.
- Savoir si ce domaine là me plait vraiment et pourquoi pas initier un changement de carrière professionnelle.
- Progresser sur CodinGame tant sur les puzzles que sur les contests !
- M'amuser avec la brique Lego mindstorms !
Pourquoi ?
Je fais du web depuis maintenant 6 ans, PHP/SQL/HTML/SCSS, même si je suis loin de tout connaitre et tout maitriser, j'ai toujours été attiré par l'algorithmie, les sciences et l'intelligence artificielle. Automatiser et résoudre des trucs grâce à la programmation m'a toujours passionné et j'ai toujours souhaité pouvoir me lancer dedans, sans jamais avoir pris le temps. C'est cela que je souhaite me lancer dans cette aventure. Dans la création de sites web nous avons rarement la chance de pouvoir mettre en pratique ces disciplines, tout au plus une optimisation d'une requête SQL un peu trop complexe où un petit bout de code peu trop gourmand. J'espère que ce challenge me permettra d'explorer de nouveaux domaines, et
Depuis plusieurs années je suis inscrit sur le site CodinGame auquel j'ai beaucoup accroché, il propose de nombreux d'exercices et puzzles à résoudre grâce à l'algorithmie et à la programmation.
Parcours d'arbre, optimisation de trajets, recherche du chemin le plus court, simulation de la trajectoire d'un vaisseau, sont quelques-uns des puzzles qui sont proposés sur le site.
Actuellement j'ai résolu un bon nombre des puzzles parmi les plus simples mais j'arrive à une étape où je sens que j'ai besoin de plus de connaissance en algo pour pouvoir progresser.
Enfin 2 à 3 fois par ans des contests sont proposés, autrefois il s'agissait de 3 à 4 exercices de difficulté croissante un peu comme la BattleDev, mais ce format a été oublié et maintenant il s'agit de créer votre propre "intelligence artificielle" pour résoudre un problème donné, ensuite votre code affronte le code de plusieurs centaines de joueurs ce qui va déterminer votre classement. Les contest sont séparé en Ligues Bois, Bronze, Argent, Or et Légende, ou chaque ligue ajoute sont lots de règles. Et j'aimerais bien au terme de mon 100 days of code pouvoir me lancer dans un de ces challenges.
Du coup quelle techno, quel langage ?
J'ai décidé de partir sur python pour plusieurs raisons.
- J'ai déjà des bases
- Python est un langage populaire, très populaire, notamment grâce à sa simplicité d'apprentissage et à sa syntaxe légère.
- Grâce à cela python est en fait un des langages les plus utilisés pour enseigner la programmation et l'algorithmie dans les écoles et les universités. Ce qui en fait un des langages avec le plus de cours, et d'exercices que je vais pouvoir trouver sur internet.
- Python peut (presque) tout faire, il est extrêmement flexible et portable ce qui en fait un très bon langage pour la programmation de logiciels, de site web, mais aussi de scripting peu importe l'environnement windows, linux ou mac.
- Il est très répandu dans le domaine scientifique et possède de nombreuses librairies et bibliothèque pour le calcul scientifique et l'intelligence artificielle.
- Ma brique lego mindstorms utilise le python comme langage de programmation :)
- Je possède déjà 3 livres qui vont me permettre de mettre le pied à l'étrier et deux d'entre eux proposent des exercices et des algorithmes écrits en python.
- Apprenez à programmer en Python - V. Le Goff
- Les algorithmes pour les nuls - C.Dürr et J-J Vie
- Programmation efficace - JP.Mueller et L.Massaron
Ca commence quand ?
Du 1er Juin et jusqu'au 9 septembre, j'essayerais de m'y tenir.
Lien de mon compte twitter pour suivre ma progression si vous le souhaitez
Voilà c'est tout pour aujourd'hui, on sssssssse dit à bientôt.