Newbie enseignant auto python, quoi d'autre devrais-je apprendre? [fermé]

StackOverflow https://stackoverflow.com/questions/805720

  •  03-07-2019
  •  | 
  •  

Question

Je suis un débutant en programmation. J'ai eu 1 semestre d'informatique (nous avons utilisé Java). J'ai eu un A dans le cours et j'étais capable de tout faire, mais je ne suis pas sûr de l'avoir vraiment compris. J'ai ignoré le texte et j'ai appris en consultant des exemples de programmes, puis des essais et des erreurs. J'étais en avance sur la classe, à l'exception de deux gars qui connaissaient Java ou une autre langue POO.

J'aimerais apprendre le python. Je vais aussi construire un deuxième PC à partir de parties supplémentaires que j'ai et utiliser Linux. En gros, je veux approfondir mes connaissances en informatique. C’est ma motivation.

Maintenant, en apprenant python, existe-t-il de bons livres de théorie de la programmation qui seraient utiles? Ou devrais-je en savoir plus sur le fonctionnement des ordinateurs aux niveaux les plus bas? Je ne pense pas en savoir assez pour poser la question que je veux.

Pour simplifier les choses, je demande ce que je devrais savoir pour tirer le meilleur parti de l’apprentissage du python. Ce n'est pas pour une carrière. Cela vient d'un désir de savoir. Je ne suis plus un étudiant en sciences informatiques (cela n’aurait pas non plus d’application directe à ma carrière envisagée.)

Je ne cherche pas à apprendre dans " 30 jours " ou "1 semaine" ou peu importe. Donc, partir d'un niveau très basique me convient parfaitement.

Merci d'avance. J'ai fait une recherche et n'ai pas trouvé ce que je cherchais.

MISE À JOUR: Merci pour tous les bons conseils. J'ai trouvé ce site au travail et je ne le trouvais pas sur mon ordinateur personnel. Je commence donc à lire maintenant.

Était-ce utile?

La solution

Ma recommandation est de toujours commencer par un niveau d'abstraction élevé. Vous n'avez pas besoin de savoir comment fonctionnent les portes logiques et comment les utiliser pour construire un processeur: c'est cool, mais c'est cool, ça fait beaucoup plus de sens une fois que vous avez mal joué aux niveaux supérieurs. Python est donc un excellent choix comme outil d’apprentissage.

Comment penser comme un informaticien: apprendre à utiliser Python est disponible sur Internet et constitue une excellente introduction aux concepts de haut niveau qui font que les ordinateurs disparaissent. Et c'est même spécifique à Python.

Si vous souhaitez que votre cerveau soit à l'envers, SICP fera du bon travail. Je ne le recommande cependant pas comme premier texte; c'est lourd.

Ces deux livres sont de haut niveau. Ils ne vous apprendront rien sur les détails de bas niveau tels que les structures de mémoire ou sur ce que fait réellement le processeur, mais c'est quelque chose que je réserverais pour plus tard de toute façon.

D'A

Autres conseils

http://www.pythonchallenge.com/

Je pense que ce challenge est parfait pour entrer en contact avec les principaux atouts de Python et il existe un forum agréable avec de nombreux threads Python intéressants pour chaque niveau.

Cela dépend en grande partie de votre objectif général d’apprentissage de Python. Voyez-vous cela comme l'apprentissage d'une deuxième langue ou une meilleure compréhension de l'ordinateur et comment utiliser efficacement un langage de programmation?

D'après ce que vous pensez, vous souhaitez mieux comprendre les ordinateurs et devenir un meilleur programmeur. Apprendre de nouvelles langues telles que Python ne vous aidera probablement pas à cet égard. Je recommande quand même d'apprendre Python si cela vous intéresse, mais une fois que vous avez appris un langage de programmation, l'apprentissage d'une nouvelle langue consiste en grande partie à se familiariser avec la syntaxe et les types de données (généralement).

Vous avez mentionné que vous ne saviez pas bien comprendre le contenu de la classe que vous avez suivie. Si vous sentez que vous ne comprenez pas les concepts fondamentaux (tels que les boucles, les classes, etc.), apprendre Python vous aidera à mieux comprendre la programmation, car la plupart des guides / guides revisitent ces concepts ( Learning Python, 3ème édition devrait aider avec cela). Si vous comprenez ces concepts, mais que vous ne savez pas comment les appliquer, ma recommandation est de vous familiariser avec les structures de données et les algorithmes courants (par exemple, le tri, la recherche, etc.).

Parlant d’expérience personnelle, je ne savais pas comment appliquer ce que j’avais appris du cours d’introduction à la programmation à des projets de programmation personnels. En apprenant sur les structures de données à partir d’une classe, j’ai consolidé les concepts que j’avais appris en fournissant des algorithmes / structures de données qui s’appuient sur ces connaissances antérieures. Ce cours m'a également permis de réfléchir différemment aux problèmes d'utilisation de ces structures de données.

