Wie man ein Java-Programmierer wird

Hallo. Wenn Sie diesen Artikel lesen, haben Sie höchstwahrscheinlich eine Frage, wie Sie Programmierer werden können. Vielleicht haben Sie sogar beschlossen, die Programmiersprache Java zu lernen, wissen aber nicht, wo Sie anfangen sollen. Ich wage auch zuzugeben, dass sich viele die Frage gestellt haben: Ist es möglich, Java in einem Jahr zu lernen? Was wäre, wenn ich nicht als Programmierer an der Universität studieren würde? Ich habe nicht einmal eine technische Spezialität. Kann ich das? Wie viel Zeit muss ich für diese Lektion aufwenden? Was musst du lernen? Wo soll ich mit dem Training beginnen? Wenn Sie mindestens eine dieser Fragen haben, sind Sie jetzt am richtigen Ort.


Es ist nicht verwunderlich, dass sich viele Menschen am Anfang verlaufen und nicht wissen, wo sie anfangen sollen, denn es gibt so viele Sprachen, viele Programmierbücher, verschiedene Arten von Schulungen, Videokurse und sogar individuelles Mentoring. Wie wählen Sie aus, was zu Ihnen passt, und wie erzielen Sie Ergebnisse in einem angemessenen Zeitrahmen? Reden wir über alles in Ordnung.


Motivation


Bevor Sie eine schwierige Aufgabe beginnen, die viel Zeit und Energie erfordert, müssen Sie verstehen, warum dies für Sie ist. Jeder von uns muss drei wichtige Fragen für sich selbst beantworten:


Warum? Ist die schwierigste Frage. Es liegt der Motivation zugrunde. Sie müssen klar verstehen, was Ihr Ziel ist und wonach Sie streben. Geld sollte hier kein Hauptgrund sein, sondern einfach eine wichtige Ergänzung. Wenn Sie moderne Technologien mögen, etwas kreieren möchten, stundenlang in Ihrem Lieblingsgeschäft sitzen können, bereit sind, dies kostenlos zu tun, und logisch denken, dann ist es wahrscheinlich, dass diese Kurse nur für Sie sind. Sie müssen in der Lage sein, Spaß an der Arbeit zu haben. Nur in diesem Fall können wirklich gute Ergebnisse erzielt werden.


Was? - Dies ist eine ziemlich logische Frage. Was muss getan werden, um in dieser Angelegenheit erfolgreich zu sein? Hier kann sich die gleiche Frage stellen, welche Sprache zu wählen ist und welche Materialien benötigt werden, um sie zu studieren.


Wie? - Wie man in einem angemessenen Zeitrahmen signifikante Ergebnisse erzielt.
Wenn jeder die erste Frage unabhängig beantworten sollte, können wir die letzten beiden gemeinsam behandeln.


Welche Sprache soll ich wählen?


Angenommen, mit Motivation ist alles in Ordnung und wir können mit der nächsten Frage fortfahren. Bevor Sie sich für eine Sprache entscheiden, müssen Sie wissen, ob es auf dem Arbeitsmarkt offene Stellen gibt, ob diese zu dem Zeitpunkt vorliegen, an dem Sie die Grundstufe beherrschen und mit der Arbeitssuche beginnen. Auch die Komplexität der Programmiersprache spielt eine Rolle. Je komplexer die Sprache ist, desto mehr Zeit benötigen Sie, um sie zu beherrschen. Andererseits ist es auch nicht immer gut, das Einfachste zu wählen, da der Wettbewerb hier höher sein kann als in anderen Kategorien. Um die Perspektiven der Sprache zu bestimmen, müssen Sie analysieren, wo sie verwendet wird, wie breit der Umfang ist und wie oft neue Frameworks in der von Ihnen gewählten Sprache herauskommen. Hier kann uns die Bewertung von Programmiersprachen helfen.


Ich denke, es ist Zeit, die Wörter mit Zahlen zu untermauern. Laut verschiedenen Umfragen gehören Java, JavaScript, C ++, C und Python zu den fünf führenden Unternehmen.


