Ein ausführliches Interview mit dem Dekan der Python-Abteilung von GeekBrains - wie und warum Anfänger Sprache lernen

Bild

Gestern haben wir die erste Ausgabe der Reihe "Von wem in der IT arbeiten" veröffentlicht. Für ihn sprach ich mit zwei ehemaligen Studenten und dem Dekan der Python-Fakultät bei GeekBrains . Als ich die Geschichten in einer Geschichte „montierte“, war es schade, dass in den Entwürfen noch viel übrig war.

Deshalb poste ich heute das vollständige Protokoll des Interviews mit Alexei Petrenko, Dekan von GeekBrains - fast ohne es zu bearbeiten oder aus dem Kontext zu nehmen. Vielleicht wird es noch anwendbarer, nützlicher und konzentrierter sein als das Hauptthema.

Folgendes bleibt zum Beispiel hinter den Kulissen: Warum ist Python nicht schlechter als andere Sprachen? Welche Frameworks sollte ich neben Django sehen? Wo kann man besser schreiben lernen - in einer modernen IDE oder in einem Notizbuch? Welche Websites und Bücher es wert sind, selbst gelernt zu werden und vieles mehr.

- Was machen Python-Entwickler jetzt?

- Ein Python-Entwickler kann viele Dinge tun - von einfachen Skripten über die Datenanalyse bis hin zum Aufbau neuronaler Netze.

Apropos Entwicklung, dies ist ein Backend für Webserver. Der verborgene Teil des Internets, den normale Benutzer nicht sehen. Server, seine Logik, Interaktion mit Datenbanken.

- Python ist für die Serverentwicklung nicht schlechter als andere Sprachen?

- Eigentlich nein, nicht schlimmer. In C verbringt ein Entwickler beispielsweise viel Zeit damit, Code zu schreiben. Dies ist eine Großvatersprache. Das Schreiben in C # ist einfacher und schneller - aber dies ist die Idee von Microsoft - sie haben die Sprache für das Windows-System beworben. Aber Java ist universell ... In der Tat können Sie diskutieren, welche Sprache besser ist.

Python hat eine niedrige Einstiegsschwelle, es ist sehr einfach, die Grundlagen der Programmierung darauf zu erlernen. Python ist eine interpretierte Sprache. Wenn also zwei identische Programme in Python und C geschrieben sind, arbeitet das Programm unter Python langsamer. Es hat ein sehr großes Publikum, eine umfangreiche Bibliothek sowie viele externe Bibliotheken, die Entwickler auf der ganzen Welt erstellen. Und so wird es zu einer Sprache, die für alles geeignet ist.

- Könnte es sein, dass es einfacher ist, Python zu kennen, um in bestimmte Berufe wie KI und Analytik einzusteigen, und dass Leute mit Java eher ein reguläres Backend nehmen?

- Wenn wir uns die Statistiken vor einigen Jahren ansehen, dann hat die PHP-Sprache 80% des Backends aller Server belegt. Aber PHP verliert langsam an Boden. Python hat auf dieser Welle verschiedene Webentwicklungs-Frameworks veröffentlicht, von denen das beliebteste Django ist. Es wird immer beliebter und viele Arbeitgeber suchen nach Entwicklern, die dieses spezielle Framework kennen.

Es gibt immer Wettbewerb. Aber ein Anfänger sollte verstehen, dass er auf jeden Fall einen Job finden wird, egal was er sich ganz widmet - Python oder Java.

- Python als Muttersprache zu lernen ist eine gute Lösung?

"Ich denke gut." Vor 20 Jahren war meine Muttersprache Basic. Und dann schien es mir, wie lustig und einfach es ist, darauf zu programmieren. Als ich die Python-Syntax zum ersten Mal sah, war mein erster Gedanke: "Es ist dasselbe wie BASIC, nur cooler." Es gibt die gleichen Empfindungen - einfach, lustig, alles ist sofort klar. Das heißt, Python ist die beste Sprache für die erste.

"Gerade wegen der Einfachheit?"

- Ja, wegen der einfachen Syntax. Im Gegensatz zu kompilierten Sprachen werden kleinere Entwicklerfehler vergeben, bei denen das Programm nicht mehr kompiliert wird, wenn es versiegelt ist.
Obwohl ich hoffe, dass die Entwickler nicht hoffen, dass der Interpreter alle ihre Fehler korrigiert.

Am wichtigsten war, dass der Entwickler verstand, dass er sich nach einer einfachen Basis bemühen musste, ernstere Aspekte zu beherrschen. Bibliotheken und Frameworks, die Python zu einer noch cooleren und fortgeschritteneren Sprache machen.

