Comment commencer à coder : Un guide pratique pour les débutants (mis à jour en 2020)

Étape 3 : Démarrer un projet pour mettre en pratique ce que vous avez appris

Voir des cours seuls ne vous aiderait pas à intérioriser le concept. Il vous faudrait mettre le concept en pratique. La meilleure façon de le faire serait de proposer des projets.

Si vous avez une idée de projet ou un problème que vous voulez résoudre avec le codage, c’est génial !

Sinon, j’ai préparé une liste de projets conviviaux pour les débutants dont vous pouvez vous inspirer ou que vous pouvez essayer.

Certains projets conviviaux pour les débutants que vous pouvez essayer

Voici quelques terminologies qui peuvent prêter à confusion

Bibliothèques : Une bibliothèque est une collection de morceaux de code connexes qui ont été compilés et stockés ensemble dans un seul fichier. Ce fichier peut être lié à votre code pour vous donner accès au code de la bibliothèque.

API : API est l’abréviation de Application Programming Interface. Une API est un intermédiaire logiciel qui permet à deux applications de dialoguer entre elles. En d’autres termes, l’API vous permet de demander des fonctions à un fournisseur de logiciels pour les utiliser dans votre code. Par exemple, l’API Spotify vous permet de demander des données telles que les chansons et les artistes de Spotify et vous pouvez faire usage de ces données dans votre code ou votre application.

Projets de niveau 1

Calculatrice

  • Langage : Python
  • Librairies : Aucune
  • Guide : https://www.programiz.com/python-programming/examples/calculator

Sudoku Solver

  • Langage : Python
  • Librairies : Aucune
  • Guide : https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/

Hangman

  • Langage : Python
  • Librairies : Aucune
  • Guide : https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman

Projets de niveau 2

Échecs

  • Langage : Python ou Java
  • Librairies : Aucune
  • Guide : https://www.youtube.com/watch?v=ejZqLsQDjuo

Liste de lecture hebdomadaire de Spotify

  • Construire votre propre système pour faire quelque chose de similaire à la liste de lecture hebdomadaire de Spotify
  • Langage : Python
  • Librairies : API Spotify
  • Guide : https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb

Outil de suivi automatique du temps

  • Améliorez votre concentration en suivant le temps passé sur les applications de bureau ou les sites web en temps réel.
  • Langage : Python
  • Librairies : Selenium
  • Guide : https://www.youtube.com/watch?v=ZBLYcvPl1MA

Projets de niveau 3

Automatisation d’Instagram

  • Automatiser le processus de publication sur Instagram
  • Langage : Python
  • Librairies : Flask,Instapy
  • Guide : https://www.youtube.com/watch?v=vnfhv1E1dU4

Twitter Bot

  • Un bot qui tweete automatiquement sur votre flux.
  • Langage : Python
  • Librairies : API Twitter
  • Guide : https://medium.com/science-friday-footnotes/how-to-make-a-twitter-bot-in-under-an-hour-259597558acf, https://learn.g2.com/how-to-make-a-twitter-bot, http://socialmedia-class.org/twittertutorial.html

Télégramme chatbot

  • Un chatbot qui vous permet d’automatiser les messages télégrammes chat
  • Langage : Python
  • Librairies : Python-Télégramme-API
  • Guide : https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/

Cette liste n’est pas exhaustive. Si vous avez un problème que vous devez résoudre, pensez à la façon dont vous pouvez le résoudre avec la programmation. Cela peut être un projet aussi.

N’abandonnez pas facilement, vous devez dépasser les luttes initiales

La plus grande erreur que vous pouvez faire en tant que programmeur en herbe est d’abandonner parce que vous ne pensez pas que vous êtes assez intelligent pour apprendre à programmer. Apprendre à coder n’a rien à voir avec votre intelligence.

Apprendre la programmation est difficile et la plupart des gens seraient confrontés à des difficultés à un moment donné parce qu’il y a beaucoup de sujets à apprendre. Comme vous programmez, il va y avoir beaucoup de sujets qui ne vont pas avoir de sens la première fois. Alors, abstenez-vous des pensées personnelles négatives.

Moi aussi je suis bloqué. Je dois souvent revoir le même cours ou le même tutoriel vidéo plusieurs fois pour pouvoir saisir le concept. Ne vous découragez pas si vous vous trouvez à ma place.

Il est important de construire une base solide