Umfragebeispiele finden Sie im Internet in Hülle und Fülle. Hier sind nur einige davon:


Zum Beispiel ist Java laut der Version von tiobe.com , die regelmäßig ein Ranking von Programmiersprachen veröffentlicht, seit vielen Jahren führend. Die Top 5 haben auch C ++ und Python.


Bewertung der Programmiersprachen tiobe.com

Eine weitere maßgebliche Quelle für Statistiken, die Stackoverflow- Website, auf der Umfragen unter ihren Benutzern durchgeführt wurden, besagt, dass JavaScript an erster Stelle steht, während Java in der fünften Zeile der Bewertung steht. Hier wurden aber auch HTML- und CSS-Markup-Sprachen berücksichtigt.


Bewertung der stackoverflow-programmiersprache

Es ist zu bedenken, dass viele Java-Programmierer JavaScript bis zu einem gewissen Grad kennen. Unter JavaScript-Entwicklern gibt es weniger Leute, die auch Java kennen. Dies fügt JavaScript in einer früheren Umfrage einige Punkte hinzu.


Schauen wir uns nun die Anzahl der offenen Stellen und Antworten von Kandidaten in verschiedenen Sprachen an. Um es nicht lange zu erklären, werde ich nur ein paar Links geben. Beispielsweise veröffentlicht die Website DOU.ua regelmäßig verschiedene Statistiken zu Stellenangeboten, Gehältern usw. Sie können beispielsweise interessante Trends bei der Zunahme der Anzahl der offenen Stellen in Spitzensprachen beobachten und genau dort verschiedene Filter verwenden, die das Verhältnis der Anzahl der offenen Stellen in verschiedenen Städten und in verschiedenen Sprachen anzeigen. Die Daten sind sowohl in tabellarischer als auch in grafischer Form verfügbar. Zu den Favoriten zählen hier wie gewohnt Java, Python, C ++, .NET. Darüber hinaus ist das Verhältnis der Anzahl der offenen Stellen / Antworten für 2018 für C ++ am besten: 2-3 Personen pro Ort. Leider konnte ich keine ähnlichen Statistiken für andere Länder finden. Aber auf Habré gibt es einen guten Artikel mit Infografiken speziell auf Java.


Im Allgemeinen müssen Sie eine der Top-Sprachen auswählen, und zum Zeitpunkt des Abschlusses haben Sie gute Chancen, einen Job zu finden.


Meiner bescheidenen Meinung nach ist Java eine gute Option, um eine Karriere zu beginnen. Nicht zu komplizierte Sprache, ein großer Umfang und eine ausreichende Anzahl von offenen Stellen. Es geht um Java, das die zweite Hälfte unseres Artikels sein wird. Wenn ich jetzt alles anfangen müsste, könnte Python eine gute Alternative werden, da es immer beliebter wird.


Überblick über das Java-Ökosystem


Damit Sie besser verstehen, was Sie als Java-Programmierer benötigen, geben wir einen kleinen Überblick über das Java-Ökosystem. Ich schlage vor, die folgende Abbildung zu betrachten. Es deckt sicherlich nicht alle Aspekte ab, aber es wird Ihnen ein gewisses Verständnis geben.


Java-Technologie

Im Zentrum des Universums haben wir wie üblich die Java-Sprache selbst. Insbesondere Java Core. Zum Zeitpunkt des Schreibens dieses Artikels hat Java JDK 10 das Licht der Welt erblickt. Oracle hat seine Richtlinien für die Arbeit mit Java-Versionen geändert, und jetzt gibt es keinen so großen Unterschied zwischen den Versionen wie beispielsweise Java 8. Diese Version ist nach wie vor die beliebteste und am häufigsten verwendete die überwiegende Mehrheit der Unternehmen und Projekte. Mit dieser Version können Sie sicher beginnen, die Sprache zu lernen, und neue Chips lernen, indem Sie ihnen Grundkenntnisse auferlegen. Das Studieren dieses Teils ist für Anfänger vielleicht die schwierigste Aufgabe. Sie müssen eine neue Art von Aktivität beherrschen und anders denken. Darüber wird auch eine große Menge an Material überlagert, die beschafft werden muss. Die meisten von denen, die gerade erst aussteigen, sind genau in diesem Stadium. Es hängt alles von Ihrer Motivation ab.


