Heim  >  Artikel  >  Backend-Entwicklung  >  Wie Sie sich systematisch die Python-Sprache beibringen

Wie Sie sich systematisch die Python-Sprache beibringen

伊谢尔伦
伊谢尔伦Original
2016-12-02 11:58:461094Durchsuche

Wenn Sie keine Grundkenntnisse haben, ist das Erlernen einer Sprache zur Bereicherung eine gute Wahl, da sie einfach, schön und leicht zu verwenden ist. Wie kann man Python systematisch selbst lernen?

Manche Leute wollen Python wirklich gut lernen. Einerseits sind sie in triviale Dinge verwickelt und haben es nie geschafft, andererseits sind sie besorgt über die Kosten Das Lernen ist zu hoch und sie geben stillschweigend auf?

Glücklicherweise ist Python eine anfängerfreundliche Programmiersprache, und Sie müssen nicht allzu viel Zeit und Energie aufwenden, um sie vollständig zu beherrschen.

Eine der Designphilosophien von Python ist, dass es einfach und leicht zu erlernen ist, was sich in zwei Aspekten widerspiegelt:

Die Syntax ist prägnant und klar: Im Vergleich zu Ruby und Perl ist es Es gibt weder zu viele noch zu wenige Syntaxfunktionen, und die meisten davon sind sehr einfach und direkt, ohne Metaphysik.

Es gibt viele Einstiegspunkte: Mit Python können Sie viele Dinge tun, einschließlich wissenschaftlicher Berechnungen und Datenanalysen, Crawler, Websites, Spiele, Befehlszeilenprogramme usw. Es gibt immer einen, an dem Sie interessiert sind und den Sie möchten Zeit investieren.

Ohne Umschweife gibt es nur eine Abkürzung zum Erlernen einer Sprache: Erste Schritte

1. Startphase

Jede Programmiersprache besteht aus zwei Teilen: Hardware-Wissen und Soft-Wissen Die Hauptaufgabe in der Anfangsphase besteht darin, hartes Wissen zu beherrschen. Jede Programmiersprache besteht aus zwei Teilen: Hard Knowledge und Soft Knowledge. Die Hauptaufgabe in der Anfangsphase besteht darin, Hard Knowledge zu beherrschen.

1. Hartes Wissen

„Hard Wissen“ bezieht sich auf die Syntax, Algorithmen und Datenstrukturen von Programmiersprachen, Programmierparadigmen usw., wie z : Variablen und Typen, Schleifenanweisungen, Zweige, Funktionen, Klassen. Dieser Teil des Wissens ist ebenfalls universell. Er scheint eine Art Grammatik zu beherrschen, aber tatsächlich hat er eine Art Denken etabliert. Wenn beispielsweise ein Java-Programmierer gebeten wird, Python zu lernen, kann er das in Java erlernte objektorientierte Wissen schnell auf Python abbilden, sodass er die objektorientierten Funktionen von Python schnell beherrschen kann.
Wenn Sie neu im Programmieren sind, ist ein zuverlässiges Grammatikbuch sehr wichtig. Es mag mühsam erscheinen, ist aber für den Aufbau einer soliden Programmiermentalität unerlässlich.
Im Folgenden finden Sie eine Liste einiger Lehrmaterialien, die für Anfänger geeignet sind:

❖ „Learn Python the Hard Way“: http://learnpythonthehardway.org/book/
Dieses Buch erklärt Python zusätzlich Neben den grammatikalischen Komponenten sind auch viele praktische Beispiele enthalten, was sich sehr gut für den schnellen Einstieg eignet.

❖「The Hitchhiker's Guide to Python!」:The Hitchhiker's Guide to Python!
Dieser Leitfaden konzentriert sich auf die besten Praktiken von Python, egal ob Sie ein Python-Experte oder ein Anfänger sind, Sie können große Vorteile daraus ziehen . helfen.

❖「Offizielle Python-Dokumentation」: Unsere Dokumentation
Die meisten Fragen in der Praxis können in der offiziellen Dokumentation beantwortet werden.

❖ Hilfswerkzeuge: Python Tutor
Ein Python-Objektvisualisierungsprojekt, das Grafiken verwendet, um Ihnen das Verständnis verschiedener Konzepte in Python zu erleichtern.

Pythons Philosophie:

Verwenden Sie eine Methode, vorzugsweise nur eine Methode, um eine Sache zu tun.

Das Gleiche gilt für das Lernen. Obwohl verschiedene Lernmaterialien empfohlen werden, ist es beim eigentlichen Lernen am besten, nur eines davon auszuwählen und dabei zu bleiben.

Bei Bedarf müssen Sie möglicherweise Bücher lesen, in denen Datenstrukturen und Algorithmen erläutert werden. Dieses Wissen ist eine große Hilfe beim Verständnis und der Verwendung des Objektmodells in Python.


2. Soft Knowledge
„Soft Knowledge“ bezieht sich auf grammatikalische Fähigkeiten in einer bestimmten Sprachumgebung, die Verwendung von Klassenbibliotheken, die Wahl der IDE usw. Selbst wenn Sie diesen Teil überhaupt nicht verstehen und ihn nicht verwenden können, hindert Sie das nicht am Programmieren, aber das Programm, das Sie schreiben, wird etwas „albern“ aussehen.