Aussi élémentaires qu’ils puissent paraître au début, les fondamentaux de la programmation doivent toujours passer en premier : mieux vous les comprenez, plus il est facile d’apprendre des concepts plus avancés. Si le sujet actuel que vous apprenez n’a pas de sens pour vous, restez où vous êtes. Ne passez pas à la rubrique suivante. Sauter en avant est similaire à construire une maison sans base, en négligeant les fondations.

Si le tutoriel (ou le livre) que vous utilisez n’a pas suffisamment expliqué le sujet, vous devrez peut-être trouver d’autres ressources qui vous conviennent. Vous pouvez trouver à peu près tout ce que vous cherchez à apprendre gratuitement sur Google. Déterminez ce que vous devez rechercher (par exemple, dans + tout autre mot clé utile).

Prenez au moins 20 minutes pour comprendre quelque chose par vous-même avant de chercher de l’aide. Il y a de fortes chances que la réponse soit déjà sous vos yeux. Lutter vous fait mieux apprendre et devenir un meilleur programmeur dans l’ensemble.

Stackoverflow et apprendre la programmation sont des mines d’or pour l’aide à la programmation.

Apprendre en faisant. Jouez toujours avec le code pendant l’apprentissage.

Le but est d’être conscient de votre propre apprentissage à mesure que vous progressez dans le parcours d’apprentissage. Par conséquent, ne suivez pas aveuglément les cours et ne copiez pas aveuglément le code sans le comprendre d’abord. Comprenez les concepts qui ont été enseignés dans la leçon et essayez de le recréer.

A mesure que vous progressez, prenez l’habitude de pratiquer votre programmation. Vous pouvez le faire sur leetcode, hackerrank, ou en faisant un projet. Essayez de faire un projet après chaque module avec les concepts que vous avez appris. Quand je faisais des cours en ligne, j’essayais de faire un projet chaque semaine, en appliquant tous les concepts que j’ai appris.

Partie 2 : Feuille de route pour devenir un programmeur avancé

Maintenant que vous avez appris les bases de la programmation, la prochaine étape serait de penser à quelle voie de programmation vous voulez en apprendre davantage. Il existe de nombreuses voies dans lesquelles vous pouvez vous aventurer une fois que vous avez saisi les bases de la programmation, les voies principales et les plus populaires étant le génie logiciel &Analyse de données.

Analyse de données

Qu’est-ce que l’analyse de données ?

L’analyse de données est la science de l’examen des données brutes pour conclure de nouvelles informations. Elle implique l’application d’un processus algorithmique ou mécanique pour en tirer des enseignements. Par exemple, parcourir plusieurs ensembles de données pour rechercher des corrélations significatives entre elles.

Alors, pourquoi devriez-vous apprendre l’analyse de données ? Le Big Data est l’avenir. Il est généré à un rythme exponentiel, et de nombreuses entreprises utilisent ces données pour prendre de meilleures décisions, ainsi que pour vérifier et réfuter les théories ou modèles existants. La demande d’analyse de données devrait augmenter à l’avenir, car les données seront au cœur du processus décisionnel de nombreuses entreprises.

Comment apprendre l’analyse de données gratuitement ?

J’ai passé au peigne fin le programme des universités et j’ai trouvé un chemin pour essayer de faire correspondre les cours gratuits en ligne aux cours universitaires. Cependant, tous ces cours sont en Python, si vous voulez apprendre dans un langage différent, n’hésitez pas à consulter d’autres cours.

Outline of Data Analytics Modules

Le plan est généralement basé sur les modules universitaires. Cependant, j’exclue certains modules importants comme la structure des données et l’algorithme que les universités enseignent, car ils sont plus conceptuels et de niveau supérieur.

Note : j’ai placé l’apprentissage automatique plus haut dans la priorité car il vous permet d’utiliser les compétences que vous avez acquises dans les cours fondamentaux.

Cours fondamentaux

Module 1 : Apprendre les bases de Python (1 mois)

  • Apprendre la syntaxe de Python
  • Apprendre les boucles
  • Apprendre la programmation orientée objet

Module 2 : Pré-traitement des données, visualisation des données, analyse exploratoire des données (1 mois)

  • Apprendre à utiliser les bibliothèques python (matplotlib, numpy et pandas)
  • Ces bibliothèques permettent de manipuler les données

Cours avancés

Module 3 : Apprentissage automatique (2 mois)

  • Préalable : Algèbre linéaire
  • L’apprentissage automatique est un cours assez technique sur les mathématiques
  • Python a une bibliothèque assez complète pour l’apprentissage automatique appelée Scikit-Learn.
  • Si vous voulez une approche plus pratique de l’apprentissage automatique, vous pouvez vérifier Kaggle Learn.

Cours d’outils du monde réel

Module 4 : Bases de données (SQL) (1 mois)

  • Le cours sur les bases de données vous enseigne essentiellement comment les données sont stockées et comment vous pouvez récupérer ces données pour exécuter des fonctions de programmation.
  • Les connaissances pratiques des bases de données et de SQL sont indispensables si vous voulez devenir un data scientist.

Module 5 : Cours sur les outils du monde réel

  • Hadoop & Map-Reduce + Spark(choisissez-en un) (1.5 mois)
  • Ce sont des outils Big Data que l’industrie utilise couramment pour traiter de grandes quantités de données.
  • L’apprentissage des technologies Hadoop vous donnera beaucoup de connaissances fondamentales, de théorie et de compétences pratiques. En outre, vous pouvez trouver quelque chose de nouveau en l’utilisant.
  • Spark est l’implémentation moderne d’Hadoop et voit un cas d’utilisation croissant.

Module 6 : Data Storytelling (1 semaine)

  • Présenter l’histoire avec les données est le chaînon manquant du professionnel de l’analyse pour livrer l’essence des signaux de données et des aperçus aux dirigeants, à la direction et aux autres parties prenantes.

Cours optionnels

  • Structure de données
  • Algorithme
  • Deep Learning
  • En cinq cours, vous apprendrez les fondements du Deep Learning, comprendrez comment construire des réseaux neuronaux et apprendrez à diriger des projets d’apprentissage automatique réussis. Vous pratiquerez toutes ces idées en Python et dans TensorFlow, qu’ils enseigneront.
  • C’est l’un des meilleurs cours d’apprentissage profond qui existent. Actuellement, je suis au milieu de ce cours et je suis d’accord avec les critiques car il est présenté de manière simple et claire malgré le fait que l’apprentissage profond soit un sujet technique.
  • Une autre grande ressource gratuite est fast.ai

Les choses à éviter lors de l’apprentissage de l’analyse des données

Le piège est que vous ne faites qu’apprendre mais que vous n’appliquez pas les connaissances. Une façon dont j’essaie d’appliquer mes connaissances est de commencer un projet après chaque module que j’ai terminé. Pour l’analyse des données, vous pouvez faire de votre mieux dans une compétition de votre choix sur Kaggle. Utilisez Kaggle Learn comme guide utile

Génie logiciel

Qu’est-ce que le génie logiciel ?

En bref, le génie logiciel consiste essentiellement à utiliser des concepts de programmation pour construire des applications

Comment pouvez-vous apprendre le génie logiciel gratuitement ?

Je pense que le génie logiciel nécessite une compréhension plus fondamentale des concepts informatiques que l’analyse des données, donc dans mon plan de modules, j’ai inclus des cours plus théoriques.

Voulez-vous construire des choses pour avoir une sensation ?

Si oui, apprenez Python et allez aux cours pratiques. Vous pouvez toujours revisiter les cours fondamentaux lorsque vous rencontrez un obstacle en termes de connaissances théoriques.

Outline of Software Engineering Modules

Fundamental Courses

Module 1 : Apprendre les bases de Python (1 mois)

  • Apprendre la syntaxe de Python
  • Apprendre les boucles
  • Apprendre la programmation orientée objet

Module 2 : Structures de données (2 mois)

  • Ce cours couvre les structures de données essentielles comme les listes chaînées, les piles, les files d’attente, les arbres binaires et les tables de hachage, ainsi que les algorithmes de recherche et de tri comme la recherche binaire, le quicksort, le mergesort, le tri par insertion, etc.
  • Les structures de données sont importantes car elles nous permettent d’améliorer les performances de notre code en utilisant le meilleur type de données pour notre code.
  • Le cours de structure de données que j’ai recommandé est en Java car il nous oblige à passer d’un langage simple de python à un langage plus verbeux. De plus, Java est bon pour apprendre la programmation orientée objet et les structures de données.

