Als Kind träumte Anastasia Birillo davon, Lehrerin für russische Sprache und Literatur zu werden. Heute ist sie Forscherin bei JetBrains Research, Methodologin und Lehrerin bei Digital Banana sowie Entwicklerin ihres eigenen Startups. "Der Humanist ist kein Satz", behauptet Nastya. Auf unserer November-Konferenz "
Contenting " sprach sie darüber, wie man selbst Programmieren lernt, welche Richtung man für einen unerfahrenen Entwickler wählt, wo man nach Projekten sucht, welche Schwierigkeiten auf dem Weg des Rauchers auftreten können und wie man sie überwindet.

Unter der Kürzung ihres Berichts.
Zwei Möglichkeiten zur Programmierung
Die Leute denken oft, dass das Programmieren sehr schwierig ist. Wenn Sie nicht einmal ein paar Codezeilen schreiben können, scheinen Programmierer eine Art Götter zu sein, die unglaublich komplexe Dinge tun. In der Tat nichts dergleichen.

Sie können auf zwei Arten zu diesem Beruf kommen. Der klassische Weg ist ziemlich normal, durch Ausbildung an einer technischen Universität. Ich habe es durchgemacht, es ist cool, cool. Sie haben viel Zeit, weil Sie ein Student sind. Du bist jung, du hast viel Kraft und Energie. In Ihrer Gemeinde können Sie dem Lehrer oder den Klassenkameraden jederzeit eine Frage stellen. Darüber hinaus erhalten Sie ein technisches Diplom, das Ihnen viele Perspektiven bietet, auch im Zusammenhang mit der Arbeit im Ausland.

Aber wir werden über einen anderen Weg sprechen, über den sogenannten „Raucherweg“. Wenn Sie bereits ein erstes Diplom erhalten haben, arbeiten Sie beispielsweise irgendwo in der PR - und plötzlich haben Sie den Wunsch, Programmierer zu werden. Dieser Weg hat mehrere Nachteile. Erstens haben Sie wenig Zeit, nach der Arbeit setzen Sie sich für Lehrbücher, anstatt mit Freunden in eine Bar oder in einen Film zu gehen. Zweitens erhalten Sie höchstwahrscheinlich keine Ausbildung und kein Diplom. Aber mit der gebotenen Sorgfalt werden Sie Ihre Freunde überraschen und der „Gott-Programmierer“ werden, über den sie dachten: "Herr, das ist so schwierig." Und jetzt weißt du wie!

Erste Schritte, erste Schwierigkeiten und Erfolge
Das Einloggen in die Programmierung scheint mir aus dem Internet einfacher zu sein. Zuerst wird es überhaupt nicht programmiert, aber Sie können mit dem Layout beginnen: Strukturieren Sie die Seiten, kolorieren Sie sie mit Stilen. Mit der gebotenen Sorgfalt werden Sie bald in der Lage sein, gutes Geld dafür zu bekommen und Aufträge freiberuflich zu sammeln. Dann lernst du JavaScript, HTML, CSS ... Du denkst, du hast schon alles verstanden - und natürlich liegst du falsch.
Dies ist ein echtes Zitat aus einer ziemlich beliebten öffentlichen VKontakte. Die Jungs denken: "Ich habe die Front gemeistert, ich bin ein super cooler Webprogrammierer, jetzt muss ich ins Backend." In der Tat ist dies nicht so.

Das Frontend ist ein sehr cooler Bereich. Sehr oft denken die Leute, dass es dort nichts Interessantes gibt, man muss nur sitzen und das Seitenlayout. Selbst wenn ich es beherrsche, wird es wild langweilig. Sie verstehen nicht, dass dieses Frontend viel Logik enthält. Sie wenden Programmiermuster an, die in der konventionellen Entwicklung verwendet werden, verstehen die Algorithmen und Datenstrukturen - und das ist ziemlich schwierig.

