Lern erst mal eine Sprache und verinnerliche sie! Später dann noch eine zweite (ähnliche) Sprache zu lernen, ist dann in wenigen Wochen möglich.
Analogie: "Ich will Dolmetscher werden! Mit welchen 2 Sprachen soll ich anfangen?". Am Ende wirst du keinen Job finden, wenn du nur gebrochen 2 Fremdsprachen sprichst.
Das Problem ist ja für gewöhnlich auch nicht die Sprache, sondern das Ökosystem. Einfach "nur" Java zu können, bringt dir im Job nichts bzw. nicht viel. Das JDK ist riesig und die wichtigsten Klassen, Funktionen und Möglichkeiten solltest du im Schlaf beherrschen. Und für gewöhnlich arbeitet man dann noch zusätzlich mit anderen Frameworks - also zusätzlich zum JDK (das vereinfacht gesagt im Prinzip auch nur ein Framework ist).
Dabei ist es prinzipiell erst mal egal, ob du dich für Java EE (heißt demnächst Jakarta EE) oder Spring entscheidest. Oder eines der kleineren Frameworks nimmst, wie z.B. Vaadin, Grails, Dropwizard, Play. Wichtig ist, dass du dich am Ende damit auskennst. Denn diese Erfahrung wird deine Jobauswahl stark beeinflussen.
Wenn eine Firma nur mit Spring entwickelt, dann will sie auch einen Spring Entwickler einstellen. Wenn du dann da ankommst und sagst "aber ist doch alles nur Java und außerdem beherrsche ich Play und Grails", wirst du direkt abgelehnt. Du sollst ja schließlich Geld erwirtschaften und nicht erst mal mehrere Monate damit verbringen, dich mit den Strukturen und Funktionen des Frameworks vertraut zu machen.
Dasselbe gilt für evtl. eingesetzte Datenbanken. SQL Basics zu beherrschen ist nie verkehrt und damit kann man auch schon relativ viel anfangen. Aber in den letzten paar Jahren sind so viele neue Datenbank Technologien auf den Markt gekommen, dass man selbst als SQL Profi nicht mehr für alles geeignet ist, was mit Datenbanken zu tun hat. Früher wurden relationale Datenbanken für alles verwendet. Heutzutage gibt's für jeden Anwendungsfall eine eigene spezialisierte Datenbank. Natürlich wird SQL und relationale Datenbanken immernoch großflächig eingesetzt, aber gerade in Startups und Cloud Umgebungen hat man immer öfter Document Databases, Wide Column Stores, Graph Databases, etc. pp. vor der Nase. Und da kommt man dann mit seinem "JOIN" und "BEGIN TRANSACTION" aus der SQL Welt nicht mehr weit.
Was ich damit sagen will: Die Welt der Software Entwicklung ist verdammt riesig. Und ohne Spezialisierung und gute Kenntnisse kommt man nicht weit.
Und nicht zu vergessen: Du solltest natürlich die wichtigsten Software Design Pattern kennen und anwenden können. Also sowas wie Singleton, Dependency Injection, Factory, etc. pp. Das sind etablierte Standards, um Standardprobleme zu lösen. Die gelten natürlich für (fast) jede Sprache. Darüber gibt's reichlich Infos im Netz, aber auch diverse Bücher (Martin Fowler ist bei solchen Themen eigentlich immer eine gute Anlaufstelle).
EDIT: Bzlg. "wo verdient man am Meisten". Das ist zum einen natürlich Verhandlungssache und zum anderen ist deine Position im Unternehmen und natürlich das Unternehmen selbst entscheidend. Ein Senior Frontend Entwickler wird sicherlich im Normalfall mehr verdienen als ein Junior Backend Entwickler.
Und deine Ansprüche sind natürlich auch wichtig. Ich geb mich z.B. lieber mit weniger Lohn zufrieden und habe dafür viele Freiheiten. Z.B. kann ich aktuell (wenn ich will) das ganze Jahr über Home Office machen (oder sonst irgendwo arbeiten) und kann meine Arbeitszeit nahezu komplett frei einteilen. Kommunikation geschieht fast ausschließlich über E-Mail. Telefonate müssen vorher vereinbart werden. D.h. ich kann unter der Woche mal 'nen Tag frei machen und dafür dann am Wochenende arbeiten. Oder am Abend, wenn ich tagsüber was besseres zu tun habe.
Analogie: "Ich will Dolmetscher werden! Mit welchen 2 Sprachen soll ich anfangen?". Am Ende wirst du keinen Job finden, wenn du nur gebrochen 2 Fremdsprachen sprichst.
Das Problem ist ja für gewöhnlich auch nicht die Sprache, sondern das Ökosystem. Einfach "nur" Java zu können, bringt dir im Job nichts bzw. nicht viel. Das JDK ist riesig und die wichtigsten Klassen, Funktionen und Möglichkeiten solltest du im Schlaf beherrschen. Und für gewöhnlich arbeitet man dann noch zusätzlich mit anderen Frameworks - also zusätzlich zum JDK (das vereinfacht gesagt im Prinzip auch nur ein Framework ist).
Dabei ist es prinzipiell erst mal egal, ob du dich für Java EE (heißt demnächst Jakarta EE) oder Spring entscheidest. Oder eines der kleineren Frameworks nimmst, wie z.B. Vaadin, Grails, Dropwizard, Play. Wichtig ist, dass du dich am Ende damit auskennst. Denn diese Erfahrung wird deine Jobauswahl stark beeinflussen.
Wenn eine Firma nur mit Spring entwickelt, dann will sie auch einen Spring Entwickler einstellen. Wenn du dann da ankommst und sagst "aber ist doch alles nur Java und außerdem beherrsche ich Play und Grails", wirst du direkt abgelehnt. Du sollst ja schließlich Geld erwirtschaften und nicht erst mal mehrere Monate damit verbringen, dich mit den Strukturen und Funktionen des Frameworks vertraut zu machen.
Dasselbe gilt für evtl. eingesetzte Datenbanken. SQL Basics zu beherrschen ist nie verkehrt und damit kann man auch schon relativ viel anfangen. Aber in den letzten paar Jahren sind so viele neue Datenbank Technologien auf den Markt gekommen, dass man selbst als SQL Profi nicht mehr für alles geeignet ist, was mit Datenbanken zu tun hat. Früher wurden relationale Datenbanken für alles verwendet. Heutzutage gibt's für jeden Anwendungsfall eine eigene spezialisierte Datenbank. Natürlich wird SQL und relationale Datenbanken immernoch großflächig eingesetzt, aber gerade in Startups und Cloud Umgebungen hat man immer öfter Document Databases, Wide Column Stores, Graph Databases, etc. pp. vor der Nase. Und da kommt man dann mit seinem "JOIN" und "BEGIN TRANSACTION" aus der SQL Welt nicht mehr weit.
Was ich damit sagen will: Die Welt der Software Entwicklung ist verdammt riesig. Und ohne Spezialisierung und gute Kenntnisse kommt man nicht weit.
Und nicht zu vergessen: Du solltest natürlich die wichtigsten Software Design Pattern kennen und anwenden können. Also sowas wie Singleton, Dependency Injection, Factory, etc. pp. Das sind etablierte Standards, um Standardprobleme zu lösen. Die gelten natürlich für (fast) jede Sprache. Darüber gibt's reichlich Infos im Netz, aber auch diverse Bücher (Martin Fowler ist bei solchen Themen eigentlich immer eine gute Anlaufstelle).
EDIT: Bzlg. "wo verdient man am Meisten". Das ist zum einen natürlich Verhandlungssache und zum anderen ist deine Position im Unternehmen und natürlich das Unternehmen selbst entscheidend. Ein Senior Frontend Entwickler wird sicherlich im Normalfall mehr verdienen als ein Junior Backend Entwickler.
Und deine Ansprüche sind natürlich auch wichtig. Ich geb mich z.B. lieber mit weniger Lohn zufrieden und habe dafür viele Freiheiten. Z.B. kann ich aktuell (wenn ich will) das ganze Jahr über Home Office machen (oder sonst irgendwo arbeiten) und kann meine Arbeitszeit nahezu komplett frei einteilen. Kommunikation geschieht fast ausschließlich über E-Mail. Telefonate müssen vorher vereinbart werden. D.h. ich kann unter der Woche mal 'nen Tag frei machen und dafür dann am Wochenende arbeiten. Oder am Abend, wenn ich tagsüber was besseres zu tun habe.
Zuletzt bearbeitet: