Ich hasse Java absolut. Werde ich als Softwareentwickler überleben?

Danke für die A2A.

Nach der Erklärung der Frage gehe ich davon aus, dass Sie ein Full-Stack-Entwickler von einem Front-End-Entwickler werden möchten, der Sie derzeit sind.

Es ist nicht erforderlich, Java als solches zu lernen, wenn Sie es nicht mögen. Es gibt Unmengen anderer Backend-Sprachen, die gelernt werden können. Die bekanntesten auf dem Markt sind derzeit C / C ++, Python, C #, Scala, Nodejs usw

Verschiedene Programmiersprachen haben unterschiedliche Paradigmen wie prozedural, funktional, objektorientiert usw. Jedes hat seine eigene Art, Dinge zu erledigen, seine eigene Syntax, Semantik und Anwendung. Beispielsweise wird Scala für Big-Data-Berechnungen bevorzugt, da es auf dem Funktionsparadigma basiert, das das Schreiben von Code für mapReduce () -Operationen erleichtert, die die Grundlagen von Hadoop bilden. Tatsächlich kann ein in Java für Hadoop geschriebener Code mit 40 Zeilen in 10 Zeilen in Scala (#TrueStory) geschrieben werden. Für den Job eines Big Data Engineers würden Sie also für Scala und nicht für Java interviewt. In ähnlicher Weise habe ich die meisten Softwareingenieure gesehen, die in der Aritifical Intelligence- und Robotics-Branche mit Python anstelle von Java gearbeitet haben. In erster Linie, weil die Anwendung eher Hardwaretreiberbibliotheken verwendet.

Java hat mehr Anwendung in der Webentwicklung und seit einigen Jahren hat es Anwendung in der OS- und App-Entwicklung in Form von Android (das in Java geschrieben ist) gefunden.

Python holt den größten Marktanteil bei den Jobanforderungen auf und hat jetzt einen signifikanten Marktanteil gewonnen (obwohl immer noch weniger als Java).

Ja, Sie werden in der Software-Branche ohne Java-Kenntnisse überleben.

Es ist sicherlich nicht unüberwindbar, aber ich denke nicht, dass es besonders gut auf Sie zutrifft.

Sie sagen also, Sie kommen mit Java-IDEs nicht klar. Nun, Dinge wie Eclipse haben ihre Vor- und Nachteile, aber sie sind seriöse, häufig verwendete Toolchains, die funktionieren und mit anderen Sprachangeboten wie Visual Studio gleichwertig oder oft besser sind als diese.

Ich bin also nicht davon überzeugt, dass es sich um ein Java-Problem handelt, sondern eher um IDEs im Allgemeinen. Es wirft die Frage auf, in was Sie Code schreiben – ein anderes Toolset oder nur eine Notizblock-Software? – was wiederum die Frage aufwirft, wie Sie sich verhalten. Ist das, was Sie tun, hacky oder ist es Engineering mit einem Prozess und Toolset dahinter?

Dann gibt es Java selbst, das weit mehr ist als das Toolset. Wir können uns den ganzen Tag darüber streiten – andere Sprachen sind eleganter (z. B. die Eigenschaften von C #), andere Sprachen sind leistungsfähiger (z. B. die Speicherverwaltung von C ++), andere Sprachen und Methoden sind weitaus moderner. Aber weißt du was, es ist wieder eine Schwergewichtssprache, die ernst genommen wird und extrem weit verbreitet ist.

Obwohl die Branche oft Wert auf eine spezifische Sprache und Erfahrung mit dem Framework legt, schätze ich den anpassungsfähigen Generalisten wirklich. Jemand, der die ersten Prinzipien guter Technik aufgreifen kann, der gute Verhaltensweisen und Einflüsse aus der Erfahrung, in einer beliebigen Sprache etwas zu tun, auf etwas Neues anwenden kann.

Schließlich geht es für mich beim Software-Engineering darum, das Schwierige und Neue zu lösen, wohin auch immer der Weg Sie führt, und das Alte nicht endlos zu wiederholen.

In diesem Sinne verstehe ich mich mit Evangelisten und religiösen Eiferern nicht wirklich. Wenn Sie auf einer bestimmten Sprachauswahl bestehen – nämlich “Ich hasse Java” oder eine der anderen Antworten paraphrasieren, “Ich muss die Kontrolle über das Gedächtnis haben” -, wenn Sie auf einer bestimmten Toolchain bestehen, wenn Sie dies nicht können Anpassung an etwas Neues, wir werden wahrscheinlich Probleme haben.

Stellen Sie sich das so vor: Wenn jemand Ihnen sagt: “Java ist Mist”, bedeutet dies, dass Millionen von Benutzern und erfahrenen Ingenieuren sich irren und nicht nur irren, sondern auch dumm sind und es besser wissen. Wie groß ist die Wahrscheinlichkeit, dass diese eine Person ein blinzelnder Idiot ist?

Also: Was können Sie persönlich tun? Ich schlage vor: nicht aufgeben. Anpassen.

Holen Sie sich mehr Erfahrung . Nachwuchsingenieure tendieren eher dazu, diese sehr starken Meinungen zu vertreten, aber letztendlich lässt sie mit der Zeit nach. Probieren Sie also absichtlich einige neue Dinge aus und “saugen Sie es” für eine Weile auf. Wenn Sie zwischen IDEs oder Sprachen wechseln, sind einige Dinge – die Unterschiede – nur ein Schmerz im Arsch. ‘Warum hat sich das geändert? Warum funktioniert das so, obwohl der andere Weg perfekt war? ‘ Und dann, wenn Sie zurückgehen , haben Sie plötzlich das gegenteilige Problem. “Das ist so altmodisch!” Komisch das.

Setzen Sie einen positiven Hut auf und klammern Sie ihn an Ihren Kopf. Was Sie tun, ist neu. Es wird schwer. Fortdauern. Fragen Sie sich bei jedem kurzfristigen Kampf mit Ihrer IDE, der nach endlosem Ringen aussieht, woher ich das am Ende habe. Sehen Sie sich an, wie die Überwachung und Verwaltung Ihres Projekts mit zunehmender Größe von entscheidender Bedeutung wird. Untersuchen Sie, was das Toolset und die Sprache gut können. Schauen Sie sich die übertragbaren Fähigkeiten an, die Sie erwerben. Verwenden Sie das Tool falsch und vermissen etwas, das es besser kann? Und so weiter.

Hör auf, ein Perfektionist zu sein . Manche Dinge werden niemals so funktionieren, wie Sie es möchten, manche Dinge werden niemals hübsch sein. Vergiss es. Die Sprache und das Toolset bestimmen weder Sie noch Ihre Fähigkeiten. Es ist nur ein Fahrzeug, mit dem Sie dorthin gelangen, wohin Sie fahren – und was für ein Fahrzeug, es ist ein Mietwagen. Sie polieren und wachsen den Mietwagen nicht.

Finde deinen glücklichen Platz . Was ich hier versucht habe, ist, dass Sie aufgeschlossener sind, denn das Tragen von absolut aufgeschlossenen Verordnungen kostet Sie Chancen, und diese Chancen hätten zu einer weitaus besseren Karriere geführt. Aber es ist in Ordnung, eine Präferenz zu haben. Es ist in Ordnung zu sagen: “Ich mache das lieber, das Frontend motiviert mich” oder “Mobile liefert mir sehr schnell greifbare Ergebnisse” oder “Ich mag die Art und Weise, wie Unternehmenssoftware-Frameworks Dinge tun” und versuche, dem Weg zu folgen das passt zu dir Stellen Sie einfach sicher, dass Sie dies von einer informierten Position aus tun, anstatt Angst und das Einzige, was Sie wissen.

Oder, wissen Sie, Burger umdrehen. Aber Sie können wahrscheinlich ein ausgezeichneter Softwareentwickler werden. Viel Glück!

Zum Glück ist für uns alle Entwickler die Programmierwelt nicht nur eine Sprache. Ich persönlich habe in den letzten 10 Jahren .Net als meine Hauptsprache (C # und VB.Net) verwendet. Es hängt alles vom Markt ab, wie die Hauptsprache (n) lauten wird (n) – einige Städte sind hauptsächlich Java, einige sind hauptsächlich .NET und einige sind eine Mischung.

Ein Vorteil ist, dass die Webentwicklung momentan ziemlich heiß ist – Unternehmen suchen danach. Sie sind auch auf der Suche nach Full Stack, aber viele sind nur mit einer guten Front-End-Person zufrieden. “Viele” von uns Back-End- / Middle-Tier-Programmierern. Solange Sie in der Front-End-Webentwicklung mithalten können, sollten Sie gut sein und können sogar die Middle- / Back-End-Programmierung vollständig vermeiden.

Als ich zwischen 1999 und 2000 zum ersten Mal auf Java gestoßen bin, war es mir ein Vergnügen, einfache Spiele in QBasic und C ++ zu erstellen, aber Java schien zunächst etwas umständlich zu sein.

Wenn ich ein Projekt in C ++ erstellen wollte, musste ich nur Turbo C ++ starten, neue Dateien erstellen und Code entsprechend schreiben, dann auf Ausführen klicken und loslegen.

QBasic war genauso einfach und verfügte über einen eingebauten Subroutinen-Manager, in dem Sie eine Datei hatten, aber jede Subroutine, die Sie erstellt hatten, auf einer eigenen Seite anzeigen konnten. Wieder würde ich einfach auf rennen klicken.

Ich warf damals einen Blick auf Java und lehnte es so gut wie ab, bis es mir erneut an der Uni präsentiert wurde, wo ich seine Macht voll ausschöpfen konnte.

Zuerst verwendeten wir BlueJ, das für Anfänger konzipiert wurde. Es war okay, aber als wir Eclipse kennen lernten, wurde uns alles klar.

Die Chancen stehen gut, dass es Ihnen gerade schwer fällt und Sie aufgegeben haben, aber ich würde sagen, dass es sich lohnt, durchzuhalten.

Also, Finsternis!

Mit Eclipse war es wie in alten Zeiten, in denen ich ein neues Projekt erstellen, eine Klasse über das Menü hinzufügen oder mit der rechten Maustaste auf den Paket-Explorer klicken und dann meinen Code schreiben und einfach auf Ausführen klicken konnte!

Es war kein kompliziertes Setup, keine größeren Konfigurationen und kein Wrestling mit Konfigurationsdateien erforderlich.

Netbeans sollte Ihnen eine ähnliche Erfahrung bieten.

Ich denke, es ist schwierig für Sie, dass Sie mit Skriptsprachen aufgewachsen sind, deren Grundlage darin besteht, dass Sie nur die Textdateien bereitstellen, die * irgendwie * ausgeführt werden, während Sie sich bei Java möglicherweise etwas bewusster sein müssen die Kompilierung von Java-Quelldateien zu Java-Klassendateien.

Bei Eclipse erfolgt die Kompilierung automatisch, während bei einigen IDEs ein Build-System wie Ant, Maven oder Gradle manuell erstellt oder verwendet werden muss.

Dies ist zu Beginn nicht unbedingt erforderlich.

Solltest du anfangen, Burgerflippen zu lernen?

Wenn Sie Programmierer werden wollen, müssen Sie sich daran gewöhnen, die erste Hürde zu überwinden. Sobald Sie sich mit Java oder einer festen Sprache auskennen, werden Sie es bald lieben, genau wie Sie es mit JavaScript geschafft haben.

Es wäre zu Ihrem eigenen Vorteil, wenn Sie lernen könnten, den schwierigen Prozess des Einrichtens zum ersten Mal zu lieben, denn nach dem Schmerz kommt die Belohnung.

Es gibt viele Leute in der IT, die in ihrer gesamten Karriere nie eine einzige Zeile Java-Code geschrieben haben.

Sie können also in Ordnung sein, ohne Java zu beherrschen (das bedeutet nicht, dass Sie zumindest ein gutes Verständnis der Java-Plattform und der Natur von JVMs haben sollten).

Aber : Ein “echter” Softwareentwickler denkt nicht an “Ich mag X und hasse Y”.

Ein guter Handwerker kennt einfach die verfügbaren Werkzeuge und wählt dasjenige aus, das den Anforderungen des aktuellen Projekts am besten entspricht.

Und darüber hinaus sind Sprachen für einen „echten“ Software-Ingenieur nicht wirklich wichtig. Was ich meine ist: Sie sollten alle wichtigen Konzepte kennen, die Programmiersprachen verwenden.

Das Aufnehmen einer neuen Sprache läuft also darauf hinaus, „zu sehen, wie das Konzept X in dieser Sprache ausgedrückt wird. Und es gibt kein Y, sondern ein Z, das ich noch nicht gesehen habe. “ So solltest du dich darin üben, Programmiersprachen zu sehen.

Kurz gesagt: Es gibt viele Jobs, die kein Java erfordern. Aber ich würde dir empfehlen, in deine Haltung zu schauen. Wenn Sie anfangen, X zu lernen, dann versuchen Sie es wirklich. Lass deine Gefühle nicht dazu kommen und reduziere deine Motivation

(zumindest theoretisch; da ich auch denke, dass Emotionen der wichtigste Aspekt in unserem Leben sind, der uns lebendig macht ; wenn Sie Java wirklich nicht mögen, zwingen Sie Sie nicht, dorthin zu gelangen. Vermeiden Sie einfach, es abzulehnen und damit Dinge nicht beherrschen “zur Gewohnheit werden)

Ich hasse Java!

Ob:

  • Assemblersprache ist eine Rasierklinge
  • Und C ist ein Bowiemesser
  • Und C ++ ist eine Tischkreissäge
  • Dann ist Java eine Sicherheitsschere .

Die Hauptmotivation für Java ist es, Programmierer daran zu hindern, schlechte Dinge zu tun. Die Hauptmotivation hinter C ++ ist es, den Programmierer dazu zu befähigen, spektakuläre Dinge zu tun.

Ich habe meine erste professionelle Programmierung Mitte der 80er Jahre und meine letzte professionelle Programmierung vor ein paar Stunden gemacht.

Wenn Sie nur sagten: “Ich hasse es, in X zu programmieren!”, Wäre es ein Problem, wenn Sie nicht erklären könnten, warum. Wenn Sie andererseits erklären, warum und Beispiele angeben, wäre das ein Plus. Wenn ich nicht anheuere für eine Java-Position und dann möchte ich nicht jemanden einstellen, der die Arbeit erledigt, die er hasst.

Das Hassen von Java macht Sie nicht zu einem schlechten Softwareentwickler, obwohl es Ihre Jobauswahl ein wenig einschränkt (ich hoffe, Sie mögen C #, Python und C ++!)

Ja, natürlich werden Sie als Softwareentwickler überleben. Java ist nicht die einzige Sprache im Geschäft, und es gibt viele erfolgreiche Unternehmen, die Java nicht verwenden. Ich habe mit Java seit Ende 2000 nichts Neues mehr gebaut und fasse es selten an.

Sie sind gut eingestellt, wenn Sie Datenstrukturen und Algorithmen verstehen. Wenn Sie andere Sprachen beherrschen und eine Leidenschaft für das Lernen haben, sind Sie ein guter Mitarbeiter. Lernen Sie C # und .NET Core. C # ist eine sehr gute Sprache, die mit .NET Core gerade erst in der Linux / Mac-Szene Einzug hält. Es ist meiner Meinung nach viel besser als Java und hat einige der Innovationen der Programmiersprachen und der objektorientierten Programmierung angeführt. Es gibt viele erfahrene .NET-Entwickler, die mit .NET Core auf Linux umsteigen werden.

Lerne Ruby, Go, Rust, Python und Erlang oder Elixir (oder beides). Lerne so viele Programmiersprachen wie möglich. Machen Sie einen guten Job, indem Sie mehr als ein Werkzeug in Ihrer Werkzeugkiste haben.

Die besten Mitarbeiter sind diejenigen, die eine Leidenschaft für das ständige Lernen haben. Konzentriere dich darauf. Arbeiten Sie weiter an Ihrem Handwerk, und Sie werden immer in der Lage sein, einen guten Job in dieser Branche zu finden.

Überleben? Möglicherweise. Sie könnten wahrscheinlich als Webentwickler eingestellt werden – die Bar dort ist ziemlich niedrig.

Als SDE erfolgreich sein? Wahrscheinlich nicht. Sie sagen: „Ich habe noch nie an IDE-Setups für Java vorbeigekommen und jetzt hasse ich es.“ Sie hassen Java, weil Sie nicht herausfinden können, wie Sie Eclipse installieren können? Es hört sich nicht so an, als hätten Sie jemals in Java programmiert . Wenn das wirklich der Fall ist, haben Sie nicht die Flexibilität, den Einfallsreichtum und die Neugierde, ein Software-Ingenieur zu sein.

A2A

Ja, Sie können als Software Engineer in einem Bereich Ihrer Wahl überleben. Es gibt viele Programmiersprachen wie R, Scala, C ++, SQL usw. Wenn Sie mit einer dieser Sprachen vertraut sind, müssen Sie sich keine Sorgen machen. In diesen Bereichen gibt es genügend Arbeitsplätze.

nodejs plus eckig kann eine großartige Sache sein.

Software-Ingenieur bedeutet nicht nur Java.

Finden Sie heraus, was Sie am meisten am Programmieren interessiert, und arbeiten Sie darauf hin. Abgesehen von geringfügigen Unterschieden sehen die meisten Sprachen ähnlich aus, wenn Sie sie wirklich kennen.

viel Glück.

Sie scheinen von JavaScript verkatert zu sein, fürchten Sie sich nicht. Ich mag entmutigend wirken, aber es ist nicht sehr schwierig. Ich bin von Mainframe zu Java gewechselt, beide sind Universen voneinander entfernt. Anfangs fand ich es schwierig, aber jetzt konnte ich nahtlos arbeiten.

Was Sie brauchen, ist Geduld. Alle Lernressourcen, die zum Erlernen von Java benötigt werden, sind im Internet leicht verfügbar.

Seien Sie geduldig, denken Sie ruhig und Sie können Java-Überstunden meistern.

Warum denkst du, wirst du Flip-Burger brauchen, wenn nicht Java? Java ist eine weit verbreitete Programmiersprache, aber sicherlich nicht die einzige Programmiersprache. Sich an JavaScript als Full-Stack-Programmiersprache zu halten, ist keine Sackgasse.

Lerne stattdessen Scala. Modern, viel weniger Arbeit, und es wird auf Ihrem Lebenslauf abheben.