Nach JavaScript, HTML und CSS können Sie mit dem Erlernen von Front-End-Frameworks beginnen. Nach 3-4 Monaten können Sie Ihre einfache Anwendung bereits in Angular oder React schreiben. Als Sie zuvor eine Reihe von Fehlern in der Konsole gesehen hatten, hatten Sie Angst: "Oh mein Gott, was ist das?!" Jetzt sehen Sie es ruhig an, beginnen zu googeln und herauszufinden, was der Grund ist. Bei der Erwähnung von Github werden Sie nicht von kaltem Schweiß gebrochen: Sie wissen, dass dies eine so süße Katze ist, eine ziemlich bequeme Sache für alle Programmierer. Vielleicht kichern Sie schon süß über einen geisteswissenschaftlichen Freund, der plötzlich auch das Programmieren lernen will. Es gelingt ihm nicht, er sitzt und versteht nicht, was mit ihm passiert. Und Sie sehen, dass er die Klammer irgendwo vergessen hat.
Programmierer - als Künstler
Jetzt haben Sie die Programmierung gut beherrscht und können zum sogenannten Software Engineering übergehen. Dort leben die gleichen Leute, die alle möglichen komplizierten Dinge in Java, C #, C ++, Python usw. schreiben. Und das ist gar nicht so schwierig: In diesem Moment verstehen Sie bereits, dass ein Programmierer wie ein Künstler ist. Er lernte einfach, wie ein Computer zu denken und überträgt ihn auf Code - mit bestimmten strengen Regeln. Der Künstler hat keinen starren Rahmen, aber sie sind in der Programmierung. Aber Sie verstehen bereits: Im Prinzip ist es nicht so schwierig, ich kann damit umgehen.

Welche Sprache soll ich anfangen?
Viele Pfade und Programmiersprachen sind für Sie geöffnet. Sie können beispielsweise mit Python beginnen. Dies ist eine ziemlich einfache Sprache, die für akademische Zwecke für Kinder gemacht wurde. Wenn Sie Englisch sprechen, können Sie Python-Code verstehen, auch wenn Sie ihn nie programmiert haben. Servachki sind auf Python geschrieben - das ist die Logik auf allen Seiten. Und wenn Sie plötzlich ein Talent für Mathematik in sich entdecken und viel Zeit finden, können Sie zum Hype Data Science gehen und dort 300.000 pro Sekunde verdienen. In diesem Bereich gibt es jedoch Schwierigkeiten.

Kotlin oder Java sind schwerer zu lernen als Python. Es gibt viel mehr Feinheiten und eine ziemlich komplizierte Syntax. Vor allem zu Beginn der Reise wird es jedoch viel einfacher sein, einen Job zu finden: Junior Java Developer-Stellen sind viel mehr als Stellen für Python-Programmierer für Anfänger. Es gibt auch viele Möglichkeiten. Sie können einfach als Java-Entwickler im Software-Engineering bleiben, zur mobilen Entwicklung gehen oder dieselben Dienste nur in Java oder Kotlin schreiben.

Und wenn Sie viel Kraft in sich sehen, fühlen Sie sich wie der Meister des Universums und lernen dann C ++ oder Rust. Dies ist die Art und Weise, wie Menschen, die ein Praktikum bei Google absolvieren, hochkomplexe Bewerbungen schreiben, ständig über Speicherlecks sprechen oder selbst auf die Füße schießen können. Aber wenn Sie es wirklich wollen, werden Sie sicher nicht aufgeben, was Sie können - warum nicht?

Coolness-Skala

Ich habe so etwas wie Junior Java Developer erwähnt. In der IT-Welt gibt es die sogenannte „Coolness-Skala“ von Junior bis Senior. Wenn Sie Junior sind, sind Sie wie ein Kind: Sie sehen einen Fehler und sitzen in Panik, verstehen nicht, was passiert. Sie weinen nur und rufen diesen Superhelden-Señor um Hilfe: Er kommt und löst Ihr Problem, auf dem Sie mehrere Stunden oder Tage sitzen könnten, buchstäblich in einer Minute. Dies ist keine Magie, Fähigkeiten sammeln sich im Laufe der Zeit an: Erfahrung wird gesammelt und die Wissensbasis wächst.
Was zu üben