- Wie komplex und umfangreich ist die Syntax?

- In der Grundkonfiguration von Python gibt es ungefähr 70 Funktionen (aber selbst ein cooler Programmierer verwendet nicht unbedingt alle) und mehrere Dutzend reservierte Wörter. Das heißt, um hundert Wörter zu lernen und zu verstehen, was sie tun, können Sie ein bis drei Wochen verbringen, wenn Sie wollen und hart arbeiten.



- Dynamisches Tippen ist kein Minus?

- Dynamisches Tippen hat Gegner, die sie an der Universität anfangs gelehrt haben, in C zu schreiben, sie sind hineingefahren, dass dies die Grundlage aller Sprachen ist und jeder gleich sein sollte. Daher stehen sie der dynamischen Typisierung äußerst negativ gegenüber. Tatsächlich ist dynamisches Tippen mehr Plus als Minus. Es beschleunigt die Entwicklung.

Wenn Sie jedoch an statische Typisierung gewöhnt sind, kann die Sprache die von Ihnen verwendeten Variablentypen vorschreiben. Das Tippen bleibt dynamisch, aber Sie können Ihre Gewohnheit erkennen.

- Aber jetzt erfreuen sich Go und TypeScript aufgrund der strengen Eingabe immer größerer Beliebtheit.

- Ja das stimmt. Aber Sprachen kommen und gehen immer, und Python lebt seit 30 Jahren und erfreut sich immer größerer Beliebtheit. Go Sprache ist jung und gut. Vielleicht wird er sich entwickeln, oder vielleicht werden wir ihn in ein paar Jahren vergessen.

Wenn wir die Programmiersprache mit einem Reservoir vergleichen, ist beispielsweise Sprache C der Ozean. Sie tauchen von einer Klippe in eine große Tiefe und schwimmen oder ertrinken. Die Python-Sprache ist ein Strand mit sauberem Sand, an dem Sie weit gehen, ruhig schwimmen können. Wenn Sie verstehen, dass Sie weitermachen möchten, befindet sich hinter dem schönen Strand eine große Vertiefung in der Tiefe, vergleichbar mit C und Java.

"Wenn man Python kennt, ist es schwierig, zwischen Berufen zu wechseln, wo wird es verwendet?"

Python hat eine breite Bibliothek. Wenn Sie plötzlich feststellen, dass Sie sich nicht mit Websites und Backends befassen möchten, sondern auf künstliche Intelligenz umsteigen möchten und die Basis kennen, müssen Sie mehrere Monate damit verbringen, die Mathematik zu straffen und einige zusätzliche Frameworks zu erlernen.

Eine ähnliche Situation mit Big Data: Sie müssen sich an den Verlauf von Statistiken und Analysen erinnern und sich zwei oder drei neue Bibliotheken ansehen. Das heißt, die Arbeitskosten werden erheblich reduziert, wenn Sie die Sprache bereits kennen.

- Was ist schwieriger?

Analytics und Big Data programmieren plus Mathematik. Wenn es eine Veranlagung dafür gibt, warum dann nicht mit neuronalen Netzen, Erkennungssystemen, umgehen? Wenn Sie nur programmieren möchten, aber nicht auf hohem Niveau, ist es besser, Server zu schreiben. Sie brauchen auch Mathematik, aber zumindest nicht höher. Keine Integrale und Fakultäten. Elementare Addition und Subtraktion.



- Was müssen Sie wissen, bevor Sie an Kursen teilnehmen?

- Es wäre schön im Voraus zu wissen, ob Sie programmieren möchten oder nicht. Ich würde Ihnen raten, zu versuchen, mehrere Programme zu schreiben, kostenlose Lektionen zu versuchen. Es ist besser, bereits zu verstehen, was eine Variable ist und wie zwei Variablen hinzugefügt werden.

- Wenn ein Mensch noch nicht einmal begonnen hat, wo und wie kann er das verstehen?

- Wir haben freie Intensivkurse über die Grundlagen der Programmierung und Variablen. Dort müssen Sie in Javascript schreiben, da in jedem modernen Browser ein Interpreter vorhanden ist, müssen Sie nichts installieren.

Mit Python, Java und anderen Sprachen ist es etwas komplizierter - Sie müssen eine Entwicklungsumgebung installieren. Aber wenn Sie verstehen, dass es Ihnen gefällt, warum dann nicht? Sie können zehn Minuten verbringen und langsam Programmierer werden.

- Wie lerne ich, damit der Kurs nicht zu einer nutzlosen Kruste wird?