Das Erlernen dieses Wissens hängt vom Bereich und der Tiefe des Problems ab, das Sie zu lösen versuchen. Für Anfänger ist es sehr leicht, sich in der Anfangsphase zu verirren oder bei der Auswahl einer Python-Version zu zögern, eine Weile auf 2.7 zu schauen und dann eine Weile auf 3.0 umzusteigen oder im Meer der Klassenbibliotheken herumzuwandern, was nicht möglich ist sich selbst zu befreien, einschließlich Scrapy, Numpy und Django. Probieren Sie es aus oder nehmen Sie an bedeutungslosen Aktivitäten wie Editor-Dschihad, Klammereinrückungs-Erkundung, Betriebssystem-Debatte-Wettbewerb teil oder knien Sie sich den ganzen Tag hin und lecken Sie syntaktischen Zucker und denken Sie immer darüber nach, wie Sie alles bekommen mit einer Zeile Code erledigt werden oder eine Lösung mit perfekten Ergebnissen in Bezug auf Leistung, Sicherheit, Vielseitigkeit und Robustheit konzipieren.

Viele „Große“ warnen Anfänger davor, dies und das zu nutzen und Umwege zu vermeiden. Dies wird Anfänger zu echten Umwegen drängen.
Es ist besser, Anfängern zu sagen, dass Lernen ein Prozess ist, der Umwege erfordert und Fehler macht. Es gibt keine Wunder, nur Scheiße.

Wählen Sie zuerst eine Richtung, in die Sie gehen möchten, auch wenn diese schmutzig und hässlich ist und Sie nicht mehr gehen können, und prüfen Sie dann, ob es eine bessere Lösung gibt.

Erst wenn Sie einen Umweg machen, werden Sie die Vorteile kennen, die sich daraus ergeben, und verstehen, warum Menschen Zustandsautomaten handschriftlich schreiben können, um sie abzugleichen, dafür aber reguläre Ausdrücke erfinden müssen, warum prozessorientierte Lösungen objektorientiert gelöst werden können , warum ich jeden Zeiger manipulieren kann, aber den Speicher automatisch verwalten muss. Warum muss ich Promise verwenden, wenn ich Rückrufe verschachteln kann? Alles richtig. Die Kapselung auf niedriger Ebene ist nicht in jeder Situation die effektivste und angemessenste.

Der Zustrom von Technologie ist wie eine Welle. Diese alten Technologien, die lange gespeichert wurden, werden verschwinden und früher oder später zurückkommen. Wiederholen einige Aspekte nicht genau wie die aktuelle Beliebtheit mobiler Anwendungen, mobiler Spiele und HTML5 die Geschichte der PCs in der Vergangenheit?

Machen Sie sich daher keine Sorgen, dass Sie den falschen Weg einschlagen und Ihr Leben verpassen. Beharrlichkeit und Fortschritt sind der richtige Weg.

Die Kernaufgabe in der Anfangsphase besteht darin, hartes Wissen zu beherrschen und weiches Wissen richtig zu verstehen. Nur mit stabilen Wurzeln und starken Zweigen können wir dicke Blätter wachsen lassen und süße Früchte tragen.

2. Entwicklungsphase

Nach Abschluss des Erlernens der Grundkenntnisse werden Sie definitiv ein Gefühl der Leere verspüren und daran zweifeln, ob diese Grammatikkenntnisse wirklich nützlich sind.

Ja, Ihre Vermutung ist absolut richtig. Damit Python seinen Wert entfalten kann, darf es natürlich nicht auf der Syntaxebene enden.

Die Kernaufgabe der Entwicklungsphase besteht darin, „aus Python auszubrechen und die Welt zu umarmen“.
Vor Ihnen liegen mehrere Zweige: wissenschaftliches Rechnen und Datenanalyse, Crawler, Websites, Spiele, Befehlszeilen-Dienstprogramme usw. Dies sind keine Probleme, die allein durch Kenntnis der Python-Syntax gelöst werden können.
Nehmen Sie Crawler als Beispiel, wenn Sie nichts über Computernetzwerke, HTTP-Protokolle, HTML, Textkodierung und JSON wissen. Können Sie diesen Teil der Arbeit gut bewältigen? Und Ihre Grundkenntnisse in der Anfangsphase sind ebenso wichtig. Wenn Sie überhaupt die Dokumentation zum Schreiben von Schleifen und Rekursionen lesen müssen und nicht einmal wissen, wie man BFS implementiert, ist das wie bei einem Handwerker, der eine Steinbank herstellt Jedes Mal, wenn er den Hammer anhebt, muss er darüber nachdenken, wie er den Hammer benutzen soll. Das Gleiche ist sehr ineffizient.
In diesem Stadium ist es unvermeidlich, mit einer großen Anzahl von Klassenbibliotheken in Kontakt zu kommen und eine große Anzahl von Büchern zu lesen.