Pour en savoir plus sur les différents types de structures de données, voir: http://en.wikipedia.org/wiki/List_of_data_structures . Habituellement, chaque structure de données est utile dans un but spécifique (par exemple, les arbres de recherche binaires sont utiles pour rechercher des informations triées). Malheureusement, je n'ai aucune recommandation de livre (notre classe n'a pas utilisé de livre). Recherche sur Google " Structures de données " devrait être un bon point de départ.

Les structures de données m'ont également amené à réfléchir à l'efficacité d'une implémentation. La " complexité " d’un algorithme détermine le temps nécessaire à l’exécution d’un morceau de code donné. Cela facilite la comparaison des autres implémentations et la détermination de la meilleure solution.

Je voudrais également dire que s’agissant de l’apprentissage des concepts informatiques, la meilleure façon d’apprendre est de le faire. Un livre / classe ne peut expliquer que beaucoup, et le reste, vous devez apprendre par vous-même. Chaque personne apprend différemment et la programmation est un moyen de prendre le matériel que vous lisez et de le penser de la manière que vous comprenez le mieux.

J'espère avoir répondu à votre question. À ce stade, vous n'avez pas vraiment besoin de vous soucier du matériel sous-jacent. C'est utile pour savoir si vous envisagez de faire cette carrière (que vous n'êtes pas) ou si vous souhaitez effectuer des optimisations spécifiques au matériel sur lequel vous travaillez (dans ce cas, vous ne voudriez pas utiliser Python). . Python est un bon choix pour en savoir plus sur les structures de données car elles en implémentent beaucoup pour vous, mais il est important de savoir à quoi elles servent.

Si vous êtes encore à l’école, prenez un cours sur les structures de données et voyez ce que vous en pensez. Si cela vous convient, je vous conseillerais de reconsidérer le rôle de la programmation / CS dans votre carrière. Vous n'avez pas à vous spécialiser dans ce domaine, mais considérez un poste mineur ou au moins un poste qui exploite les compétences que vous apprenez. Je dis cela parce que, même si cela n’est pas votre majeure, vous souhaitez comprendre le fonctionnement d’un ordinateur et prendre des initiatives telles que l’apprentissage de Python, la construction de votre propre ordinateur et l’installation de Linux.

Si vous avez d'autres questions, n'hésitez pas à les poser. Bonne chance!

Python est un langage de haut niveau. Cela ne vous apporterait donc aucun avantage direct à apprendre le fonctionnement des ordinateurs aux niveaux les plus bas.

Ne vous méprenez pas, je suis fermement convaincu que le fonctionnement de base d'un ordinateur, par exemple Le langage d'assemblage et le matériel, est quelque chose que tout bon programmeur devrait connaître, car il vous aide à programmer plus efficacement dans la langue que vous utilisez, de haut niveau ou de bas niveau. Toutefois, le codage Python ne changera rien tant que vous n’avez pas acquis une certaine expérience. Si vous commencez tout juste avec Python, je vous conseillerais de rester à l'écart du fonctionnement de base des ordinateurs et de vous concentrer sur les bases de Python pour le moment. Une fois que vous êtes à l'aise avec cela, vous pouvez passer à quelque chose comme C et ensuite, il pourrait être approprié de commencer à regarder des choses de niveau inférieur.

Quant à ce que vous devriez savoir… pas grand chose, je suppose. Python est un excellent langage pour commencer à programmer. Il garde la simplicité dans les choses simples, mais il est assez riche pour vous permettre de gravir des niveaux de complexité élevés. Je suggérerais probablement de regarder un tutoriel; Celui que je connais est sur le site Web de Python , mais je ne prétends pas qu'il s'agit nécessairement du meilleur pour vous. Une recherche sur Google devrait vous donner de quoi commencer.

J'ai commencé Python (comme premier langage de programmation) il y a quelques mois. Je recommanderais Learning Python, de Mark Lutz . Mais gardez à l’esprit que pour bien apprendre, il faut être ouvert d’esprit, patient et disposé à travailler et rechercher des choses que vous ne comprenez pas.

Amusez-vous!

Je suggérerais de consulter le livre en ligne à l'adresse http://www.diveintopython.org/ . apprendre le python.

En ce qui concerne les projets Python, j’essayerais d’apprendre le framework Django. C'est un cadre pour la construction d'applications Web. Ils ont un excellent tutoriel pour commencer à l'utiliser. Cela vous donnerait également de l'expérience dans la construction d'un serveur Web sur une machine Linux.

  

approfondir mes connaissances en informatique

Eh bien, qu'entendez-vous exactement par là? Python, ou tout autre langage de haut niveau, est conçu pour masquer tous les détails désagréables. C'est l'une des raisons pour lesquelles il convient aux non-professionnels, comme les scientifiques.

Si vous voulez savoir comment les choses fonctionnent réellement, vous devriez apprendre le C pur. Mais encore une fois, si vous n’avez pas l’intention de faire carrière dans le domaine de la SC, il n’ya pas grand intérêt à cela. Apprenez plutôt des algorithmes plus avancés et des structures de données. Cela vous rendra plus intéressant, utile et indépendant de la plate-forme et du langage.