Wenn das Erlernen von Java in Ordnung ist, benötigen Sie zusätzliche Tools, z. B. ein Versionskontrollsystem (Versionskontrollsystem) und ein System zum Erstellen von Projekten. Als VCS empfehle ich die Verwendung von Git, dem absoluten Marktführer unter den eigenen. Alle anderen Systeme wie Subversion und Perforce gehören der Vergangenheit an. Außerdem können Sie die Github- oder GitLab-Repositorys für Ihren Code kostenlos verwenden. Mit hoher Wahrscheinlichkeit im Unternehmen verwenden Sie das BitBucket von Atlassian. Aber das ist nur eine Muschel. Wenn Sie lernen, Git zu benutzen, ist alles andere nicht unbedingt erforderlich. Atlassian ist auch ein Anbieter von Produkten wie Jira und Confluence, aber dies spielt in Ihren Studien keine Rolle.


Für Tools zum Erstellen von Projekten gibt es zwei Optionen: Maven und Gradle. Meiner subjektiven Meinung nach ist Maven vorzuziehen, aber andere Entwickler haben möglicherweise ihre eigene Meinung. Grundsätzlich sind beide Frameworks gleichwertig.


Nachdem Sie sich mit den oben genannten Dingen vertraut gemacht haben, sollten Sie überlegen, wie Sie fortfahren möchten. In der obigen Abbildung sehen Sie vier Hauptbewegungsrichtungen: Front-End (HTML, CSS, JS), Back-End (Ruhezustand, Spring, SQL), Android und Big Data. Diese vier Teile sind, obwohl in der Figur getrennt, tatsächlich ziemlich eng miteinander verbunden. Wenn Sie sich beispielsweise dafür entscheiden, ein Full-Stack-Java-Entwickler zu werden, müssen Sie den Back-End-Teil gut studieren und ein allgemeines Verständnis der Grundlagen des Front-End-Teils haben. Es sollte nicht erwartet werden, dass Sie mit dem Layout der Site befasst sind, aber Sie sollten HTML kennen. Ich sollte auch beachten, dass sich Spring im Back-End-Abschnitt hauptsächlich auf Spring Core bezieht. Mit diesem Teil des Frameworks müssen Sie beginnen. Jetzt ist es so gewachsen, dass es alle Aspekte der Java-Entwicklung abdeckt. Alternativ versucht Oracle, die Java EE-Spezifikation zu fördern, aber es geht ihnen nicht sehr gut.


Bei BigData gibt es auch einen ziemlich großen Stapel von Technologien. Grundsätzlich sind sie alle für die verteilte Speicherung und verteilte Datenverarbeitung unter Verwendung des Map-Reduce-Ansatzes ausgelegt. Die älteste und bekannteste Technologie hier ist Hadoop.


Ich denke, dass Android es nicht wert ist, erklärt zu werden. Ich kann nur sagen, dass Sie Java lernen müssen, um Anwendungen für diese mobile Plattform zu schreiben.


Wie Sie vielleicht bemerkt haben, gibt es eine ganze Reihe von Anwendungen für Java. Wenn Sie also Java gelernt haben, werden Sie in absehbarer Zukunft nicht ohne Arbeit bleiben.


Wo soll ich anfangen? Was zu lesen?


Offensichtlich müssen Sie mit den Grundlagen beginnen, d. H. mit Java Core. Dann Maven, Git und dann die Richtung, die Sie bevorzugen.


Hier haben Sie drei Möglichkeiten. Wir berücksichtigen nicht die Situation, in der Sie sich für dieses Fach an der Universität entschieden haben. Sie schließt die später beschriebenen Optionen immer noch nicht aus.


Option Eins - Java-Bücher

Der älteste, traditionellste und bislang bewährte Weg. Vorteile: Die meisten Bücher bekannter Verlage werden von professionellen Autoren verfasst, von denen viele über Dutzende Jahre Erfahrung in der Entwicklung und Lehre an renommierten westlichen Universitäten verfügen. Diese Bücher werden auch vom Verlag selbst sorgfältig geprüft, sodass die Fehlerwahrscheinlichkeit sehr gering ist. Besonders wenn das gleiche Buch immer wieder neu veröffentlicht wird, wenn die Sprache aktualisiert wird. Nachdem Sie die grundlegenden Bücher gelesen haben, müssen Sie zu fortgeschritteneren übergehen. Es gibt nur wenige Stellen, an denen Sie fortgeschrittene Programmierthemen finden, die mit derselben Tiefe betrachtet werden. Nachteile: Viele Bücher sind in einer trockenen akademischen Sprache verfasst und ähneln eher Nachschlagewerken. Der berühmte Autor Kay Horstmann selbst gab wiederholt zu, dass er solche Bücher nicht vollständig liest, sondern nur die Kapitel, die ihm bei der Lösung des aktuellen Problems helfen.


Zu den beliebtesten und besten Büchern für Anfänger gehören die folgenden (die Namen sind auf Englisch, wenn das Buch nicht ins Russische übersetzt oder die Übersetzung nicht gefunden wurde):


  1. Java Programmieren - Paul Daytel und Harvey Daytel. Dieses Buch hat eine Reihe von Nachdrucken überstanden und ist möglicherweise das umfassendste Java-Tutorial. Neben der Sprache selbst sind die Grundlagen der Algorithmen dort noch recht gut erklärt.
  2. Die Java-Philosophie - Bruce Eckel - hat sich auch in der Bibliothek der Programmierer einen Ehrenplatz verdient. Zugängliche und verständliche Erklärungen. Gut für Anfänger.
  3. Head First Java, 2. Auflage - Bert Bates, Kathy Sierra - ein Buch, das wegen seiner Fähigkeit, komplexe Konzepte anhand einfacher Lebensbeispiele zu erklären, populär geworden ist. Nicht zu tief im Inhalt, aber immer noch interessant.
  4. Java Professionelle Bibliothek. Band 1.2 - Kay Horstmann. Auch dieses Nachschlagewerk hat sich schon lange in den Regalen vieler Java-Entwickler niedergelassen. Es ist nur aus der Kategorie jener Bücher, aus denen separate Kapitel gelesen werden, um Probleme zu lösen, und nicht das ganze Buch.
  5. Java 8. Ein Leitfaden für Anfänger - Herbert Shildt. Ich habe dieses Buch nicht selbst gelesen, aber ich habe mehrere positive Bewertungen gehört. Lesen oder nicht - entscheiden Sie selbst.
  6. Datenstrukturen und Algorithmen in Java - Robert Laforet. Eines der besten Bücher über Datenstrukturen.
  7. Java Effektive Programmierung - Joshua Bloch. Ein etwas fortgeschritteneres Java-Buch. Es enthält eine Fülle von Tipps und Tricks, wie Sie Ihren Code verbessern können. Kürzlich erschien die 3. Auflage dieses Buches. Sehr zu empfehlen zu lesen.
  8. Java-Parallelität in der Praxis - Brian Goetz. Ist ein guter alter Multithreading-Leitfaden in Java, der nicht aus der Mode kommt.

Ich empfehle denjenigen, die bereits mit den Grundlagen der Java-Programmierung vertraut sind, aber die Weiterentwicklung planen, die letzten drei Bücher zu lesen. Beispiele für Bücher über verschiedene Arten von Frameworks werden nicht gegeben. Sie wurden auch einige geschrieben.


Die zweite Option - Videokurse zum Programmieren und nicht nur ...

