Contexte
J’ai toujours été intéressé par la création de choses. La programmation permet cela.
J’ai commencé à apprendre Swift (iOS) avec 100 Days Of SwiftUI depuis avril de cette année, j’ai suivi jusqu’au 7xᵉ jour, créé quelques apps et publié sur l’App Store. Swift est agréable parce qu’il gère l’interface et la logique dans un même langage.
Mais j’ai ensuite réalisé que le potentiel du web était peut-être plus grand, car le web offre plus de liberté. Votre app n’a pas besoin d’être examinée, pas besoin de payer un compte développeur, et vous avez la flexibilité de choisir votre propre stack, etc. Surtout si vous voulez que votre application soit multiplateforme.
Apprentissage du développement web
Après avoir créé quelques petites apps pour iPhone, j’ai commencé, ces 3 à 4 derniers mois, à apprendre le développement web avec freeCodeCamp et un peu du Odin Project.
J’ai besoin du développement web parce que je veux créer une page de présentation pour mes projets mobiles, ainsi que quelques API REST que mon app mobile pourra consommer.
- FreeCodeCamp
- beaucoup de pratique, j’ai d’ailleurs trouvé cela un peu accablant et répétitif.
- The Odin project
- plus de théorie et une compréhension approfondie du pourquoi et du comment de la programmation.
Je suggérerais donc aux gens de faire les deux en même temps, l’un bénéficie à l’autre.
Je n’ai terminé que « Responsive Web », « Basic JavaScript » et la moitié de « React » sur freeCodeCamp - pour l’instant.
Mon apprentissage était principalement basé sur des informations textuelles et la documentation officielle. J’ai vraiment apprécié les tutoriels officiels de React et NextJS.
Je n’ai payé aucun cours en ligne pour apprendre.
Cela a surtout été un apprentissage guidé par les tâches : apprendre cette chose que je veux faire et passer à la suivante.
Mon parcours de programmation jusqu’ici
Swift et un peu de SQLite local > API REST Flask simple > HTML/CSS > JavaScript > 11ty (générateur de site statique) > React (tutoriel officiel) et NodeJS > Next.js (tutoriel officiel) > ExpressJS > sécurité des API REST (CORS et variables d’environnement) > retour à React (freeCodeCamp) > …
Tout le monde dit que créer des projets est important et je suis tout à fait d’accord
J’aurais perdu intérêt si ce n’était pas quelque chose que je veux construire. Quand je me lasse de travailler sur un projet après longtemps, je le remplace par un autre projet dans un autre langage pour me stimuler. L’apprentissage orienté tâches me convient le mieux.
Quelques hébergeurs gratuits que j’ai utilisés et qui sont adaptés aux débutants
- GitHub page
Pour l’offre gratuite, vous devez rendre votre dépôt public pour le publier. Mais vous pouvez quand même y associer votre domaine.
Très facile à connecter avec GitHub, il dispose d’un support intégré pour les formulaires de contact, ce qui signifie que vous n’avez pas besoin de votre propre serveur. Vous pouvez aussi l’intégrer à l’authentification Netlify CMS, ce qui vous permet de vous connecter à votre blog statique, le tout gratuitement. (inconvénient : pas de support de Next Image - cela signifie que vous ne pouvez pas profiter de l’optimisation <Image>. Pour cela, vous pouvez utiliser Vercel, mais vous perdez le support des formulaires, c’est donc à vous de choisir. Je le sais parce que je poussais mon site NextJS vers Netlify et j’ai rencontré une erreur.)
L’interface n’est pas aussi cool et adaptée aux débutants que celle de Netlify, mais il offre une bande passante illimitée, un hébergement gratuit, et même quelques fonctions cloud limitées que vous pouvez utiliser. Ce n’était pas aussi accessible que Netlify, mais pas si difficile non plus. Il a tout le basique dont vous avez besoin et envie gratuitement. Et j’y ai acheté mes domaines, c’est donc mon hébergeur statique de prédilection maintenant.
Hébergement backend gratuit
C’était mon premier backend. Il est très facile à utiliser pour les choses basiques. Il a un temps de calcul CPU limité, ce qui signifie que vous ne pouvez pas vraiment exécuter de grosses tâches de traitement sur ce serveur gratuitement. Cependant, il est très bon pour une API RESTful, car il tourne en permanence.
C’est mon nouveau choix pour héberger express.js - inconvénient : mise en veille automatique si inactif pendant 15 min. Je n’ai pas encore trouvé de serveur gratuit toujours actif qui permette d’héberger un serveur JavaScript. Cependant, un serveur sans mise en veille coûte environ 7 $ par mois, ce qui n’est pas trop cher, et il accepte les cartes de débit, ce que j’apprécie. L’interface est simple aussi.
Non, c’était trop accablant pour moi, mais cela semble être l’un des meilleurs pour l’évolutivité à un prix raisonnable, je n’y ai pas encore touché car l’interface du site n’est pas adaptée aux débutants, et je ne connais pas grand-chose aux VPS.
Google Cloud exige une carte de crédit pour démarrer, même pour l’offre gratuite, et je n’en avais justement pas. Firebase est pratique pour créer facilement un système d’authentification gratuitement. J’explorerai cela plus tard.
Apprendre tout le cycle de publication d’un site web
Après avoir créé quelques sites simples avec HTML/CSS et du JS basique, je voulais créer un blog. J’ai découvert qu’il existe une tonne de générateurs de sites statiques pour cela. J’ai cherché des modèles avec Hugo, 11ty, etc. C’était très bénéfique pour moi de comprendre comment travailler avec NodeJS, car il ne faut qu’un peu de logique de code pour utiliser ces modèles, mais vous pratiquez tout le cycle de création d’un site web :
Creating a new git repository > create the site with NodeJS > connect & auto push to 3rd party host > manage your domain > compare the features & price for each web host to best suits your objective or language.La seule partie qui diffère dans la plupart des projets est simplement « créer le site avec NodeJS » ; vous pouvez utiliser Python ici, mais les autres choses que vous avez apprises s’appliquent toujours.
Plus sur la création d’un blog
La principale difficulté n’est pas la fonction de blog en elle-même. C’est la section des commentaires. Si vous voulez écrire un blog et vous concentrer sur le contenu en tant que débutant, je vous suggère d’utiliser simplement WordPress, tout est fourni, sans tracas.
Sinon, pour intégrer une section de commentaires à votre blog statique, vous pouvez utiliser Disqus (qui a mauvaise réputation pour les problèmes de confidentialité et qui est gourmand en mémoire au chargement). Ou vous pouvez utiliser une alternative open source avec connexion GitHub. Mais à ma connaissance, il n’en existe pas une seule qui soit gratuite et permette la connexion Google. Ou vous pouvez créer votre propre serveur de commentaires backend, mais vous devez alors aussi gérer le filtrage du spam, etc. Pas très idéal pour moi. J’ai fini par utiliser simplement Disqus, mais il ne se charge pas automatiquement tant que l’utilisateur n’a pas cliqué sur « Show comments », pour économiser le temps de chargement.
À propos de ChatGPT
Il n’est utile que jusqu’à un certain point. Évitez de l’utiliser pour une logique compliquée, c’est généralement problématique. Un problème ennuyeux consiste notamment à modifier votre code sans vous le signaler. Il est utile pour une première ébauche. Il ne convient pas si vous voulez un code sans bug, il ne le fait jamais. J’ai aussi remarqué que plus vous lui demandez de revoir votre code, plus il fait d’erreurs. Ce qui était plus ennuyeux et chronophage que d’apprendre simplement la chose et de l’écrire moi-même.
Et ensuite
Apprendre à créer un vrai backend avec authentification inscription/connexion, serveur de base de données SQL. Peut-être que j’essaierai Django cette fois et que je tenterai de créer un backend qui fonctionne avec une app multiplateforme.
L’objectif
Continuer à apprendre et à créer des projets intéressants.
Merci de votre lecture !