Réponse courte: tous

Réponse longue:

Apprendre votre langue maternelle est toujours un défi et, après votre expérience en Java, de nombreuses autres langues sembleront beaucoup plus simples. Cela dit, le véritable défi en matière d’apprentissage des langages de programmation est d’apprendre quand utiliser un langage particulier. Vous pouvez trouver des documents décents pour ce que vous choisirez le moment venu.

Pour commencer concrètement, passez sur wikipedia et parcourez sa liste catégorique des langages de programmation . , cliquez sur tous les noms que vous avez entendus (et sur tout ce qui attire votre regard) et si l’article contient un exemple de code, laissez-lui une minute ou deux pour comprendre (le reste de l’article vous aidera, bien sûr). ). Le but ici n'est pas de maîtriser chaque langue (ce qui est (1) inutile et (2) impossible), mais de savoir ce qui se passe. Pour n'importe quelle langue, il en existe une poignée, et si vous pouvez au moins lire une langue dans la plupart de ces catégories, vous maîtriserez une part assez importante de l'univers de programmation. Lorsqu'un nouveau projet se présente et que quelque chose vous rappelle une langue que vous avez trouvée, vous pouvez simplement apprendre cette langue dans le cadre de la réalisation du projet. Cela peut sembler beaucoup de travail, mais après, disons, votre cinquième langue la plus utilisée, vous perdez complètement le compte et en apprenez simplement de nouvelles tout à l’heure sans vous en rendre compte.

Lorsque vous cessez de choisir une langue comme langue parlée à la maison, vous pourrez apprendre des exemples dans d'autres langues même si vous n'y avez jamais programmé. Personnellement, je n’ai écrit que quelques programmes Haskell, mais le fait de pouvoir lire Haskell m’a exposé à de nombreuses idées que je pourrais recycler dans des programmes plus pratiques en Scala et en Python (oh oui, après apprendre Python, donner à Scala une navigation et vous n’utiliserez probablement plus jamais Java)

Même trouver le meilleur langage pour le poste n’est pas tout. Le fait de disposer de nombreux outils dans votre boîte à outils vous permet de réunir des éléments étonnants en très peu de temps en écrivant chaque élément de votre projet dans le langage le plus simple possible. Cela peut ne pas convenir à tous les projets, mais pouvez-vous faire des démonstrations impressionnantes?

Il faut de nombreuses années pour arriver au point où aucun langage de programmation n'est totalement étranger (ou du moins étranger pendant plus d'une journée de piratage informatique), mais je pense que le fait d'essayer de conquérir un échantillon représentatif de chaque catégorie de brut. Bonne chance!

Etant donné que Python n'était pas ma langue maternelle, j'ai trouvé le Python Cookbook utile pour apprendre

  1. Ce dont Python était capable
  2. L'idiome, de "pythonique" façon de faire quelque chose.

L’enseignement des langages de programmation a toujours été associé à une déclaration de cliché lors de l’apprentissage. "Écrire des programmes pour apprendre la programmation". Moi aussi, je suggérerais la même chose.

Si vous allez commencer par les bases. Ceci est bien sûr le point de départ le plus suggéré. C'est long, mais ça vaut tout le temps. http://www.diveintopython.org/

Parce que vous aimez Java, cela pourrait être encore mieux pour vous. http://www.swaroopch.com/notes/Python . Lancez python 2.x ou 3.0. Personnellement, je suis un fan de python 3. Mais pour un débutant, il pourrait être difficile d’obtenir des échantillons et des références à des programmes en ligne. Donc, pour vous, 2.x pourrait être mieux. Mais je le laisse à vous.

Comme j’ai commencé à "écrire des programmes". Vous pouvez commencer ici.

  1. http://www.spoj.pl/ - un site consacré aux défis de la programmation, dans lequel vous pouvez choisir à partir d'une grande variété de sujets, principalement des algorithmes et possède une énorme base de données de questions Bien sûr, le choix des langages de programmation vous appartient.
  2. http://projecteuler.net/ - un site de questions mathématiques, il vous suffit de soumettre une réponse , la triche est autorisée ici, alors soyez libre d’emprunter la logique à d’autres, mais essayez d’écrire le programme vous-même.

Après avoir jugé que vous maîtrisiez suffisamment le langage python, vous pouvez essayer les recettes de ce livre. noreferrer "> http://www.amazon.com/Python-Cookbook-Alex-Martelli/dp/0596007973 .

Pour le développement d'applications, commencez par wxPython ou PyQt . Personnellement, je suggérerais PyQt. Il est réactif, rapide et a un cycle de développement correct. Je n’ai pas utilisé WxPython depuis longtemps, mais peu de programmes que j’ai écrits, il y a longtemps, ne se sentaient pas si bien. Encore une fois, c'est à vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top