- Ein Wort ist Übung. Wenn Sie nur zuschauen und zuhören, wird nichts daraus. Für Anfänger ist es sogar üblich, den Code, den der Lehrer auf dem Bildschirm anzeigt, neu zu schreiben. Schreiben Sie neu und überlegen Sie, wie es funktioniert. Es ist notwendig, praktische Aufgaben zu erledigen - im Rahmen der Kurse im Internet nach sich selbst zu suchen. Wenn die Ausbildung der Beschäftigung dient, ist umso mehr Übung erforderlich. Es ist schwer zu lernen, einfach im Kampf.

Die erforderliche Mindestübung beträgt vier Stunden pro Woche. Zwei Tage unter zwei Stunden Übung. Aber ich würde empfehlen, eine Stunde am Tag damit zu verbringen, Ihren eigenen Code zu schreiben.

- Was ist besser zu lernen - grundlegende Dinge oder beliebt und angewendet?

- Für Anfänger ist es besser, die Syntax zu verstehen. Und wenn - für jemanden nach einer Woche, für jemanden nach einem Monat - eine Person sagt: "Ich kenne die Syntax und kann elementare Konstruktionen und Algorithmen schreiben", lohnt es sich nur dann zu überlegen, wohin Sie weiter gehen möchten. Je mehr Sie studieren, desto mehr entfernen Sie sich von der Syntax zu einzelnen Bibliotheken, Entwurfsmustern und einzelnen Vorlagen.

Die Hauptsache ist, nicht mit dem Kopf in die Programmierung einzutauchen, damit es keinen magischen Aufruhr gibt. Wenn Sie drei Tage lang alles lernen und Brei im Kopf haben.

- Welche Feinheiten müssen Sie wissen, um nicht sofort in die falsche Richtung zu drehen?

- Es gibt einen solchen Standard-Pep8 - dies ist die Vereinbarung von Programmierern, die auf Python schreiben. Es zeigt an, wie richtig und wie falsch geschrieben wird: Wenn Sie eine Konstruktion mit Bedingungen schreiben möchten, schreiben Sie sie auf ähnliche Weise. Wenn etwas anderes zum Beispiel eine Funktion erstellt, rufen Sie es in diesem und jenem Stil auf.

Wenn Sie in einem Team arbeiten und den Code einer anderen Person zeigen möchten und der Code in Zukunft unterstützt werden soll, müssen Sie den allgemein akzeptierten Standard kennen. Es wäre gut für einen Anfänger, es zusammen mit dem Studium der Syntax zu lesen.

Anfänger, die Pep8 nicht kennen, schreiben ein Programm, das auch funktioniert. Aber wenn nach einer anderen Zeit eine andere Person versucht, es zu lesen, entstehen Schwierigkeiten. Sie schreiben den Code einmal - sie lesen ihn zehnmal.

- Noch etwas? Versionen zum Beispiel?

- Vor einigen Jahren kam es in Python zu einer Spaltung. Es gab Python 2.7 und dann kam Version 3 heraus. Die zweite Version wird immer noch verwendet, aber nur in älteren Firmen, um alten Code zu pflegen. Wenn Sie einen Job in einem solchen Unternehmen bekommen, müssen Sie Python 2 lernen, aber ich würde empfehlen, die dritte Version zu lernen. Darunter sind alle modernen Projekte und Bibliotheken von Drittanbietern geschrieben.

Ich werde ein elementares Beispiel geben. Payton der dritten Version, ein Befehl zum Anzeigen einer Meldung auf dem Bildschirm: Wir schreiben print, öffnen die Klammer und übergeben den Text und die Variablen in die Klammern.

In der zweiten Version schreiben wir print, keine Klammern, dann ein Leerzeichen und eine Variable. Das ist in einem Fall ein Leerzeichen, in den anderen geschweiften Klammern. Es ist für eine Person nicht wichtig, dies zu verstehen, aber der Dolmetscher ist wichtig - ein Leerzeichen oder Klammern



- Was sind die besten Möglichkeiten zur Selbstbildung?

- Parallel zum Training können Sie versuchen, Ihre Ideen und Projekte umzusetzen. Während Sie die Grundlagen lernen, lösen Sie Rätsel und schreiben einfache Programme. Zum Beispiel habe ich Zyklen studiert und warum nicht ein Programm schreiben, das die Multiplikationstabelle anzeigt.

Als Nächstes lernen Sie das Django-Framework kennen, mit dem Sie Websites erstellen können. Warum nicht sofort versuchen, eine eigene Seite zu schreiben, die ich mir schon lange gewünscht habe?

Es gibt immer noch eine solche Seite - das Euler-Projekt. Es gibt eine Reihe von Aufgaben zum Erstellen von Programmen.
Eine Person, die zu programmieren weiß, kann die Aufgabe realisieren, aber wenn sie Code von geringer Qualität schreibt, wird sie sogar von einem modernen Computer für einige Minuten, Stunden oder sogar Tage gelöst. Das heißt, das Projekt lässt Sie über Optimierung nachdenken. Weil der richtige Code die Probleme aus dem Euler-Projekt in Sekunden löst.

Aus dem Buch: "Learning Python" von Mark Lutz und "Pure Python". Dan Bader.

- Mit welchen Tools und Frameworks soll ich beginnen?

Ein unerfahrener Programmierer kann zum Beispiel Flask nehmen. Es ist einfach, enthält keine unnötigen Informationen und ist leicht zu erlernen. In der Tat ist dies eine kleine Box, in der nichts überflüssig ist. Und sie wird die einfachsten Seiten schreiben.

Wenn Sie an die Zukunft denken, dann ist Django das Monster unter den Frameworks. Dies ist keine kleine Kiste mehr, sondern eine riesige Kiste, in der von allem viel ist. Wenn Sie alle Funktionen nach und nach verstehen, können Sie gute, skalierbare Websites schreiben, die jede Minute Tausende von Benutzern bedienen können.

- Pakete, Bibliotheken?

- Für Anfänger würde ich Ihnen raten, sich mit der Standard-Python-Bibliothek vertraut zu machen. Dies sind dieselben Module, die zusammen mit dem Interpreter auf dem Computer installiert sind. Tatsächlich ist die Standardbibliothek so groß. dass sogar sein Studium mehr als eine Woche dauern wird.

Einige Module der Standardbibliothek werden nie benötigt, aber es ist notwendig, eine Vorstellung davon zu haben, damit Sie eines Tages das Rad nicht neu erfinden. Alle Fahrräder sind dort montiert.

Bei der Programmierung wird häufig eine Datenstruktur wie "Warteschlangen" verwendet. Und wenn eine Person gerade die Syntax gelernt hat, versteht sie, dass es in Python keine Warteschlangen gibt. Obwohl in anderen Sprachen, werden Warteschlangen aktiv verwendet und ermöglichen das Lösen großer Aufgabenmengen.

Es lohnt sich jedoch, in die Standardbibliothek zu stöbern, und dort finden wir das Sammlungsmodul. In diesem Modul befindet sich die Datenstruktur „Warteschlange“ und es stellt sich heraus, dass sie schon lange implementiert ist, nur ein bisschen versteckt. Es ist maximal optimiert und funktioniert trotzdem besser als wenn Sie selbst schreiben.

- Und elementare Dinge? Welche IDE soll ich nehmen?

- Bei dieser Gelegenheit gehen die Meinungen auseinander. Einige Leute denken, dass ein Anfänger Programmierer in Notepad schreiben sollte (nicht im Standardkurs, aber zumindest in Notepad ++).

Die Idee ist, dass Sie zu Beginn der Programmierung den gesamten Code manuell schreiben müssen. Auf diese Weise können Sie sich an die Beschreibung der Strukturen und Grundfunktionen erinnern. Das Problem ist jedoch, dass das Notebook Ihnen nicht sagt, wo Sie einen Fehler gemacht haben. Wenn ein Anfänger nicht sieht, wo die Fehler liegen, kann er verzweifeln, dass nichts funktioniert, und dieses Geschäft beenden.

Daher gibt es die Meinung, dass es besser ist, moderne IDEs zu nehmen. Hier muss man Jetbrains Ehre machen. Sie haben PyCharm IDE erstellt, das eine absolut kostenlose Community-Version hat. Sie erzählt von allen elementaren Fehlern.

- Wie gehen Sie vor?

Ich bin für den zweiten Ansatz, um den Anfänger nicht vom Schreiben von Code abzuhalten. Wenn der Code funktioniert, besteht der Wunsch, sich weiterzuentwickeln. Wenn Sie jedoch einen Fehler sehen, finden Sie heraus, wie Sie ihn erstellt und behoben haben.

Um ehrlich zu sein, habe ich selbst mit alten Notizbüchern angefangen.



- Was sollte das Mindestniveau sein, um einen Job zu bekommen?

"Meine Erfahrung bei Geekbrains zeigt, dass einige Studenten Arbeit finden, bevor sie ihren einjährigen Kurs beenden." Es hängt alles davon ab, wie der Student studiert hat, welche Motivation er hatte, wie aktiv er investiert hat.

Wenn wir mit dem Serverentwickler über die Fähigkeiten sprechen, die der Arbeitgeber sehen möchte, ist dies ein elementarer Job mit Syntax, Wissen darüber, wie Websites, Backend und Django funktionieren. Der Programmierer muss wissen, wie man Code schneller und korrekter schreibt.

Ich würde auch Teamwork und Kenntnisse über Datenbanken hinzufügen, da jedes Backend einer Site untrennbar mit der Speicherung von Informationen verbunden ist.

- Auf welches Geld kann man am Anfang zählen?

- Abhängig von der Region. Jemand bekommt einen Job für 40.000 als Anfänger, jemand kann für 100.000. Beobachten, wie es sich manifestiert. Dazu müssen Sie nachweisen, dass Sie nicht nur Code schreiben, sondern auch die Architektur verstehen und das gesamte Projektschema, die Module, Dienste und deren Interaktionsschemata skizzieren können.

- Vielleicht ist dies eine Seltenheit unter Anfängern?

- Wir gehen im vierten Quartal fast am Ende des Trainings durch das Design.

- Wie viel müssen Sie bei der Arbeit schwingen, um Level-up zu erreichen?

- Sie können während des Studienjahres bei Geekbrains in die Mitte pumpen. Es gibt Pflichtkurse und zusätzliche. Der Student selbst wählt, wann er sie belegen möchte, aber der Haupt- und der Zusatzkurs müssen abgeschlossen sein, um sich ehrlich als Mitte zu bezeichnen. Das heißt - das Jahr des Hauptprogramms und weitere sechs Monate paralleler.

- Wer ist dann der Signor-Entwickler?

- Dies ist eine Person, die reiche Erfahrung hat. Dies ist jemand, der verschiedene Frameworks versteht, in der Lage ist, Aufgaben zu skalieren und zu verstehen, welche Ressourcen sie benötigen. Ein Mann, der keine Fahrräder erfindet. Wer hat aus eigener Erfahrung alle Aspekte und Nuancen der Arbeit verstanden?

"Wenn Sie einen Mann treffen, der vor drei Jahren nichts wusste und sich jetzt als Unterzeichner bezeichnet, was denken Sie dann?"

- Warum nicht. Hängt vom Unternehmen, den Bestrebungen und Fähigkeiten ab. Wenn eine Person begabt ist, dann werde ich glauben. Wenn er sagt, dass er Python kennt, nicht Python, dann hat er wahrscheinlich immer noch eine Chance.

- Und wenn Sie nicht so genial sind, wie viel Erfahrung brauchen Sie dann im Durchschnitt?

- Wenn eine Person nicht zielgerichtet ist, kann sie bequem auf der Ebene der mittleren, fünf und zehn Jahre arbeiten. Führen Sie die Menge der Aufgaben aus, die geben, genießen Sie es.

- Das heißt, die Mitte ist nur jemand, der keine Verantwortung übernimmt?

- Ja, Signor ist bereit, Verantwortung für Entscheidungen zu übernehmen und Teams zu führen. Seien wir ehrlich - es gibt Führer, es gibt Anhänger. Jemand ist bereit, ein Risiko einzugehen, an einem Startup teilzunehmen, und wenn er in einem Jahr schießt, nennt sich die Person sofort Regisseur, Unterzeichner und was auch immer.

Und es gibt Programmierer, die nur gerne programmieren, aber nicht bereit sind, globale Entscheidungen zu treffen.

- Es hört sich so an, als ob es bei der mittleren Mittelstufe nicht nur darum geht, die Sprache zu kennen.

- Diese Abstufung ist in der Regel willkürlich und von Unternehmen zu Unternehmen unterschiedlich. Wenn absolut elementar - ein Junior ist eine Person, die die Syntax kennt. Middle - kennt alle zusätzlichen Bibliotheken, Frameworks und weiß, wie man all dies verwendet. Signor - weiß nicht nur, wie man es benutzt, sondern hat auch reiche Erfahrung in der Entwicklung verschiedener Dinge.

- Welche Art von Arbeit zu suchen, um nicht sofort enttäuscht zu werden?

- Wir müssen sofort eine Notiz in meinem Kopf machen: "Wenn nichts klappt, werde ich nicht verärgert sein." .

— ?

— -, . , , , , , . . , , .

, . - , . , , .

— , ?

— , , , . «-» , . , , . .

— ?

— . — . — , - .

.

Source: https://habr.com/ru/post/de454182/


All Articles