°1 Klassenbibliothek

„Awesome Python Project“: vinta/awesome-python · GitHub

Hier ist eine Liste von Tools, die der Python-Community bereits zur Verfügung stehen, wenn Sie versuchen, verschiedene praktische Probleme zu lösen Typ Klassenbibliothek, wie in der folgenden Abbildung dargestellt:

Wie Sie sich systematisch die Python-Sprache beibringenSie können die Klassenbibliothek finden, die Sie entsprechend Ihrem tatsächlichen Bedarf benötigen.

Was die Verwendung verwandter Klassenbibliotheken angeht, müssen Sie die Dokumentation beherrschen. Da die meisten Dokumente in der Open-Source-Community auf Englisch verfasst sind, müssen Studierende, die nicht gut Englisch sprechen, dies nachholen.


°2 Bücher
Hier liste ich nur einige Bücher auf, die ich für hilfreich halte. Einzelheiten finden Sie in Doubans Buchrezensionen:
Wissenschaft und Datenanalyse:
❖ „Collective Smart Programming“ : Collective Intelligence Programming
❖ „Die Schönheit der Mathematik“: Die Schönheit der Mathematik
❖ „Statistische Lernmethode“: Statistische Lernmethode
❖ „Mustererkennung und maschinelles Lernen“: Mustererkennung und maschinelles Lernen
❖„Data Science in Practice“: Data Science in der Praxis
❖„Introduction to Data Retrieval“: Einführung in Information Retrieval
Crawler:
❖„HTTP Authoritative Guide“: HTTP Authoritative Guide
Website:
❖「HTML & CSS Design and Build Websites」: HTML & CSS Design and Build Websites

...

Es besteht keine Notwendigkeit, die Liste hier fortzusetzen.
Wenn Sie schlau sind, werden Sie auf jeden Fall feststellen, dass es in den meisten der oben genannten Bücher nicht um Python geht, sondern eher um Fachwissen.
Tatsächlich bedeutet der sogenannte „Ausbruch aus Python und die Welt umarmen“ hier tatsächlich, dass die Kombination von Python und Fachwissen viele praktische Probleme lösen kann. Wie weit Sie in dieser Phase kommen können, hängt eher von Ihren eigenen Fachkenntnissen ab.

3. Vertiefende Phase

In dieser Phase wissen Sie fast alles über Python, dann müssen Sie wissen, dass Python in der Sprache C implementiert ist.

Aber wie werden die „dynamischen Funktionen“ von Python-Objekten mithilfe der relativ einfachen C-Sprache implementiert, die nicht einmal über eine automatische Speicherverwaltung verfügt? Zu diesem Zeitpunkt können wir nicht länger an der Oberfläche bleiben. Wir müssen mutig die Blackbox von Python öffnen, tief in die Sprache vordringen, ihre Geschichte sehen und ihren Quellcode lesen, nur dann können wir ihre Designideen wirklich verstehen.

Hier ist ein empfohlenes Buch:
„Python Source Code Analysis“: Python-Quellcode-Analyse
Dieses Buch gibt eine detaillierte Erklärung der Kernbestandteile des Python-Quellcodes, aber das Lesen dieses Buches erfordert a Gutes Verständnis des C-Sprachspeichermodells und der Zeiger.

Darüber hinaus ist Python selbst eine dynamische Sprache, die mehrere Paradigmen kombiniert, nämlich im Vergleich zur prozeduralen Programmierung von C, der funktionalen Programmierung wie Schema und Haskell und der klassenbasierten objektorientierten Programmierung Von Java ist es weder rein genug. Mit anderen Worten: Der „Taoismus“ der Programmiersprachen lässt sich in Python nur bedingt verstehen. Beim Erlernen eines bestimmten Programmierparadigmas kann das Ausgehen von den Sprachen, die für dieses Paradigma reiner sind, zu einem tieferen Verständnis führen und die Wurzeln der Python-Sprache verstehen.

Hier ist ein empfohlener offener Kurs
„Programmierparadigma“: Offener Kurs der Stanford University: Programmierparadigma
Der Dozent verfügt über ein hohes Maß an Beratung, ausgehend von den repräsentativen Sprachen verschiedener Programmierparadigmen und gibt jedem Programmierparadigma die Kernidee.

Es ist erwähnenswert, dass dieser Kurs eine sehr ausführliche Erklärung der C-Sprache enthält, beispielsweise C-Sprachparadigmen und Speicherverwaltung. Dieses Wissen ist auch für das Lesen von Python-Quellcode sehr hilfreich.

Viele der Best Practices von Python sind in bekannten Frameworks und Bibliotheken wie Django, Tornado usw. versteckt. Es ist auch eine gute Option, im Quellcode nach Gold zu suchen.

¶ Schlussworte
Jeder Weg zum Programmieren ist anders. Tatsächlich erreichen die meisten das gleiche Ziel auf unterschiedlichen Wegen. Es gibt keine Menschen, die verloren gehen, nur Menschen, die nicht durchhalten können. Obwohl es ein wenig nach Hühnersuppe klingt, ist es wahr.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn