Meilleure formation Python
Résolu/Fermé- Meilleure formation Python
- Citizen code python avis - Accueil - Outils
- Formation chatgpt gratuite - Accueil - Intelligence artificielle
- Python retour à la ligne dans le code - Forum Python
- Ce programme est écrit en python. ✓ - Forum Python
3 réponses
Salut,
je pense que meilleur formateur ne veut rien dire dans le cas de l'apprentissage d'un langage de programmation.
Ce qui va compter en autodidacte c'est votre travail personnel avant tout et cela prends du temps.
Des bon sites de formation qui plus est gratuit il y en à légion.
De plus le développement logiciel est plus une affaire de méthodologie que de langage spécifique. Il existe des milliers de langages de programmation et des centaines sont couramment utilisés. Mais si vous en connaissez un vous les connaissez tous plus ou moins; certes il existe des grandes catégories comme langage de bas niveau(plus proche de l'ordinateur et de ce qui se passe dans l'électronique) et langage de haut niveau(plus proche des concepts humains ou plutôt basé sur la modélisation de ceux ci) et langage compilé versus langage interprété(ce qui définit comme un programme est traduit en son résultat) MAIS la logique d'un programme reste la même en gros.
Il y a plusieurs point clés à la base d'un programme qui ne sont pas relatif à un langage:
L'algorithme qui décrit la structure logique(séquentielle) du traitement d'un programme.
L'analyse des besoins exprimés, l'analyse et la conception d'un systèmes d'informations.
Le premier définit la demande et son application informatique(fonctionnels). Le second est assez similaire mais correspond au traitement et l'organisation des informations. Dans une base de données par exemple des données qui seront organisés en regroupements cohérents par rapport aux besoins exprimés(cahier des charges) plus le programme sera simple à développer et les risques d'erreurs pourront éviter. Dans le cas contraire(une mauvaise organisation des entités de données) ne pourra que déboucher sur un programme qui ne sera pas fonctionnel, performant et encore moins évolutif.
Par analyse des besoins je parle de concevoir des applications cohérentes avec celles ci.
Si quelqu'un veut gérer des livraisons et stocks il faut donc "imaginer" un modèle cohérent qui prendra en compte tout les cas possibles et spécificités de la façon la plus exhaustive. Cela est bien sûr en corrélation avec les informations qui doivent être traitées par le programme mais axé sur les fonctionnalités(valider une entrée de stocks, faire une commande de stocks et bien d'autre choses sont des fonctionnalités nécessaires...).
Les paradigmes de programmation:
Un paradigme est un vision ou modèle qui permet d'organiser le programme. Il existe de nombreux niveaux où ceux ci peuvent être appliqués et nécessités qu'ils font qu'ils sont nécessaire pour la conception:
Le plus simple: la logique séquentielle, une suite d'instructions du programme qui font différentes choses et peuvent comprendre des bifurcations
La modélisation Modèle Vue Contrôleur(MVC):
On parle aussi d'architecture logicielle.Le but est de séparer en plusieurs entités des rôles différents du programme. L'avantage de cette approche est de permettre que chaque partie soit indépendant l'un de l'autre. Cela permet de rendre un programme organisé, plus facilement modifiable et en définitive de réutiliser chaque partie séparément.
La partie modèle se concentre sur le traitement des règles propres au programme(comme la gestion des données).
La partie Contrôleur sur les interactions avec l'utilisateur du programme.
La partie Vue concerne l'affichage.
Cette approche conceptuelle(dénué de tout langage de programmation au début en tout cas) permet donc de pouvoir utiliser un même modèle dans différents contextes d’application, un même affichage pour différents modèles, un même contrôleur(l’accès de l'utilisateur au programme) indépendant de ce que doit faire le programme où de comment l'affichage est définit.
Le paradigme Objet(Programmation Orienté Objet):
L'idée est de regrouper plusieurs éléments par thématiques cohérentes(selon le but du programme et son contexte). A l'intérieur d'un objet sont dictées les règles et informations associées. On peut décliner un objet et changer ses propriétés(héritage de l'objet parent ->enfant). Sans rentrer dans des détails techniques la sécurité peut grandement être améliorée en sectionnant à l'interne de l'objet le traitement du programme.
Le plus grand avantage est de pouvoir décliner les objets en sous ensemble(objet parent) et éviter de réécrire plusieurs fois des choses similaires.
Bon ce n'est pas très clair, je me doit d'utiliser un exemple:
Nous définissons un objet Véhicule. Celui ci comprends(attribut) un nom, un type de véhicule et les méthodes (règles de l'objet)avancer, s'arrêter.
Un objet enfant de véhicule(décliné de véhicule) pourrait être l'objet Automobile.
L'objet Automobile comprends toutes les propriétés de Véhicule(nom, type= "motorisé", méthodes avancer et s'arrêter)une marque, un nombre de roues fixé à 4.
L'objet Moto se décline de l'objet Véhicule et comprends toutes les règles de l'objet Véhicule, une marque, un nombre de roues fixé à 2.
On peut très bien imaginer décliner Moto de course de l'objet Moto, Voiture de Course de l'objet Automobile, Camion de l'objet Automobile(en changeant le nombre de roues), les caractéristiques communes de chacune ne seront plus à redéfinir.
*La plupart des langages de programmation actuels utilisent le paradigme Objet.
Comme vous voyez ces modèles ou organisation du modèle du programme ne s'excluent pas mutuellement. Un programme peut être MVC, Objet et séquentiel. En fait ils le sont tous ou presque, j'ai pris ces exemples de méthodologies(organisation et modélisation du programme) car ce sont les plus communs et utilisés. Bien sûr il en existe bien d'autres qui peuvent s'ajouter ou se différencier pour le modèle et l'organisation du programme.
Mais l'idée est de vous dire que ce n'est clairement pas l'écriture de lignes d'instructions l'essentiel de la conception d'un programme.
Bon en ce qui concerne l'apprentissage pas de meilleur, le mieux est d'aller piocher dans les plus connus et mieux référencés en autodidacte. L'un n'excluant pas l'autre. Bien sûr il y a des niveaux de compréhension et il est logique de commencer par les cours adressés au novices puis de s'orienter vers des cours plus spécifiques.
Justement c'est là aussi que pas de meilleurs prends son sens. Une fois quelques bases acquises ce sont vos recherches qui vont permettre de vous intéresser à un point particulier.
Donc plus que de choisir un tel ou un tel comme maître absolu c'est quel point précis vous voulez éclaircir.
Ensuite pourquoi Python? Quels sont ses aspects spécifiques qui vous semblent plus cohérents et nécessaires plutôt que C#, C++ ou Java(ne pas confondre avec JavaScript). J'ai dit que les langages de programmation fonctionnaient tous de la même façon mais chacun à un rôle spécifique par rapport à un contexte donné. Ils peuvent même être complémentaires selon le rôle qu'ils ont dans un programme(ex: un langage de bases de données comme SQL permet de gérer le stockage et accès aux informations de la base de données tandis qu'une autre partie du programme dans un autre langage va gérer le reste).
En dernier lieu de cette longue réponse 2 autres points importants:
Si vous visez une professionnalisation vous pouvez peut-être vous orienter vers la formation professionnelle(voire académique) après quelques temps de cours sur Internet histoire de vérifier si cela est fait pour vous. Un livre aussi peut être complémentaire sur la première étape et pour le reste la formation pour adulte dans ces métiers existe et est assez facile à trouver(en France il y a aussi le CIF et autres mesures de reclassement pro.). Mais on parle bien de métiers qui nécessitent une formation de 2/3 ans après le bac(sans parler du niveau ingénieur) même s des formations plus accessible et rapide existent celui implique du temps et du travail.
Si vous pensez avoir l'idée du siècle oubliez. Vous n'êtes pas un génie jusqu'à preuve du contraire et la plupart des choses qui ont été nécessaires à créer l'ont été. Au contraire l'humilité et savoir que l'on ne sais pas est la bonne façon d'apprendre ;)
Ce qui est important ce n'est pas le langage ou l'outil particulier utilisé mais la méthodologie(analyse et conception) derrière. Et cela s’apprend même si vous pouvez trouver du plaisir dans l'écriture d'un langage en particulier et la pratique d'un logiciel de développement spécifique l'écueil est de ne pas avoir une vision d'ensemble.
Que ce soit en amateur ou pro si vous apprenez seul une bonne idée est d'avoir un objectif à réaliser. Le mieux étant de commencer simple puis ajouter au fur à mesure. Ce n'est pas la bonne façon pour un bon développement(parce que c'est la vue d'ensemble qui permet les bonnes pratique) mais une bonne façon pour apprendre.
Au contraire ne vous limitez pas à une seule source d'informations, il se peut que tel ou tel cours ne soit pas fait pour vous, que vous soyez découragé parce que vous n'avez pas compris tel ou tel point sur lequel vous bloquez. Donc changer de cours permet de sortir de cela ainsi que passer les quelques étapes de bases. Une fois quelques bases acquises pas mal de cours plus techniques/théoriques(comme ceux des facs) sont aussi disponibles en ligne. Savoir ou chercher(les manuels des langages sont aussi là pour vous aider et les sites officiels fournissent pas mal de ressources et même des cours : https://www.python.org/ même si ils ne seront pas toujours les meilleurs ou les plus accessibles ils existent)
Bon courage et bon travail.
Modifié le 14 sept. 2022 à 13:45
Bonjour,
Une site sympa:
https://python.developpez.com/cours/apprendre-python3/
Un autre:
https://allen-downey.developpez.com/livres/python/pensez-python/
Un grand merci Abibi pour cette super réponse j'espérais pas une réponse si complète. En fait après mes recherches il s'est avéré que Python est le langage le + adapté à mon besoin. Mon avantage aussi c'est que j'ai un projer très précise du programme que je veux créer. Je veux créer exactement le même outils que j'ai créé avec Excel/Vba, mais dans un logiciel. Mon outil Excel/Vba récupère ses données via un export depuis L'ERP de l'entreprise. J'importe cette base de donnée dans mon excel qui contient n° de cde/nom client adresse, particularité de livraison etccc. J'avais essayé d'apprendre seul Python et j'avais bloqué ne trouvant pas comment travailler à partir d'une base de données externes importée.... J'ai décidé grâce à vos conseils de commencer à apprendre avec des supports gratuits en ligne dans un 1er temps. J'ai commencé hier soir avec des cours youtube "APPRENDRE PYTHON DE A À Z"qui ont l'air sympa. Je verrai ensuite selon où cela me mène. Je vous tiedrai informé :) Merci beaucoup...