Module 3 : Algorithmes (2 mois)

  • C’est la deuxième partie d’une série de deux cours Coursera gratuits en ligne couvrant les structures de données et les algorithmes par Robert Sedgewick et Kevin Wayne, tous deux professeurs d’informatique.
  • Dans cette partie, vous apprendrez les algorithmes de traitement des graphes et des chaînes de caractères.
  • Vous apprendrez également quelques structures de données et algorithmes avancés utilisés dans le développement d’applications.

Module 4 : (Bases de données) (1 mois)

  • Le cours sur les bases de données vous enseigne essentiellement comment les données sont stockées et comment vous pouvez récupérer ces données pour exécuter des fonctions de programmation.

Module 5 : Mise en réseau (1 mois)

  • Faire un cours de mise en réseau n’est pas très important, donc vous pouvez le sauter si vous voulez. Cependant, si vous êtes intéressé par la cybersécurité, c’est absolument un cours essentiel

Cours pratiques

Module 6 : Semaine 9-10 (Développement Web) (2 Mois)

  • Les sujets comprennent la conception de bases de données, l’évolutivité, la sécurité et l’expérience utilisateur. Grâce à des projets pratiques, vous apprendrez à écrire et à utiliser des API, à créer des interfaces utilisateur interactives et à exploiter des services cloud comme GitHub et Heroku. À la fin du cours, vous émergerez avec des connaissances et de l’expérience dans les principes, les langages et les outils qui vous permettent de concevoir et de déployer des applications sur Internet.
  • Personnellement, c’était mon cours préféré pour le développement Web car ils passent par le front-end et le back-end et c’est très bien expliqué. Ils vous enseigneraient HTML, CSS, Javascript et PHP.
  • C’est une bonne ressource pour les inspirations de sites Web : https://github.com/melanierichards/just-build-websites

Module 7 : Développement d’applications mobiles ( choisissez celui que vous aimez le plus) (2 mois)

  • IOS
  • Android
  • Flutter (Ma méthode préférée de développement d’applications)
  • Personnellement, je n’ai pas appris le développement IOS avant. Mais en comparant entre android et flutter, flutter est plus rapide pour développer et prototyper avec et donc je préfère flutter

Cours avancés

Module 8 : Architecture logicielle (2 mois)

  • Dans ce cours, vous apprendrez à représenter une architecture logicielle en utilisant des outils visuels comme UML, ce qui est très important pour communiquer l’architecture avec les actionnaires ainsi que les développeurs qui l’implémenteront.
  • Vous apprendrez également certaines des architectures standard, leurs qualités et leurs compromis. Le cours parle également de la façon dont les conceptions sont évaluées, de ce qui fait une bonne architecture, et de l’architecture peut être améliorée.

Module 9 : Pratiques de génie logiciel (1 mois)

  • Après avoir terminé ce cours, vous serez en mesure
  1. Appliquer les pratiques de génie logiciel de base au niveau conceptuel pour un problème donné.
  2. Comparer et contraster les méthodologies de développement traditionnelles, agiles et lean à un niveau élevé. Celles-ci comprennent les modèles Waterfall, Rational Unified Process, V, Incrémental, Spiral et aperçu de l’état d’esprit agile
  3. Proposer une méthodologie la mieux adaptée à une situation donnée

Optionnel

Machine Learning

  • J’ai en fait recommandé un cours plus théorique de Machine Learning par Andrew Ng
  • Même s’il est légèrement dépassé, il enseigne bien le concept et reste l’un des meilleurs cours d’apprentissage automatique qui existent après de nombreuses années.

Deep Learning

  • En cinq cours, vous apprendrez les fondements du Deep Learning, comprendrez comment construire des réseaux neuronaux et apprendrez à diriger des projets d’apprentissage automatique réussis. Vous pratiquerez toutes ces idées en Python et dans TensorFlow, qu’ils vous enseigneront.
  • En ce moment, je suis en train de suivre ce cours et il est présenté de manière simple à comprendre. Un autre bon point est qu’Andrew Ng utilise Python au lieu d’octave.
  • Une autre grande ressource gratuite est fast.ai

Conclusion

Bien que j’ai recommandé les modules basés sur des cours universitaires, vous pouvez mélanger et assortir pour faire le meilleur programme d’études pour vous-même. Si cet article vous a aidé, aidez-moi à le partager avec vos amis ! Si vous souhaitez en savoir plus sur moi et sur ce que je fais, rendez-moi visite sur mon site web http://www.chiayong.me/

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.