Python >> Tutoriel Python >  >> Python

Le guide ultime pour commencer à apprendre Python

Vous cherchez le meilleur moyen de devenir un développeur Python professionnel ? Après avoir lu cet article, vous aurez un plan limpide sur la façon de commencer à apprendre Python .

Vous n'avez besoin d'aucune compétence en programmation pour que ce plan fonctionne. En bref, vous investissez 70 % de votre temps d'apprentissage dans des projets pratiques et 30 % dans la maîtrise des bases et de la théorie pour faire moins d'erreurs et apprendre les concepts.

Pourquoi apprendre Python ?

Certes, avant d'investir des centaines d'heures dans l'apprentissage d'un nouveau langage de programmation, vous voulez savoir que cela rapportera. Laissez-moi vous assurer :ce sera le cas !

Le codage est l'une des professions les mieux rémunérées au monde. Le salaire moyen d'un développeur Python aux États-Unis est de 116 379 $ (source). Apprendre à coder pourrait facilement être la décision la plus rentable de votre vie .

La raison pour laquelle le codage est bien rémunéré est qu'il est très demandé par l'industrie et le milieu universitaire.

INDUSTRIE

Dans l'industrie, le codage est une compétence cruciale pour tirer parti du gain de productivité des machines virtuelles et physiques.

  • Vous avez besoin de logiciels (par exemple, des programmes de CAO) pour fabriquer des millions de produits tels que des voitures, des jouets, des gratte-ciel et des smartphones.
  • Vous avez besoin de logiciels (par exemple, des applications d'intelligence artificielle) pour créer des robots humanoïdes, des voitures autonomes, des robots de fabrication, des systèmes de recommandation et une myriade d'appareils intelligents dans l'Internet des objets.
  • Vous avez besoin d'un logiciel pour exécuter des moteurs de recherche comme Google, des acteurs du commerce électronique comme Amazon et des réseaux sociaux comme Facebook.

Le logiciel n'est pas une industrie de plus ; c'est une force irrésistible qui perturbe toute autre industrie de l'économie mondiale.

ACADÉMIE

Dans le milieu universitaire, la plupart des groupes de recherche utilisent des logiciels dans leur processus de recherche. Au cours des dernières décennies, les logiciels ont permis de puissantes recherches scientifiques en informatique et en intelligence artificielle. Des domaines de recherche sémantiquement proches tels que les mathématiques, la physique et le génie électrique s'appuient déjà sur les logiciels en tant que partie intégrante de la recherche. Mais les logiciels ont également eu un impact durable sur les régions éloignées telles que la linguistique, l'histoire et la musique.

Voyez-vous pourquoi apprendre à coder est une bonne idée ? Voyez-vous l'avantage d'entrer dans ce domaine à plein temps, en tant que développeur de logiciels ? En tant que codeur, vous aurez un pied dans la porte de n'importe quelle zone dans laquelle vous souhaitez entrer. Peu importe que vous souhaitiez obtenir un doctorat. dans n'importe quel domaine scientifique, créez des applications Web, démarrez votre propre entreprise ou étudiez des langues étrangères. Python est votre ticket vers le succès.

Combien de temps faut-il à un débutant pour apprendre Python ?

Alors disons que vous savez peu de choses sur le codage, que vous êtes mauvais en maths et que vous ne connaissez aucun algorithme. Pire encore, vous ne savez pas comment apprendre efficacement ?

Il vous faudra 219 créneaux de 25 minutes pour apprendre Python (source). C'est 5 475 minutes, 92 heures ou 12 journées de huit heures d'apprentissage ciblé.

Bien sûr, vous pouvez débattre pour savoir si vous pouvez vous considérer comme un codeur avancé à ce stade. Même ainsi, vous pourrez créer des projets pratiques, vendre vos services en tant que pigiste et résoudre la plupart de vos problèmes de codage pratiques. (C'est-à-dire si vous êtes patient et disposé à apprendre). En fait, 92 heures représentent plus de quatre fois l'investissement en temps proposé dans une célèbre conférence TED intitulée "Les 20 premières heures - comment apprendre quoi que ce soit" .

L'un des principaux enseignements de la conférence est d'apprendre de manière probabiliste ! Concentrez-vous sur les compétences pratiques. Ne perdez pas votre temps d'apprentissage sur des compétences indirectes telles que les mathématiques, la logique ou la théorie algorithmique. Cela augmentera certainement vos compétences dans ces domaines. Mais votre objectif principal est d'apprendre Python, n'est-ce pas ? Si vous voulez apprendre Python, commencez et terminez votre journée en codant Python en réalisant des projets pratiques. Apprenez les bases au fur et à mesure que vous poussez vos projets pratiques.

Combien d'argent pouvez-vous gagner avec Python ?

Une façon de gagner de l'argent avec Python est de vendre vos compétences Python sur le marché libre en devenant un développeur Python indépendant. En tant que développeur Python indépendant, vous pouvez vous attendre à gagner entre 10 $ et 80 $ de l'heure avec un salaire moyen de 51 $ (source). Votre style de vie sera différent lorsque vous gagnez 10 $ par rapport à 80 $. C'est conduire une Volkswagen contre conduire une Porsche. Mais la différence de qualité des pigistes Python sur le marché libre est au moins aussi énorme. Pour obtenir une attente raisonnable de votre revenu, prenez le salaire moyen comme point de départ et ajoutez +/- 50 % pour tenir compte de votre expertise individuelle.

Concert parallèle en freelance : Disons que vous faites du freelance à côté pendant 8 heures chaque samedi. Vous pouvez vous attendre à gagner 400 $ de plus par semaine ou 1 600 $ par mois (avant taxes). Votre revenu réel sera un peu inférieur car vous devez commercialiser vos services pour trouver des clients payants.

Freelance à temps plein : Si vous travaillez 8 h par jour et 5 jours par semaine, vous pouvez gagner six chiffres :2 078 heures par an x ​​51 $ =105 987 $ par an — depuis chez vous ! N'est-ce pas génial pour une entreprise indépendante basée sur un canapé ?

Employé Python : Un autre moyen de tirer un revenu de vos compétences Python consiste à obtenir un poste de développeur Python. En d'autres termes, vous travaillez en tant qu'employé pour une entreprise établie. Encore une fois, le salaire moyen d'un développeur Python aux États-Unis est de 116 379 $ . Le travailleur moyen travaille 2 078 heures par an (source). En utilisant le diviseur de 2 078 heures, nous calculons le salaire horaire comme suit :116 379 $ / 2 078 heures =56 $. Étonnamment, c'est encore plus que le salaire moyen d'un pigiste Python. Vous devriez donc envisager cette option jusqu'à ce que vous deveniez un développeur Python supérieur à la moyenne.

Qu'est-ce qu'un bon plan de formation Python ?

Le but de ce plan de formation est de vous faire passer du niveau débutant Python au niveau intermédiaire. En tant que codeur intermédiaire, vous pouvez commencer à gagner de l'argent en tant que pigiste Python. Il existe 3 voies principales pour monétiser vos compétences Python.

  • Tout d'abord, postulez pour les postes Python.
  • Deuxièmement, vendez vos compétences sur le marché libre.
  • Troisièmement, développez vos propres projets Python.

Dans tous les cas, j'ai élaboré un plan de formation qui convient à votre besoin. Mais avant de plonger dedans, vous devez déterminer le nombre de minutes que vous souhaitez investir chaque jour dans Python. Quel est votre numéro ?

Le plan est pratique :réservez 70 % de votre temps à des projets pratiques. Sélectionnez soit un projet personnel, soit un projet indépendant archivé à des fins de formation, soit un véritable projet indépendant. La section suivante décrit en détail comment trouver des projets de code pratiques.

Commencez par un projet simple et terminez-le. Permettez-moi de répéter :il est essentiel que vous terminiez chaque projet que vous avez commencé.

Vous devez développer votre confiance en vous pour réussir dans votre carrière. N'arrêtez pas de travailler sur un projet parce qu'il devient moche ! Travaillez sur le projet jusqu'à ce que vous ayez un produit minimum viable (MVP) ! Le codage devient TOUJOURS moche. Votre meilleur allié est votre persévérance. Continuez à pousser jusqu'à ce que toute résistance s'effondre.

Boîte d'informations "MVP" : Réfléchissez à la façon dont vous pouvez simplifier le logiciel, comment vous pouvez vous débarrasser de toutes les fonctionnalités sauf une, et comment vous pouvez créer un produit minimum viable qui accomplit la même validation de vos hypothèses que la mise en œuvre « complète » de vos idées aurait accomplie. Ce n'est que si vous savez quelles fonctionnalités le marché accepte - et quelles hypothèses sont vraies - que vous devriez ajouter plus de fonctionnalités et plus de complexité. Mais à tout prix, évitez la complexité. Formulez une hypothèse explicite, telle que les utilisateurs aiment résoudre des énigmes Python, et créez un produit qui valide uniquement cette hypothèse. Supprimez toutes les fonctionnalités qui ne vous aident pas à valider cette hypothèse.

Enfin, voici le plan de formation pratique . Divisez votre temps d'entraînement en quatre blocs. Tout d'abord, travaillez sur un projet Python pratique jusqu'à ce que vous obteniez votre produit minimum viable. Deuxièmement, résolvez des énigmes de code et regardez des vidéos éducatives. Troisièmement, travaillez sur un cours Python. Et quatrièmement, lisez la documentation et parcourez les bibliothèques pertinentes pour votre projet pratique.

Divisez le temps comme 70% / 10% / 10% / 10%. Vous pouvez utiliser le premier bloc de temps pour acquérir les connaissances dont vous avez besoin pour terminer le projet. J'ai ajouté des ressources qui vous aident à compléter l'un d'entre eux.

Plan de formation

  1. (70 %) Travailler sur des projets Python pratiques
    • Testez vos compétences avec l'application Web Finxter → Obtenez votre note Elo
    • Si la cote Elo> 1 700
      • Devenez un pigiste Python.
    • Sinon
      • Recherchez des projets Python indépendants archivés et résolvez-les

      Vous pouvez télécharger gratuitement toutes les feuilles de triche Finxter ici :

      Développez un état d'esprit axé sur le projet

      Qu'est-ce qui est le plus utile pour votre productivité de codage ?

      Hier, j'ai programmé sur mon application de formation Python Finxter.com pour résoudre des puzzles Python. Pour déployer cette application, j'utilise Django qui est également un framework Python. J'ai réalisé que le défi n ° 1 n'était pas la partie Python mais de combiner différentes technologies pour faire fonctionner l'objectif plus large.

      Par exemple, pour faire fonctionner un projet, vous devez connaître Python, la bibliothèque Django, les systèmes d'exploitation, la ligne de commande, les scripts shell, HTML, CSS, JavaScript, le modèle Django (comment remplir du contenu dynamique dans la page HTML), les serveurs Web, la technologie Apache, le service de fichiers statiques et dynamiques, les bases de données pour les applications plus importantes, etc.

      Toute cette pile est énorme. Et si vous voulez créer vos propres applications et commencer à gagner de l'argent en tant que développeur Python, vous devez résoudre complètement ce problème. Vous devez combiner toutes ces technologies, l'ensemble de la pile, en une seule application qui fonctionne. Et bien sûr, faire cela n'est souvent pas très propre du tout. C'est sale et désordonné.

      Où investir votre temps d'apprentissage ? Un problème d'optimisation multidimensionnel — avec une solution simple (lisez la suite).

      Bien qu'il soit généralement logique d'isoler certaines de ces technologies ou langages de programmation et de les apprendre séparément (par exemple, apprendre Python en résolvant des énigmes Python), ce n'est encore que la pointe de l'iceberg.

      En faisant cela, vous améliorez votre niveau de compétence dans un seul domaine. Mais ce que vous devez faire, c'est prendre du recul, regarder le paysage mondial et apprendre ce que vous devez savoir - en ce moment - pour terminer le projet.

      C'est pourquoi les étudiants Python ne doivent pas simplement se concentrer sur Python, mais se concentrer sur la livraison d'un projet de code auto-imposé.

      Un exemple est mon projet d'apprentissage basé sur des puzzles Finxter.com. Mais vous pouvez également sélectionner des projets tels que "créer votre propre chatbot", "créer votre propre programme de trading de crypto-monnaie", "analyser les données Twitter pour trouver des sujets d'actualité", etc. Ensuite, vous choisissez simplement la technologie qui vous permet de terminer le projet le plus rapidement possible. Vous ne vous concentrez pas trop sur une seule langue, car cela vous limitera la vue et limitera considérablement votre productivité en matière de codage.

      Comment passer votre temps d'apprentissage est un facteur très important pour votre carrière - cela peut être la décision la plus importante de votre vie. Dans mon cours "Atteignez le niveau Python Freelance en 3 mois", je recommande de diviser votre temps en 70 % d'implémentation de projets de code pratiques et 30 % de théorie.

      Ainsi, 70% de votre temps d'apprentissage devrait en fait être investi dans la mise en œuvre et la finition de votre propre projet (si vous ne savez pas lequel, lisez mon article avec 10 projets Python pratiques pour commencer). Cela garantit que vous ne perdez pas de vue l'objectif global - et n'apprenez que pour le plaisir d'apprendre. Cela vous obligera à adopter une vision globale et à vous concentrer sur la façon dont les différentes pièces s'emboîtent.

      La partie théorique n'existe que pour alimenter votre progression dans des projets de code pratiques. Par exemple, vous résolvez des puzzles Python pour augmenter vos compétences Python, pour être plus productif dans le codage de votre propre projet lié à Python.

      C'est comme un problème d'optimisation où vous êtes souvent coincé dans les minima locaux. Si vous ne résolvez que des projets concrets, vous allez rester bloqué dans un minimum local car vous n'avez plus l'impression d'avancer. C'est pourquoi vous avez la partie théorie pour vous pousser hors de ce minimum local en augmentant encore plus votre niveau de compétence.

      En résumé, adoptez un état d'esprit axé sur le projet. Les technologies concrètes sont vraiment secondaires (et en constante évolution aussi). Pour moi, en tant que professeur de Python, il serait facile de recommander de concentrer votre temps d'apprentissage sur Python. Mais je veux que vous progressiez vers vos objectifs de terminer des projets de code pratiques.

      Dans le monde réel, apprendre une seule technologie n'est pas la façon dont cela fonctionne. Vous devriez considérer l'ensemble du tableau. Vous sélectionnez la technologie qui résout votre problème de la manière la plus rapide et la plus simple. Et puis vous résolvez le problème. Et ce faisant, vous créez de la valeur pour la société et le marché et gagnez de l'argent dans le processus en vendant vos services ou votre produit.

      Si vous souhaitez en savoir plus sur l'état de l'art en tant que pigiste Python, consultez mon webinaire gratuit (liens vers le site Web de Finxter) - vous obtiendrez trois hacks pour une super productivité afin d'augmenter votre taux horaire.

      Quels sont les 5 meilleurs livres Python ?

      Il y a quelques années, pendant mes études en informatique, j'ai interrogé mes camarades sur leur livre d'informatique préféré. Plus de la moitié d'entre eux ont admis qu'ils n'avaient même pas lu un seul manuel ! Choquant.

      Les manuels d'informatique ont un objectif important. Ils vous poussent profondément dans le terrier du lapin. Ils vous donnent une compréhension conceptuelle des fondements et des méthodes que vous appliquez au quotidien. Sans manuels, vous ne développerez une compréhension approfondie d'aucun sujet.

      Certains auteurs de livres ne semblent pas comprendre ce rôle important de plonger profondément, d'enseigner les concepts sous-jacents. Ils écrivent des livres superficiels fournissant des compilations de ressources en ligne existantes.

      Mais si vous lisez les bons livres, vous atteindrez un niveau de compréhension du code que vous ne pouvez pas facilement atteindre en parcourant les ressources en ligne et les articles de blog.

      Pour plonger profondément dans Python, lisez les 5 livres Python suivants dans votre temps d'apprentissage de 30 %. Chacun des auteurs de livres a passé des heures à optimiser ses descriptions de livres. Je prends donc leurs paroles pour vous dire de quoi parlent leurs livres. Décidez vous-même lequel vous voulez lire en premier.


      Apprendre Python par Mark Lutz :

      "Obtenez une introduction complète et approfondie au cœur du langage Python grâce à ce livre pratique. Basée sur le cours de formation populaire de l'auteur Mark Lutz, cette cinquième édition mise à jour vous aidera à écrire rapidement du code efficace et de haute qualité avec Python. C'est un moyen idéal pour commencer, que vous soyez novice en programmation ou développeur professionnel maîtrisant d'autres langages.


      Cours intensif Python par Eric Matthes :

      "Python Crash Course est une introduction rapide et approfondie à Python qui vous permettra d'écrire des programmes, de résoudre des problèmes et de créer des choses qui fonctionnent en un rien de temps. Dans la première moitié du livre, vous apprendrez les bases concepts de programmation, tels que les listes, les dictionnaires, les classes et les boucles, et entraînez-vous à écrire du code propre et lisible avec des exercices pour chaque sujet. Vous apprendrez également à rendre vos programmes interactifs et à tester votre code en toute sécurité avant de l'ajouter à un projet. Dans la seconde moitié du livre, vous mettrez vos nouvelles connaissances en pratique avec trois projets substantiels :un jeu d'arcade inspiré de Space Invaders, des visualisations de données avec les bibliothèques super pratiques de Python et une simple application Web que vous pouvez déployer en ligne.


      Pensez Python :comment penser comme un informaticien par Allen Downey :

      "Si vous voulez apprendre à programmer, travailler avec Python est une excellente façon de commencer. Ce guide pratique vous guide pas à pas dans le langage, en commençant par les concepts de base de la programmation avant de passer aux fonctions, à la récursivité, aux structures de données et à la conception orientée objet. Cette deuxième édition et son code de support ont été mis à jour pour Python 3.

      Grâce aux exercices de chaque chapitre, vous testerez les concepts de programmation au fur et à mesure que vous les apprendrez. Think Python est idéal pour les étudiants de niveau secondaire ou collégial, ainsi que pour les autodidactes, les étudiants scolarisés à domicile et les professionnels qui ont besoin d'apprendre les bases de la programmation. Les débutants qui ne font que se mouiller les pieds apprendront comment démarrer avec Python dans un navigateur."


      Une manière plus intelligente d'apprendre Python :apprenez-le plus rapidement. Souvenez-vous-en plus longtemps. par Mark Myers :

      "Je n'étais pas assez intelligent pour apprendre un langage informatique comme Python, jusqu'à ce que je comprenne comment l'apprendre.

      J'étais assez intelligent pour obtenir un baccalauréat spécialisé en philosophie à Harvard, mais un test d'aptitude m'a dit d'éviter la programmation informatique. Je suis sûr que c'était vrai. Mais ensuite, j'ai conçu un système d'apprentissage pour moi-même qui a quadruplé mon aptitude à apprendre les langages informatiques. Il a si bien fonctionné pour moi que je l'ai utilisé pour enseigner le codage à des grands-mères, des chauffeurs de taxi, des musiciens et 50 000 autres débutants."


      Coffee Break Python :50 séances d'entraînement pour démarrer votre compréhension rapide du code en Python par Christian Mayer :

      "Peu de temps pour apprendre Python ?

      Les puzzles Python vous aident à apprendre plus rapidement, plus intelligemment et mieux. Ce livre propose 50 puzzles de code éducatifs, 10 conseils pour un apprentissage efficace, 5 aide-mémoire Python et 1 moyen précis de mesurer vos compétences en codage. 21 000 étudiants Python ont déjà amélioré leurs compétences en codage sur notre académie d'apprentissage basée sur les puzzles Finxter.com."

      Quels sont les 5 meilleurs cours Python ?

      Tout d'abord, clarifions les caractéristiques des cours de haute qualité.

      • Un bon parcours offre une transformation :il vous mène d'un point A à un point B. Ainsi, le meilleur parcours définit clairement le point A et le point B.
      • Un bon cours implique des projets pratiques. Ainsi, un cours est généralement beaucoup plus interactif qu'un livre.
      • Un bon cours exploite plusieurs supports, y compris la vidéo, le texte, les quiz et le matériel audio.

      Nous utilisons ces caractéristiques pour classer les 5 cours populaires suivants sur 5 plateformes différentes (Coursera, Udemy, Udacity, Youtube et Teachable). Une ressource complète sur les meilleurs cours Python est donnée ici.


      Python pour tous

      Quelle est la plate-forme ? Coursera a été fondée en 2012 par Andrew Ng et compte plus de 33 millions d'utilisateurs enregistrés (2018).

      Qui est le fournisseur ? Université du Michigan

      Combien cela coûte-t-il ? 415 $

      Quelle est votre transformation (A → B) ?

      • Point de départ A :"Spécialisation débutant. Aucune expérience préalable requise."
      • Point final B : "Cette spécialisation vous préparera à suivre d'autres cours et à développer des compétences avancées."

      Les projets pratiques font-ils partie du programme ? Oui

      Quels supports d'apprentissage sont exploités ? Vidéo, texte, quiz, projets d'entraînement


      Bootcamp Python complet :passez de zéro à héros dans Python 3

      Quelle est la plate-forme ? Contrairement à Coursera, la plateforme Udemy se concentre sur les cours dispensés par des personnes expérimentées plutôt que sur de grandes institutions universitaires. Il s'agit plutôt d'un système d'éducation entre pairs.

      Qui est le fournisseur ? José Portilla

      Combien cela coûte-t-il ? 11,99 $

      Quelle est votre transformation ? "Passez de zéro à héros en Python 3"

      Les projets pratiques font-ils partie du programme ? Oui

      Quels supports d'apprentissage sont exploités ? Vidéo, texte, quiz, projets d'entraînement


      Introduction à l'informatique

      Quelle est la plate-forme ? Udacity est une plate-forme éducative à but lucratif fondée par le professeur de Stanford Sebastian Thrun en 2011. Ils proposent des cours techniques créés par des leaders de l'industrie avec une tendance à l'aspect pratique.

      Qui est le fournisseur du cours ? David Evans

      Combien cela coûte-t-il ? $0

      Quelle est votre transformation (A → B) ?

      • Point de départ A :"On ne s'attend pas à ce que vous ayez une expérience préalable en programmation avant d'entrer dans le cours."
      • Point final B : "À la fin du cours, vous comprendrez les grandes idées des moteurs de recherche ainsi que la façon de lire et d'écrire vos propres programmes informatiques."

      Les projets pratiques font-ils partie du programme ? Oui

      Quels supports d'apprentissage sont exploités ? Vidéo, texte, quiz, projets d'entraînement


      Apprendre Python – Cours complet pour débutants

      Quelle est la plate-forme ? Youtube est une plateforme entièrement décentralisée et gratuite pour partager toutes sortes de vidéos.

      Qui est le fournisseur ? freeCodeCamp.org

      Combien cela coûte-t-il ? $0

      Quelle est votre transformation ?

      • Point de départ A :"Débutant."
      • Point final B : "Suivez les vidéos et vous serez un programmeur Python en un rien de temps !"

      Les projets pratiques font-ils partie du programme ? Non

      Quels supports d'apprentissage sont exploités ? Vidéo

      Devenir un pigiste Python

      Quelle est la plate-forme ? Teachable est une plate-forme décentralisée pour les cours auto-hébergés sur n'importe quel sujet. C'est d'individus à individus.

      Qui est le fournisseur ? Christian Mayer

      Combien cela coûte-t-il ? 179 $

      Quelle est votre transformation ? "Comment devenir un développeur Python en moins de 2 mois (un café à la fois)"

      • Point de départ :Débutant en Python
      • Point final :pouvoir vendre vos compétences en tant que pigiste Python

      Les projets pratiques font-ils partie du programme ? Non, l'accent est mis sur les questionnaires et la compréhension rapide du code plutôt que sur des projets de code pratiques.

      Quels supports d'apprentissage sont exploités ? Basé sur des quiz, du texte, du matériel vidéo, un accès premium aux puzzles de code @Finxter.com.

      Quelles sont les 4 meilleures plateformes de formation en ligne gratuites ?

      Vous pouvez démarrer rapidement vos compétences Python facilement via ces ressources en ligne :

      • Le didacticiel Python officiel. Ce didacticiel est complet, compréhensible et pratique.
      • Codeacademy. Cette plate-forme en ligne propose des cours gratuits pour différents langages de programmation tels que Python, Java, JavaScript et HTML/CSS.
      • Tutoriel Python. Il s'agit d'une collection d'articles gratuits et approfondis sur divers sujets tels que les listes Python, les structures de données et les fonctions.
      • Fixter. Notre salle de formation Python en ligne gratuite est axée sur l'amélioration continue en résolvant des puzzles Python notés. Vous pouvez non seulement former vos compétences, mais également tester et comparer vos compétences Python avec celles d'autres programmeurs.

      Merci d'avoir lu cet article jusqu'au bout. Alors, quelle est votre clé à emporter? Apprenez Python en résolvant 70 % de projets pratiques (par exemple, des projets indépendants archivés) et 30 % de théorie (par exemple, la résolution de puzzles de code).