
Ich erhielt eine Hochschulausbildung an der MSTU, studierte Kernreaktoren und Kraftwerke. Trotz des positiven Eindrucks des Studiums und der allgemein guten Aussichten entschied ich mich nach der Universität, Entwickler zu werden. Und es stellte sich heraus! Seit drei Jahren arbeite ich als Java-Entwickler, ohne meine Ausbildung für eine Sekunde zu unterbrechen. Ich werde darüber sprechen, welche Trainingsmethoden für mich am effektivsten waren. Nicht die Tatsache, dass sie zu jedem und jedem gehen werden. Ich hoffe, jemand zeichnet etwas Nützliches für sich.
Online-Kurse
Aber zurück zum Anfang. Ich habe an einer Universität kein Programm studiert, meine Fakultät hieß Kernreaktoren und Kraftwerke. Dort habe ich jedoch die wichtigste Grundlage für meinen derzeitigen Beruf gelegt: Nach Baumanka ist es unglaublich einfach, Materialien unabhängig vom Format zu lernen. Daher bin ich nicht der Meinung, dass die Hochschulbildung an Wert verliert. Eine Person mit einer hochwertigen Hochschulbildung, auch aus einem anderen Bereich, denkt immer ein bisschen besser und greift ein bisschen schneller.
Energie hat mich nicht erwischt, weil ich mitten im Training erkannte, dass meine Zukunft in der IT liegt. Java war schon immer eine der führenden Sprachen, daher gab es bei der Auswahl keine großen Bedenken. Da es keine mit dem Format gab - warum sollten Sie Ihr Leben komplizieren, wenn es Online-Kurse gibt? Ich habe mich schnell für mehrere IT-Kurse angemeldet und mit unglaublicher Ausdauer, aber vor allem mit Vergnügen, einen neuen Beruf erlernt. Es kam vor, dass der einzige aus der Gruppe komplexe Hausaufgaben machte.
Ich habe viele Kurse durchgesehen, hier sind die, die mir am besten gefallen haben:
- Java Rush - bequem und intuitiv.
- Stepik ist ein jährliches Programm mit Kursen in Java, Python, Haskell, C ++, funktionaler Programmierung, mathematischer Analyse und Statistik.
- Otus ist ein fortgeschrittener Java-, Spring- und Machine Learning-Kurs.
- Fakultät für Java-Entwicklung an der GeekUniversity (GeekBrains) - hier beende ich jetzt das letzte Quartal.
Es ist durchaus sinnvoll, mehrere Java-Kurse gleichzeitig zu belegen, da sich die Programme zeitlich und inhaltlich unterscheiden. Kurze Praktika sind gut, weil Sie sofort anfangen, das zu tun, was Sie für echte Arbeit benötigen. Detailliertere Programme wie in GeekUniversity bieten zusätzliches Wissen zu Datenbanken, Algorithmen und Frameworks. Es ist nicht notwendig, alles gleichzeitig zu studieren, es hat vielleicht nicht genug Zeit und Mühe, aber ich empfehle, zumindest nach und nach alles oben auszuprobieren. Und hör nie auf.
Übe
Die Struktur aller Bücher über Programmierung ist auf jeden Fall gut, eine ist die Erklärung des Themas, dann die Übungen. Letzteres sollte nicht nur gelesen werden, sondern muss mit den Händen ohne Kopieren und Einfügen erfolgen. Noch cooler - wenn Sie als Programmierer arbeiten und dies mit Training kombinieren. Es hilft Ihnen, schneller zu wachsen und sich die richtigen Fragen zu stellen. Es hat mir geholfen, dass ich nach Beginn der Ausbildung schnell genug anfing, in verschiedenen Projekten zu arbeiten.
Bei Glosav habe ich ein System zur Transportüberwachung erstellt. Dort wurden verschiedene Sprachen gemischt, Erlang arbeitete auf höchstem Niveau beim Datenempfang, dann auf dem Systembus auf Kafka und dahinter - solides Java. Persönlich habe ich Stream-Handler geschrieben. Beim Start entwickelte iVoice ein automatisiertes Callcenter, das Kafka aktiv nutzte. Kürzlich bin ich Entwickler bei Luxoft geworden, es gibt viele neue Dinge für mich - wir machen ein Informations- und Referenzsystem für eine Gruppe von VTB-Banken. In dem Projekt entwickle ich eine Microservice-Architektur auf dem Spring Cloud-Modul.
Wenn Sie die Arbeit auf das Studium projizieren, verstehen Sie besser, welche Kurse es jetzt ratsam ist, zu wählen. An welcher Stelle ist es besser, den Lehrer zu fragen, der Vorteil in "langen" Kursen ist eine solche Gelegenheit.
Fremdcode auf Github
Vor kurzem habe ich angefangen, mir den Code vieler anderer Leute auf GitHub anzuschauen, Bibliotheken und Frameworks zu studieren, zu analysieren, wie coole Entwickler ihre Probleme lösen, und ihre Methoden in Betrieb zu nehmen.
Es passiert so. Wenn ich einen schwierigen Moment sehe, nehme ich ein Stück Papier, einen Stift und zeichne ein Diagramm mit Klassen, Variablen und Beziehungen. Ohne ein Stück Papier auf GitHub ist dies nicht sehr bequem anzusehen, da Sie für jede Klasse einen eigenen Tab öffnen müssen. Zur Vereinfachung verbinde ich die IDE und schaue mir Schritt für Schritt die Ausführung des Debugging-Codes an.
Natürlich wurde der größte Teil des "Peeping" -Codes von westlichen Entwicklern geschrieben, einfach wegen der Popularität von GitHub. Sie sind alle offene Menschen. Wenn Sie es also nicht alleine herausfinden können, können Sie ihnen schreiben und nach einigen Punkten fragen. Sie werden gerne antworten.
Als ich bei Glosav gearbeitet habe, habe ich die GraphHopper-Bibliothek verwendet. Ich ging oft zu einem Forum, in dem der Produktgründer in einem separaten Thread Fragen von anderen Programmierern beantwortete.
Wenn ich mit coolen Entwicklern zusammenarbeite, achte ich auch darauf, wie sie schreiben. Manchmal bemerke ich in Kursen, dass der Lehrer einen stilvollen, schönen Code hat. Infolgedessen bin ich sicher, alles zu „zerlegen“, sorgfältig zu studieren und neue Dinge für mich selbst hervorzuheben.
Papierbücher
Das Format der Materialien sollte so vielfältig wie möglich sein, daher sollten Papierbücher auf keinen Fall aufgegeben werden. Zum Beispiel habe ich ein großes separates Regal mit Programmierpublikationen. Und ich nehme immer etwas mit, um im Zug oder in der U-Bahn zu lesen. Für eine solche Lektüre müssen Sie nicht viel Zeit aufwenden, die Hauptsache ist, sie regelmäßig zu machen.
Wenn Sie ein Java-Anfänger für Anfänger sind, finden Sie hier mein persönliches Top-Buch, das Sie unbedingt lesen müssen:
- Harold Abelson, Gerald Jay Sassman „Struktur und Interpretation von Computerprogrammen“ ist ein ausgezeichnetes Lehrbuch für diejenigen, die mit dem Programmieren beginnen. Alle Beispiele sind in der Funktionssprache von Scheme aufgeführt, was besonders cool ist, da Sie sich nicht auf eine bestimmte Implementierung, sondern auf eine Idee konzentrieren. In Zukunft ist dies bei der Lösung komplexer Probleme sehr nützlich.
- Steve McConnell "Perfekter Code", Robert Martin "Sauberer Code". Erstellen, Analysieren und Umgestalten “ ist ein Klassiker der Programmierung. Vielleicht sollte jeder, der im Beruf bleiben möchte, ihn lesen. Es gibt mehr Philosophie als Code, aber der Wert davon wird nicht reduziert.
- Bruce Eckels The Philosophy of Java ist das Lieblingsbuch aller Javisten. Sprache, Organisation, Vorteile - im Allgemeinen alles, was Sie wissen müssen, bis Sie bestimmte Anwendungstools auswählen.
- Robert Laforet „Datenstrukturen und Java-Algorithmen“ - der Name spiegelt die Essenz voll und ganz wider. Mein Rat: Algorithmen besondere Aufmerksamkeit schenken. Glauben Sie mir, es wird nützlich sein und mehr als einmal helfen.
- Joshua Bloch Java. Effektive Programmierung “ - erinnert Robert Martin, aber Refactoring ist speziell für Java.
Von den neuen Produkten kann ich raten:
Ich zwinge mich nicht, all diese Kurse zu belegen oder Bücher über Programmierung zu lesen - ich interessiere mich nur für dieses Thema und sehe, dass neues Wissen mir hilft, meinen aktuellen Job besser zu machen. Gleichzeitig verstehe ich sehr gut, dass Programmieren ein Handwerk ist, bei dem Sie Ihre Hand füllen, den Minimalismus im Code beibehalten und nicht die gesamte Theorie, die Sie dort studiert haben, einfließen lassen müssen. Diese Art von Arbeit erinnert mich in gewisser Weise an Aikido: Sie wissen und verstehen viel, aber Sie wenden gezielte effektive Schläge mit den am besten geeigneten Mitteln an.