Jetzt denken Sie wahrscheinlich: "Ich werde ein Feld auswählen, Python lernen oder ins Internet gehen, mich für einen Berg von Kursen anmelden, eine Menge Bücher lesen und ein cooler Programmierer werden." Eigentlich funktioniert das nicht. Das Wichtigste ist die Übung. Ich spreche nicht von trivialen Projekten, die in Kursen gefragt werden, aus der Kategorie "Entfernen Sie die ersten 10 Fibonacci-Zahlen" oder "Tauschen Sie zwei Variablen im Array aus". Löse wirklich interessante Aufgaben, mach was du willst.
Schreiben Sie Ihre Version der Anwendung, die Sie jeden Tag verwenden. Probieren Sie sie einfach aus. Warum? Es ist eine Sache, die Theorie zu lesen: "Ja, Kapselung, eine Art gruseliges Wort ... nun, ich habe ungefähr verstanden, wofür es ist ..." Eine andere Sache ist, sich in der Praxis damit auseinanderzusetzen: Sie werden sofort alle Lücken sehen, die später möglicherweise nicht ausreichen, wenn Du wirst einen Job bekommen.

Bei Interviews begegnen wir oft Joons, die über Bücher sprechen, die wir lesen, und über Kurse. Sie fragen dies: "Was haben Sie getan?" Er: "Nun, ich habe dort ein paar Schulungsprojektingenieure ausgewählt, die auf Stepik waren." Es ist viel cooler, über meine eigene Anwendung zu sprechen: "Ich habe diese Architektur erstellt ... es ist mir nicht gelungen, ich habe sie überarbeitet, ich bin auf solche und solche Probleme gestoßen, habe sie so und so gelöst ..." HR sieht das und das ist ein ziemlich cooles Plus Karma. Bei der Bewerbung - ja, sie betrachten das Wissen im Allgemeinen. Aber für einen Junior ist es wichtig, dass er lernen kann und dass er nicht nur die Theorie liest, sondern sich auch auf irgendeine Art von Praxis einlässt.
Wo man nach Projekten sucht

Projekte zu finden ist einfach. Sie haben sich beispielsweise für das Layout entschieden. Wir sitzen alle im Internet, Sie haben wahrscheinlich eine Lieblingsressource - Habr, Picabu, eine Art Website mit Bildern. Sie nehmen diese Seite und machen das gleiche. Ja, es wird nicht verwendet, niemand wird es kaufen. Aber während Sie an diesem Projekt beteiligt sind, werden Sie auf eine Reihe von Problemen stoßen - und Sie werden lernen, wie man sie löst: Sie werden versuchen, etwas zu tun, zuerst wird es nicht funktionieren, und dann werden Sie es beheben.

Wenn Sie eine Art Logik schreiben möchten - zum Beispiel für Webanwendungen am vorderen oder hinteren Ende -, suchen Sie einfach im Internet nach einer ähnlichen Ressource und implementieren sie ... Im Allgemeinen können Sie Code für alles schreiben. Im Internet finden Sie ein einfaches Tutorial - wie Sie eine Aufgabenliste erstellen. Dies ist, was viele raten - eine solche To-Do-Liste, in der Sie notieren, was bereits getan wurde. Sie können einige Steine implementieren, die Sie mit dem Freund spielen, der sich ebenfalls für das Studium entschieden hat. Sie können sogar zusammen kommen und gemeinsam ein Projekt schreiben.
Wie man alles macht und Geld für ein Hobby bekommt

