Roadmap eines Java-Entwicklers
Ein Freund von mir hat sich gefragt, warum Entwickler immer so glücklich sind. Die Antwort, die sie erhielt, war einfach und überraschend: Sie machen, was sie wollen, und verdienen viel Geld. Willkommen in der Welt der Softwareentwickler.
Gehalt eines Softwareentwicklers
Ich möchte Ihnen etwas über die Gehälter der Entwickler erzählen. Wie das Land mit den Gehältern aussieht, wo man arbeiten sollte und wo nicht. Wenn Sie kein Entwickler sind und versuchen, es selbst herauszufinden, erhalten Sie möglicherweise ziemlich kontroverse Daten. Der Hauptpunkt ist, dass der Hauptfaktor, der das Gehalt eines Entwicklers beeinflusst, nicht die Qualifikation, sondern der Ort der Anstellung ist. Bei gleichem Qualifikationsniveau kann der Unterschied zwischen gutem und schlechtem Arbeitsplatz manchmal das 2- bis 10-fache(!) betragen. Zu jedem Zeitpunkt ist Ihre Qualifikation konstant. Sie können sich nicht in einem Monat doppelt so gut qualifizieren und doppelt so viel verdienen. Aber Sie können innerhalb eines Monats den Arbeitsplatz wechseln und das Doppelte Ihres Gehalts erhalten. Einmal im Laufe von zwei Monaten verdreifachte sich mein Gehalt (!) – ein unvergessliches Erlebnis. Also, lasst uns herausfinden, welcher Ort der beste ist.- Ob das Hauptgeschäft eines Unternehmens die Softwareentwicklung ist
- Ob das Unternehmen auf den globalen oder lokalen Markt ausgerichtet ist
- Wo befindet sich die Hauptniederlassung: Industrieland oder Entwicklungsland?
Spezifische Zahlen
Da die Gehälter in verschiedenen Teilen der Welt unterschiedlich sind, schlage ich vor, das Gehalt eines leitenden Java-Entwicklers mit 5 Jahren Erfahrung als Ausgangspunkt zu nehmen und es „maximal 5 Jahre“ zu nennen. Alle nachstehenden Zahlen werden als Prozentsatz dieses Betrags angegeben. Hier sind einige Beispiele für „5-Jahres-Höchstgehälter“ in verschiedenen Städten der Welt:


Was Sie erreichen können, wenn Sie nicht dumme Dinge tun
Wenn Sie jetzt anfangen, sich im Programmieren selbst weiterzubilden, kann Ihr Gehalt wie folgt aussehen:
Planen
0-3 Monate (Student)
Sie wissen sehr wenig über Programmierung. Möglicherweise haben Sie es in der Schule oder an einer Hochschule auf Grundniveau gelernt. Was Sie tun müssen, ist zu lernen, wie man Java programmiert und lernt. Ihr Ziel ist es, einen Job als Java Junior Developer in einem Unternehmen der Stufe 3 oder höher zu bekommen. In den ersten drei Monaten des Plans erhalten Sie nichts, da Sie gerade erst das Programmieren lernen. Aber je früher Sie beginnen, desto besser. Die beste Zeit ist JETZT. Wenn Sie in Zukunft eine Familie und jede Menge Kredite haben, wird es viel schwieriger sein, sich erneut zu qualifizieren. Um Ihren Fehler zu korrigieren, müssen Sie Geld beiseite legen, um mindestens ein Jahr normales Leben zu finanzieren. Machen Sie keine dummen Fehler.3-15 Monate (Java Junior Developer)
Sie arbeiten bereits als Softwareentwickler und Ihre Erfahrung wächst täglich. Entspannen Sie sich nicht. Es gibt noch viel zu tun, bevor man sich auf den Rudern ausruht. Was Sie tun müssen, ist – Technologien zu studieren, die Sie als mittlerer Entwickler benötigen. Was ist das? Die Welt verändert sich ständig. Ich werde dich mit Ratschlägen überhäufen und das Leben wird alles verändern. Suchen Sie im Internet nach Stellenangeboten und finden Sie heraus, was Sie für die Bewerbung benötigen. Lesen Sie unbedingt das Buch „Thinking in Java“ von Bruce Eckel. Ihr Ziel im ersten Jahr Ihrer Tätigkeit als Java Junior Developer ist es, die Stufe eines Java Middle Developers zu erreichen. Niemand sagt, dass das einfach wäre, aber für einen zielorientierten Menschen ist das möglich. Dadurch erhöht sich Ihr Gehalt im Handumdrehen um bis zu 40 % des „5-Jahres-Maximums“ (50.000 $ für SF und London, 6.000 $ für Bangalore).Zweijähriges Programmieren (Java Middle Developer, Level 1)
Sie haben letztes Jahr gute Arbeit geleistet und sind jetzt ein Java Middle Developer. Mit einem Verdienst von 50 % des Gehalts eines Senior Java Developers kann man ganz gut leben. Bei der Arbeit werden Ihnen ernsthafte Aufgaben übertragen und Ihre Erfahrung wächst erheblich. In zwei bis drei Jahren erreichen Sie die Stufe eines Java Senior Developer. Kein Grund zur Eile. Große Gehaltserhöhungen werden Sie sowieso nicht bekommen. Was Sie tun müssen, ist Designmuster zu lernen, lesen Sie – McConnells Code Complete. Perfektionieren Sie die Qualität Ihres Codes und Ihrer Teamfähigkeiten. Erstellen Sie die Regel, jeden Monat 1 Buch über Computerprogrammierung zu lesen. Dann sind Sie in 4 Jahren 50 Bücher schlauer als alle anderen. Schieben Sie es nicht auf: Sie werden nicht mehr Freizeit haben, außerdem werden Sie höchstwahrscheinlich eine Familie gründen, oder wenn Sie eine haben, wird sie größer. Dein Zielbesteht darin, einige Technologien auszuwählen, auf die Sie sich als Senior Java Developer spezialisieren möchten. Sie können sie nicht alle lernen, wissen Sie. Und es ist immer eine gute Entscheidung, Guru in einer bestimmten Spezialisierung zu werden.
3-jähriges Programmieren (Java Middle Developer, Level 2)
Sie sind jetzt ein erfahrener Middle Developer und denken darüber nach, Senior Developer zu werden. Es ist sowohl angenehm als auch prestigeträchtig. Ihr Gehalt übersteigt 60 % des „5-Jahres-Höchstgehalts“ (10.000 $ in Bangalore, 25.000 $ in Kiew, 40.000 $ in Berlin, 80.000 $ in New York). Von diesem Moment an steigt die Nachfrage nach Fachleuten wie Ihnen. Sie werden immer in ein paar Tagen einen Job finden und kaum jemals weniger verdienen als jetzt. Das natürlich, wenn Sie nichts Dummes tun. Was Sie tun müssen, istStudieren Sie weiterhin die von Ihnen gewählten Technologien. Arbeite besser. Nicht für Ihren Arbeitgeber, sondern für Ihr eigenes Wohl. Bewerben Sie sich für die Teilnahme an Projekten mit vielversprechenden Technologien (wie BigData, derzeit wird dieser Artikel geschrieben). Sie werden sowieso 8 Stunden am Tag im Büro verbringen, warum also nicht etwas mehr Geld dafür bekommen und, was noch wichtiger ist, die wertvollste Erfahrung, die Sie in Zukunft brauchen werden? Ihr Ziel ist es, einen neuen Job zu finden. Ein gutes Team findet sich immer. Sie werden mit neuen Projekten und Technologien konfrontiert. Sie müssen nicht an Ihrem Stuhl festhalten. Wenn Sie noch in einem Unternehmen der dritten Ebene arbeiten, denken Sie darüber nach, in einem Unternehmen der vierten Ebene zu arbeiten.Programmieren im 5. Jahr (Java Senior Developer, Level 1
Sie sind jetzt Senior Developer. Vielleicht hast du es nicht verdient und du fühlst es. Trotzdem meine Glückwünsche. Es spielt keine Rolle, ob Sie Ihrer Position jetzt würdig sind, sondern nur, dass Sie dieser Position in Zukunft würdig werden. Ich denke, Sie stimmen mir zu, dass es besser ist, einen guten Job zu bekommen und dann das erforderliche Niveau zu erreichen, als umgekehrt. Ich hoffe, Sie haben meinen Rat, ein Buch pro Monat zu lesen, nicht vergessen? Jeder Student wird Sie jetzt um Ihr Wissen und Ihre Fähigkeiten beneiden. Genauer gesagt wird er für sie beten. Stellen Sie sich vor: Sie haben ein beachtliches Einkommen, fast 90 % des „5-Jahres-Höchstgehalts“. Du bist wahrscheinlich noch jung. Die Welt liegt dir zu Füßen. Was Sie tun müssen, istum die von Ihnen gewählten Technologien neu zu bewerten. Möglicherweise müssen Sie die Spezialisierung ändern. Die Welt hat sich verändert, Technologien haben sich verändert und Sie haben in den letzten zwei Jahren einiges an Wissen gewonnen. Was Sie jetzt wählen, wird für Sie in den nächsten Jahren zur Schlagzeile werden. Es ist Zeit, Ihre Lieblingstechnologien auszuwählen. Ihr Ziel ist es , Ihre Wachstumsrichtung zu wählen. Sie sind zahlreich, niemand kann sie alle aufzählen, aber Ihre Wahl muss jetzt getroffen werden. Wenn Sie heute eine kleine Veränderung vornehmen, werden Sie in Zukunft eine große Veränderung bewirken.Programmieren im 6. Jahr (Java Senior Developer, Level 2)
Sie haben sich für Ihre Zukunft entschieden und arbeiten daran, Ihren Traum zu verwirklichen. Eine richtig gewählte Richtung und der Wunsch, voranzukommen – und das Ergebnis wird nicht lange auf sich warten lassen. Glückwunsch. Ich freue mich, dass noch jemand seinen Traum verwirklicht hat. Es gibt eine tiefe Wahrheit. Menschen überschätzen oft, was sie in einem Jahr erreichen können, und unterschätzen, was sie in fünf Jahren erreichen können. Schauen Sie fünf Jahre zurück. Es ist so. Was Sie tun müssen, ist, unkluge Entscheidungen zu vermeiden und nicht faul zu sein. Ihr Ziel ist es, die Richtung zu wählen und voranzukommen. Oder dachten Sie, dass es hier endet? Erinnern Sie sich an Ihren Abschluss. Es ist nicht das Ende, es ist erst der Anfang.Ihre zukünftige Spezialisierung

Karriere als Java-Entwickler
Die Karriere eines Entwicklers unterscheidet sich von jeder anderen. Um gutes Geld zu verdienen, muss man kein Manager werden. Es kommt oft vor, dass ein Senior Developer mehr verdient als sein Manager-Chef. Je mehr Erfahrung Sie sammeln, desto stärker verändern sich Ihre Arbeitsbeziehungen mit Ihrem Chef von „Chef-Untergebenem“ zu „Star und Manager“.
Zweihundert Jahre alter Entwickler
Wenn Ihnen das Programmieren am meisten Spaß macht, dann ist dies Ihr Weg: Senior Developer, dann Tech Lead Developer und Architekt. Auf diese Weise können Sie 50 Jahre und länger als Entwickler arbeiten. In den meisten Fällen übersteigen die Gehälter von Senior Developers und Tech Lead Developers die ihrer Manager. Also kommen Sie auf Ihre Kosten.Manager. Du hast Glück, dass du nicht wie die anderen bist
Du bist zum Feind übergegangen. Nur ein Scherz. Wenn Sie große Organisationsfähigkeiten entdecken, sind Ihre Aufgaben: Teamleiter und dann Projektmanager. Es gibt Ihnen die Chance, Abteilungsleiter zu werden und Ihr eigenes Unternehmen zu eröffnen. Das ist es, was Sie wollen, nicht wahr?Zuhause ist dort, wo das Herz ist

Neapel sehen und nicht sterben.
Du hast noch keine Familie und liebst das Reisen . oDesk ist Ihr Alles. Finden Sie einen Kunden, vereinbaren Sie einen Stundensatz von 20 bis 50 US-Dollar, nehmen Sie einen Laptop mit und gehen Sie! Ihr Gehalt reicht aus, um überall auf der Welt zu leben. Warum beginnen Sie nicht gleich damit, Ihre Träume wahr werden zu lassen?Ich will nicht programmieren, ich bin ein Mädchen.
Wenn Sie ein Mädchen sind , müssen Sie möglicherweise Mutterschaftsurlaub nehmen . Es klingt wie ein sexistischer Witz, und das ist es auch. Dennoch steckt viel gesunder Menschenverstand darin. Wenn Sie einen Mutterschaftsurlaub nehmen, können Sie höchstwahrscheinlich viel Geld für den Mutterschaftsurlaub erhalten (in Ländern mit hohem Sozialschutz). Es gibt Unternehmen, die nichts zahlen, und es gibt solche, die gut bezahlen. Eine meiner Studentinnen bekam während des Mutterschaftsurlaubs ein Drittel ihres Jahresgehalts. Und das geschah im Frühjahr 2009, während der Entlassungen. Und in anderthalb Jahren kommen Sie vielleicht zurück und sind mindestens mittlerer Entwickler.Level 6

1 Elly. Objektsichtbarkeit. Null
- Hey, Amigo! - Hallo, Elly! Erzählst du mir heute etwas Interessantes? - Heute erzähle ich Ihnen etwas über die Lebensdauer eines Objekts . Nachdem ein Objekt erstellt wurde, existiert es (lebt), bis mindestens eine Variable seine Adresse speichert (es gibt mindestens eine Objektreferenz). Wenn keine Referenzen mehr vorhanden sind, stirbt das Objekt. Beispiele:
2 Professor, Müllabfuhr

3 Elly, fertig
- Hallo wieder! Jetzt gebe ich Ihnen eine kurze Einführung in die Methode finalize() . Diese Methode wird von der Java Virtual Machine für das Objekt aufgerufen, bevor das Objekt zerstört wird. Tatsächlich ist diese Methode das Gegenteil des Konstruktors. Bei dieser Methode ist es möglich, die von einem Objekt verwendeten Ressourcen freizugeben. - Die Klasse Object hat diese Methode, daher hat jede Klasse sie ( alle Klassen in Java gelten als von der Klasse Object geerbt und enthalten eine Kopie ihrer Methoden ). Wenn Sie in Ihre Klasse die Methode finalize() schreiben, wird diese aufgerufen, bevor Objekte dieser Klasse zerstört werden. Beispiel:
4 Elly, Objektlebensdauer
- Ich möchte Ihnen auch ein paar interessante Dinge über die Objektlebensdauer erzählen. In Java ist es sehr schwierig, das Objekt versehentlich zu verlieren; Wenn Sie über eine Objektreferenz verfügen, bedeutet dies, dass das Objekt mit Sicherheit lebendig ist. - Innerhalb einer Objektreferenz wird eine Nummer – Adresse dieses Objekts im Speicher gespeichert. Sie können diese Zahl nicht ändern, erhöhen oder verringern. Sie können keine Referenz erstellen, wenn Sie nur eine Adresse im Speicher haben. Sie können nur ein neues Objekt erstellen und dessen Referenz einer Variablen zuweisen. Nur so erhalten Sie eine neue Referenz. - Ich verstehe. Das heißt, wenn ich alle Objektreferenzen auf Null setze (lösche), erhalte ich dann nie die Objektreferenz und kann darauf nicht zugreifen? - Ja. Doch oft ist das Gegenteil der Fall – es sind zu viele lebende Objekte ungenutzt.Die meisten Programme erstellen Dutzende von Objekten und speichern sie zur Laufzeit in verschiedenen Listen, bereinigen diese Listen jedoch nie. - Meistens kennzeichnen Programmierer unerwünschte Objekte als „gelöscht“, das ist alles. Niemand kümmert sich darum, dass sie von den Listen gestrichen werden. Daher neigen große Java-Programme dazu, sich aufzublähen – immer mehr ungenutzte Objekte bleiben im Speicher lebendig. - Das ist alles. Ich werde Sie in Zukunft stets auf ungenutzte Gegenstände und deren ordnungsgemäße Entsorgung aufmerksam machen. - Okay, danke. Sie haben ein paar Dinge zu den Referenzen geklärt.5 Diego, Aufgaben zur Objektlebensdauer
- Hey, Amigo! Hier sind ein paar Aufgaben für Sie:Aufgaben | |
---|---|
1 | 1. finalize()-Methode der Cat-Klasse Schreiben Sie eine Methode protected void finalize() throws Throwable in der Klasse Cat |
3 | 2. Klassen Cat und Dog und finalize()-Methode für jede Klasse. Schreiben Sie in jede Cat- und Dog-Klasse eine finalize()- Methode, die auf dem Bildschirm eine Meldung anzeigt, dass das Objekt zerstört wurde. |
3 | 3. 50.000 Objekte der Cat-Klasse und 50.000 Objekte der Dog-Klasse. Erstellen Sie in einer Schleife 50.000 Objekte der Cat-Klasse und 50.000 Objekte der Dog-Klasse. (Die virtuelle Java-Maschine zerstört nicht verwendete Objekte, daher wird die Methode finalize() mindestens einmal aufgerufen.) |
4 | 4. Cat-Zähler Erhöhen Sie im Cat-Klassenkonstruktor [public Cat()] den Cat-Zähler (statische Variable catCount derselben Klasse) um 1. Verringern Sie ihn in der Methode finalize() um 1. |
6 Elly, Statische Klassen und Methoden
- Hier ist ein neues interessantes Thema. Ich möchte Ihnen etwas über die statischen Variablen und Methoden erzählen. - Oh, ich habe schon von statischen Variablen gehört. Ich denke auch über statische Methoden. Aber ich hätte gerne mehr Details. - Bei der Deklaration von Variablen in einer Klasse geben wir an, ob diese Variablen in einer einzigen gemeinsam genutzten Instanz erstellt werden oder ob es notwendig ist, für jedes Objekt ihre Kopien zu erstellen. Standardmäßig wird für jedes Objekt dieser Klasse eine neue Kopie der Klassenvariablen erstellt. So sieht es aus:



7 Risha, Statische Klassen und Methoden
- Neben statischen Methoden gibt es auch statische Klassen . Wir werden diesen Fall später betrachten, ich zeige Ihnen nur ein Beispiel dafür:
8 Diego, Aufgaben zur statischen Methode
- Hey, Amigo! Hier sind einige interessante Aufgaben zu statischen Methoden:Aufgaben | |
1 | 1. Klasse Cat und statische Variable catCount Schreiben Sie eine statische Variable int catCount in die Klasse Cat. Erstellen Sie einen Konstruktor [ public Cat() ], in dem die angegebene Variable um 1 erhöht werden soll. |
2 | 2. Statische Methoden: int getCatCount() und setCatCount(int) Fügen Sie der Klasse Cat zwei statische Methoden hinzu: int getCatCount( ) und setCatCount(int) , mit denen Sie die Anzahl der Katzen (die Variable catCount) abrufen/ändern können. |
3 | 3. Klasse Util Implementieren Sie eine statische Methode double getDistance(x1, y1, x2, y2) . Es sollte den Abstand zwischen Punkten berechnen. Verwenden Sie die Methode double Math.sqrt(double a), um die Quadratwurzel des übergebenen Parameters zu berechnen |
4 | 4. Klasse ConsoleReader Schreiben Sie eine Klasse ConsoleReader, die über 4 statische Methoden verfügt: – String readString() zum Lesen von Zeichenfolgen von der Tastatur – int readInt() zum Lesen von Zahlen von der Tastatur – double readDouble() zum Lesen von Bruchzahlen von der Tastatur – void readLn () um auf das Drücken der Eingabetaste zu warten [readString() verwenden] |
5 | 5. Klasse StringHelper Schreiben Sie eine Klasse StringHelper, die über zwei statische Methoden verfügt: - String multiply(String s, int count) sollte die wiederholten Zählzeiten des Strings zurückgeben. - String multiply(String s) sollte den String s fünfmal wiederholen zurückgeben. Beispiel: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 Professor, objektstatischer Umfang und Lebensdauer

10. Juli
- Hey, Amigo! Du hast heute großartige Arbeit geleistet. Deshalb kann ich dir einfach nicht mehr geben. Komm, setz dich, die Show beginnt:11 Kapitän Eichhörnchen
- Hallo, Soldat! - Guten Morgen mein Herr! - Ich habe tolle Neuigkeiten für Sie. Hier ist ein kurzer Check, um Ihre Fähigkeiten zu stärken. Machen Sie es jeden Tag und Sie werden Ihre Fähigkeiten schnell verbessern. Aufgaben sind speziell für die Ausführung in Intellij IDEA konzipiert.Zusätzliche Aufgaben in Intellij Idea | |
---|---|
1 | Klasse Cat und statische Variable catCount Schreiben Sie eine statische Variable public int catCount in der Klasse Cat. Erstellen Sie einen Konstruktor [public Cat()]. Lassen Sie die statische Variable catCount jedes Mal um 1 steigen, wenn Sie eine Katze (ein neues Objekt Cat) erstellen. Erstellen Sie 10 Objekte Cat und zeigen Sie den Wert der Variablen catCount an . |
2 | 2. Statische Katzen
Um eine cats- Variable zu erstellen, verwenden Sie die Codezeile: public static ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. Verschieben Sie einen statischen Modifikator. Verschieben Sie einen statischen Modifikator, damit der Code kompiliert wird. |
4 | 4. Mindestanzahl statischer Schlüsselwörter Fügen Sie die Mindestanzahl statischer Schlüsselwörter hinzu, damit der Code kompiliert und das Programm erfolgreich abgeschlossen werden kann. |
5 | 5. Irgendwelche neuen Ideen? Denken wir nach...
|
6 | 6. KissMyShinyMetalAss Schreiben Sie eine Klasse mit dem Namen KissMyShinyMetalAss. Erstellen Sie ein Objekt dieser Klasse und zeigen Sie es dann auf dem Bildschirm an. |
7 | 7. Name der drei statischen Variablen Schreiben Sie drei öffentliche statische Variablen: String Solution.name , String Cat.name , String Dog.name |
GO TO FULL VERSION