Videokurse und verschiedene Arten von Videokursen erfreuen sich mittlerweile großer Beliebtheit. Die Idee selbst ist sehr gut und ich persönlich mag es. Diese Art von Schulungsmaterial eignet sich besonders für visuelle Zwecke, für Personen, die Informationen am besten visuell wahrnehmen. Darüber hinaus können Sie auch das Hörverständnis verwenden. Ein Vorteil ist der erschwingliche Preis. Darüber hinaus finden Sie auf YouTube eine Vielzahl kostenloser Lektionen, darunter auch recht gute. Unter den Mängeln der Lektionen auf YouTube sollte ich die häufige Fragmentierung und mangelnde Systematisierung sowie die Tatsache erwähnen, dass das darin enthaltene Material recht oberflächlich dargestellt wird. Aber auch hier gibt es Ausnahmen im guten Sinne des Wortes.


Alternative YouTube-Lektionen können solche Websites sein:
Safari O'Reilly - eine riesige Sammlung von Büchern, Video-Tutorials und Webinaren zu verschiedenen Themen. Die Qualität der Materialien ist ein großer Vorteil. Bücher und Videotrainings werden von anerkannten Fachleuten auf dem Gebiet aufgezeichnet. Der Hauptnachteil hier ist der Preis. 400 USD pro Jahr, wenn Sie sofort zahlen, oder 480 USD, wenn Sie monatlich zahlen. Alle Materialien sind in Englisch. Wenn Sie sich für ein Abonnement entscheiden, empfehle ich Materialien, die vom O'Reilly-Verlag selbst erstellt wurden. Sie sind normalerweise besser als die Lektionen anderer Verlage.


Pluralsight ist ein guter Ort für Video-Tutorials. Die Auswahl an Materialien zu den Themen ist groß, aber meist oberflächlicher als im vorherigen Fall. Alle Materialien hier sind auch in Englisch. Der Abonnementpreis beträgt 29 USD pro Monat oder 299 USD pro Jahr. Hier besteht wie im vorherigen Fall Zugriff auf die Materialien, während das Abonnement bezahlt wird. Sie können nicht einfach ein oder zwei Kurse für immer kaufen.


Udemy ist eine große Bibliothek mit verschiedenen Kursen. Es unterscheidet sich darin, dass die Kurse hier nicht nur auf Englisch, sondern auch auf Russisch sind. Die Preispolitik unterscheidet sich hier vollständig von früheren Ressourcen. Hier können Sie einen Kurs kaufen, der für immer bei Ihnen bleibt. Wenn Sie einen Kurs über Udemy wählen, müssen Sie auf die Anzahl der Stunden Videokurs, die Tonqualität (normalerweise sind mehrere Vorträge ohne Registrierung verfügbar) und die Bewertungen anderer Hörer achten. Hier möchte ich den Kurs „Java. Von einfach bis komplex . In Bezug auf Qualität (Anzahl der Stunden) zu Preis ist dies vielleicht der profitabelste Udemy-Kurs auf Russisch. Wenn Sie dem Link folgen, erhalten Sie einen Festpreis mit 90% Rabatt. Nur 10 mit einem kleinen Dollar für 33 Stunden exzellenten Videoinhalt. Während der Vorbereitung des Kurses analysierte der Autor eine Vielzahl von Kursen, Büchern und Schulungsmaterialien und brachte sieben Jahre Erfahrung in der Entwicklung von Anwendungen auf Unternehmensebene ein.


Option Drei - Vollzeitkurse
Eine weitere Trainingsoption, die Sie zu Ihrem geschätzten Ziel führen kann. Hier ist alles mehrdeutig. Einerseits erwarten Sie, dass Sie bei Vollzeitkursen alles sehen und erfahren, was Sie brauchen. Auf der anderen Seite muss man sich trotzdem selbst lernen. Kein Lehrer kann dir nur beibringen, wie gut er ist. Hier, wie an allen anderen Orten, hängt alles von persönlicher Motivation und persönlichem Scharfsinn ab. Ich sage also mit Zuversicht, dass es keinen Ausweg aus Büchern und Videokursen gibt. Der Vorteil kann sein, dass ein guter Lehrer Ihnen hilft, die Dinge zu verstehen, die Sie selbst nicht herausfinden konnten, und den Lernprozess ein wenig beschleunigt.

Hier, wie bei Videokursen, müssen Sie die Auswahl sorgfältig treffen. Wie in anderen Bereichen schafft die Nachfrage Angebot und es wird erwartet, dass es viele Vollzeitkurse von geringer Qualität auf dem Markt geben wird. Die Gründe für schlechte Qualität sind unterschiedlich und der Grund ist nicht immer der Lehrer. Ein häufiges Problem ist, dass Schulkurse zu viele Schüler gewinnen, um das Einkommen zu erhöhen, und selbst der beste Trainer nicht in der Lage ist, jedem Schüler genügend Zeit zu widmen. Je größer die Gruppe, desto vielfältiger werden die Schüler in der Gruppe sein. Am Ende ist die Gruppe in stärkere und schwächere unterteilt. Am Ende stampfen Sie entweder sofort, weil der Lehrer dasselbe mehrmals erklären muss, oder wenn der größte Teil der Gruppe mehr Erfahrung als Sie hat, fallen Sie hoffnungslos zurück. Nach kurzer Zeit gehen Zinsen verloren und es wird deutlich, dass das Geld verschwendet wurde. Beachten Sie bei der Auswahl der Kurse die Bewertungen derjenigen, die die Kurse bereits abgeschlossen haben, die Anzahl der Stunden des Kurses und die Anzahl der Personen in der Gruppe. Ein wichtiger Indikator ist die Verfügbarkeit von Input-Tests und eine Beschreibung der Mindestanforderungen.


Welche Option wählen?

Hier sollte jeder seine beste Option haben. Laut dem Autor ist die beste Option eine Kombination aller drei Optionen bis zu dem einen oder anderen Grad. Ohne Bücher wird es definitiv nicht funktionieren. Wenn Sie sich für einen Vollzeit-Programmierkurs entscheiden, müssen Sie zunächst verstehen, ob diese Aktivität überhaupt für Sie geeignet ist. Wenn ja, lesen Sie mindestens ein Buch und sehen Sie sich ein paar Video-Tutorials an, bevor Sie dorthin gehen. Erstens werden Sie Ihre klar verstehen oder nicht. Zweitens können Sie mit einer minimalen Basis die richtigen Fragen stellen und letztendlich das Maximum aus dem Kurs herausholen. Drittens können Sie an einem Kurs teilnehmen, bei dem ein Schüler etwas mehr als nur grundlegende Computerkenntnisse benötigt.


Sobald Sie nur minimale Kenntnisse erworben haben, wäre es schön, einen Mentor zu finden. Vergnügen ist nicht billig, aber wenn der Mentor gut ist, sparen Sie viel Zeit. , — , , , , , .


?


. , . , . . Hello World , . . , . — , .


. , . . . , .


— . , . , . . , .


hackerrank . , . .


GitHub GitLab. , . - . , . , , , , . , . .


Auf dieser Ebene können Sie wahrscheinlich in Open Source schmuggeln. Wenn es noch keine Arbeit gibt, üben Sie dort. Sie profitieren, die Gesellschaft profitiert.


Parallel zum Repository ist es an der Zeit, einen Lebenslauf zu erstellen und die Schwellenwerte von Unternehmen zu überschreiten. Denken Sie daran, Links zu Projekten in Ihr Repository aufzunehmen. Holen Sie sich so viele Interviews wie möglich. Die Fähigkeit, sie zu bestehen, ist eine sehr wichtige Fähigkeit, die Ihnen am Ende zusätzliches Einkommen bringt.


Abschließend möchte ich Ihnen viel Glück wünschen. Denken Sie daran, Facebook und Apple waren einst auch kleine Unternehmen mit jemandem in einer Garage oder einem Wohnheim. Ich muss nur lernen. Es spielt keine Rolle, wie viele Stunden pro Tag Sie lernen, sondern wie viele Tage hintereinander Sie dies tun.

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


All Articles