Normalerweise schlafe ich einfach nicht viel. Aber im Allgemeinen kann man jeden Tag malen. Wenn Sie eine Liste der Dinge haben, die Sie tun möchten, werden Sie sie höchstwahrscheinlich tun. Die Hauptsache sind harte Fristen. Wenn Sie sagen: "Ich muss einen Testantrag stellen, ich habe zwei Wochen dafür", funktioniert dies nicht. Aber wenn Sie "die Testanwendung bis zum 4. Dezember zerschneiden" müssen, dann werden Sie sitzen und sehen. Ich habe einfach einen Kalender auf meinem Computer gestartet, jeden Tag Dinge für mich selbst abgelegt und versucht, sie zu erledigen. Gleichzeitig finde ich Zeit, mit Freunden spazieren zu gehen, zu tanzen und Englisch zu sprechen.

Dies funktioniert nur, wenn Sie den Job wirklich mögen. Mein Kollege wurde Front-End-Entwickler, weil er es satt hatte, in der PR zu arbeiten. Er erkannte, dass er das Layout der Websites wirklich mochte und verbrachte seine ganze Freizeit damit. Aber es hat ihm gefallen. Kein Wunder, dass sie sagen: Finde, was du magst, und dann wirst du keinen Tag arbeiten. Es klingt erbärmlich, aber es ist wahr. Ich liebe das, was ich mache, so sehr, dass ich es nicht Arbeit nennen kann. Es stellt sich heraus, dass ich für mein Hobby bezahlt werde.
Einstiegspunkt: Warum das Web besser ist als Spiele
Spiele sind auch ein guter Einstiegspunkt. Aber du musst tun, was du willst. Zum Beispiel hasse ich Spiele und konnte dadurch kein Programmierer werden, selbst wenn ich es wirklich wollte. Wenn Sie ein Konstrukt verwenden (es ist so einfach, 2D-Spiele zu erstellen), programmieren Sie im Wesentlichen nicht. Und wenn Sie anfangen, sich zu schminken, gewöhnen Sie sich immer noch an zumindest eine gewisse Disziplin: Sie sehen diese Klammern, Sie gewöhnen sich daran, keine Angst vor dem Schreiben von Code zu haben, und es wird Ihnen leichter fallen, sich an komplexere Dinge anzupassen. Dann sehen Sie ruhig große Codestücke an: "Nun, okay, das habe ich auch geschrieben, es ist okay."
Die Hauptsache ist, keine Angst zu haben
- Sie denken: „Ja, das sagt sie, als ob alles einfach wäre. Tatsächlich sind das alles Träume. “ Nein, nicht einfach - aber möglich. Als ich von einer Schule für freie Künste an die Universität kam, war ich der schlechteste auf dem Kurs. Aber Sie versuchen es, und selbst wenn Sie keinen Erfolg haben, versuchen Sie es weiter. Ich dachte, ich würde all diese OOPs, Grafiken, Datenstrukturen und mehr nie verstehen. Aber jetzt arbeite ich als Programmierer und unterrichte Kinder im Programmieren. Es mag erbärmlich klingen, aber der Humanist ist kein Satz.

Wenn Sie zur IT gehen möchten, ist die Hauptsache - haben Sie keine Angst. Sie müssen die Angst überwinden und keine Angst haben, Code zu schreiben. Aus irgendeinem Grund denken alle über das Programmieren nach, dass dies verdammt noch mal sehr, sehr schwierig ist. Sogar die Kinder, die ich unterrichte, haben manchmal Angst, ein Programm zu starten, das sie selbst geschrieben haben: "Jetzt wird es einen Fehler geben, alles wird fallen und ich werde nicht verstehen können, was der Grund ist." Die Hauptsache ist, diese Angst zu überwinden. Sie können mit dem Web beginnen, es ist ziemlich einfach. Und denken Sie daran: üben, üben und viele, viele Übungen. Ohne sie wird nichts funktionieren!
Alle Berichte von „
Contenting “ - und dies sind 16 Stunden nützliche Informationen, 26 Reden und 3 Diskussionen darüber, wie man coole Inhalte über Technologien und den Einsatz von Technologien erstellt - sind hier im Videoformat. Rabatt für Habr-Benutzer mit dem Promo-Code habr_online_promo.
Für die Unterstützung der Konferenz danken wir unseren Sponsoren: