Zum Inhalt springen

"Java vs C#: Welche Sprache eignet sich besser für Backend-Entwicklung?


Gast Janboehm

Empfohlene Beiträge

 

 

Hallo zusammen,

ich bin neu hier und habe ein großes Problem. Ich habe vor etwa einem Monat angefangen, Python zu lernen und es macht mir unglaublich viel Spaß. Ich möchte unbedingt Programmierer werden, aber ich kann mich nicht zwischen Java und C# entscheiden. Studieren ist für mich keine Option und eine Fachinformatiker-Ausbildung kommt ebenfalls nicht in Frage.

Ich möchte betonen das ich lieber Back End programmiere als Front end, das ist die Richtung wo ich mich spezialisieren möchte.

Der einzig für mich sinnvolle Weg ist eine Ausbildung beim WIFI. Dort gibt es die Möglichkeit, entweder die Ausbildung zum/zur geprüften Software Developer:in C# für Einsteiger: innen oder die Ausbildung zum/zur geprüften Software Developer:in Java zu absolvieren. Finanziell wäre das kein Problem, da die Kosten übernommen werden.

https://www.wifiwien.at/kurs/18172x-ausbildung-zum-geprueften-software-developer-c-fuer-einsteigerinnen

https://www.wifiwien.at/kurs/18171x-ausbildung-zum-geprueften-software-developer-java-fuer-einsteigerinnen

Ich bin mir unsicher, welche der beiden Ausbildungen die richtige Wahl für mich wäre. Welche der beiden Sprachen würdet ihr mir empfehlen und warum? Welche Vorteile und Nachteile haben sie im Vergleich zueinander für Backend Entwicklung?

Ich bin für jeden Rat und jede Hilfe dankbar.

Vielen Dank im Voraus!

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Als Softwareentwickler bietest du in erster Linie Lösungen für Probleme an. Diese Lösungsvorschläge sind sprachunabhängig. 
Firmen setzen auf eine Vielfalt an Sprachen. Du entscheidest dich hier nicht für eine Sprache, sondern für eine Gruppe von Firmen die auf eine bestimmte "Kernsprache/Framework" setzen. Du wirst praktisch nie auf eine Firma treffen, wo du diese Entscheidung treffen kannst. (zumindest nicht am Anfang deiner Karriere)

Egal ob Java oder C#/.NET, du kannst mit beiden Sprachen Backends bauen. Beide Kurse bieten dir einen Einstieg in die jeweilige Sprache/Umgebung. Du lernst in diesen Kursen nicht, wie man Backends baut.

vor 5 Stunden schrieb Janboehm:

Ich bin mir unsicher, welche der beiden Ausbildungen die richtige Wahl für mich wäre.

Hier gibt es kein Richtig oder Falsch. Beide Kurse bringen dich auf den Weg.

vor 5 Stunden schrieb Janboehm:

Ich bin für jeden Rat und jede Hilfe dankbar.

Such dir nach einem dieser Kurse nach "Junior Backend Entwickler xyz" Jobs. Du lernst am besten das Bauen von Backends, wenn du an ihnen mitarbeitest. In beiden Fällen wird sich das Lernen noch über Jahre ziehen.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

Wie schauts mit Bezahlung aus verdient man mit beiden Programmiersprachen ca. gleich viel oder gibt's da krasse Unterschiede. Konnte online nichts Valides finden. Die Stellenausschreibungen sind da auch echt wage. Also von 30.000 Euro im Jahr zu teilweise 50.000 Euro im Jahr ist alles dabei. Selbst wenn man nur nach Stellen sucht, die explizit für Junior Developer gedacht sein sollen.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 3 Minuten schrieb Janboehm:

Wie schauts mit Bezahlung aus verdient man mit beiden Programmiersprachen ca. gleich viel oder gibt's da krasse Unterschiede. Konnte online nichts Valides finden. Die Stellenausschreibungen sind da auch echt wage. Also von 30.000 Euro im Jahr zu teilweise 50.000 Euro im Jahr ist alles dabei. Selbst wenn man nur nach Stellen sucht, die explizit für Junior Developer gedacht sein sollen.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Absolute Zahlen zu vergleichen wird schwer.
Ein Hinweis, dass zwischen den Sprachen kaum ein Unterschiede besteht, ist hier zufinden:  https://www.gulp.de/blog/arbeitsmarkt/c-programmiersprache

 

Sind zwar brutto Zahlen für Freelancer, aber die Relationen zwischen den Sprchen werden stimmen.

Bearbeitet von hellerKopf
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Minuten schrieb Janboehm:

Wie schauts mit Bezahlung aus verdient man mit beiden Programmiersprachen ca. gleich viel oder gibt's da krasse Unterschiede.

Das ist nicht Sprachenabhängig, sondern Branchenabhängig. z.B. in der Finanzbranche bekommst du in der Regel ein höheres Gehalt, als in der Spielebranche. Ganz egal, ob C# oder Java.

Es ist eher mehr eine persönliche Präferenz, welche Sprache man bevorzugt. Ich hab früher mit Java entwickelt. Heute mit C#. C# hat moderne Ansätze. Auch wird C# sehr von F# beeinflusst, sodass sich C# zu einem Hybrid aus Objektorientierung und funktionaler Programmierung wird. Java ist da etwas schwerfällig.

Beide Sprachen sind aber für den Backend geeignet. Man könnte auch Python oder JavaScript (mit Node.js) nehmen. Man muss aber auch sagen, dass C# und Java von der Syntax und von den Konzepten her ähnlich sind. Wenn du mit C# anfängst, findet man sich in Java recht leicht zurecht. Andersrum genauso.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 8 Minuten schrieb Janboehm:

Wie schauts mit Bezahlung aus verdient man mit beiden Programmiersprachen ca. gleich viel oder gibt's da krasse Unterschiede.

Das hängt von vielen Faktoren ab. Teamfähigkeit, Ort, Unternehmensgröße, Branche, ... 
Mit der Zeit steigt eine "Problemlösungskompetenz" und du wirst "wertvoller", und dies braucht Zeit.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Alles klar danke für die Antworten. Hab als erste Programmiersprache mit Python angefangen aber leider gibt's auf der Webseite wo ich diese Vollausbildungen machen kann keine Vollausbildung für Python sonst hätt ich absolut das genommen. Auch weil mich das Thema IT Security sehr interessiert. Aber nachdem was ich alles gelesen und gehört habe denke ich das C# glaub am besten zu meinen Vorstellungen passen wird. Also vielleicht ist das ne echt blöde Frage aber unterscheiden sich die Gehälter von Deutschland und Österreich krass?

Und noch ne Frage wie findet ihr die Ausbildung halt die von C#? 

Kann man mit der Ausbildung einen guten Job bekommen?

Bearbeitet von Janboehm
Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielleicht ist der Job Markt anders in Österreich, aber ich halte von den Kursen nicht viel. Du lernst ein Werkzeug (eine Programmiersprache) aber nicht den Beruf und das Hintergrundwissen.

Ein Anwendungsentwickler der mir nichtmal erklären kann wie das Binärsystem funktioniert, was eine IP Adresse ist, wofür ein Active Directory da ist, etc. ist nicht ernstzunehmen.

Am Ende musst du es selbst wissen, aber mMn führt nichts an einer soliden Ausbildung/Studium vorbei. Ausnahmen und Naturtalente gibt es natürlich immer.

Link zu diesem Kommentar
Auf anderen Seiten teilen

 

Ach so, und das weißt du, woher ich habe eher an den Inhalt von der Ausbildung gedacht und weniger an die fachliche Kompetenz von einem Menschen, den ich überhaupt nicht kenne. Also ich gehe grundsätzlich immer davon aus, dass die Person, die das Ganze unterrichtet, weiß, was er tut.

 

vor 2 Minuten schrieb alex123321:

Der Trainer hat seit >30 Jahren seine kleine Butze und hat wahrscheinlich in seinem Leben noch nicht an einem Stück großer komplexer Software als Teil eines Teams gearbeitet. 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 2 Stunden schrieb Janboehm:

Ach so, und das weißt du, woher ich habe eher an den Inhalt von der Ausbildung gedacht und weniger an die fachliche Kompetenz von einem Menschen, den ich überhaupt nicht kenne. Also ich gehe grundsätzlich immer davon aus, dass die Person, die das Ganze unterrichtet, weiß, was er tut.

Gutgläubigkeit ist jedem gestattet - ob zielführend - Frage des eigenen Anspruchs.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Grundsätzlich nimmt sich beides nicht viel. Ähnliche Aufgabengebiete, ähnliche Syntax. Ich finde Java auch etwas schwerfälliger, C# gefällt mir da deutlich besser. Zudem finde ich C# auch technisch moderner, in Summe sind das alles aber Kleinigkeiten. Mehr Jobs findet man aber auf jeden Fall mit Java, aber eine wirklich falsche Wahl gibt es hier bei den Sprachen nicht.

Die Kurse erscheinen mir allerdings ein wenig dubios. Ist der Abschluss anerkannt? Wirkt nämlich auf den ersten Blick eher nicht so, aber ich kenne mich mit den Optionen in Österreich auch nicht so aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also eines kann ich sagen die Kurse sind legit das WIFI ist das größte Aus/Weiterbildungsinstitut in Österreich und absolut seriös. Ein guter Freund von mir macht gerade die Matura(Abi) beim WIFI nach und ja. 

Hier nochmal die Webseite vom WIFI:

https://www.wifi.at/start

vor 12 Minuten schrieb 0x00:

Die Kurse erscheinen mir allerdings ein wenig dubios. Ist der Abschluss anerkannt? Wirkt nämlich auf den ersten Blick eher nicht so, aber ich kenne mich mit den Optionen in Österreich auch nicht so aus.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Minuten schrieb Brapchu:

Und das für nur 6000€?

 

Also ich muss das nicht bezahlen wenn die Voraussetzungen passen wird der Kurs übernommen. Wie schon gesagt, wenn du die Prüfung schaffst, bekommst du das auch zertifiziert.  Ob das jetzt generell Schaffbar ist in 6 Monaten jemanden eine Programmiersprache beizubringen ist glaub eine sehr persönliche Frage, die jeder für sich beantworten muss.  

Sowas ist eigentlich gar nicht so unüblich. Echt viele Programmierer waren halt entweder in so einer Ausbildung oder in so einem Bootcamp. 

Also unmöglich ist es nicht. 

Bearbeitet von Janboehm
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Stunden schrieb Gast Janboehm:

Also unmöglich ist es nicht. 

Aber extrem unwahrscheinlich.

Um Anwendungen zu entwickeln, genügt es nicht, eine Programmiersprache zu lernen, was in sechs Monaten hinsichtlich der Basics durchaus realisierbar wäre. Hat man es erst mal geschafft und kann wirklich vom Beherrschen einer Programmiersprache (Syntax, Semantik, Grundlagen der Programmierung sowohl prozedural als auch objektorientiert) sprechen, dann ist man dem Ziel zwar näher gekommen, aber vom professionellen Entwickeln von Anwendungen noch weit entfernt. Das Denken in Algorithmen muss vorhanden sein. Man muss ein Problem mittels Handlungsvorschrift lösen. Viele wissen noch nicht einmal, wie sie überhaupt beginnen sollen. Wie konzeptioniert man solche Projekte? Welche Modelle gibt es und worin unterscheiden sie sich? Observer Pattern, Strategy Design Pattern. Wie sieht ein Entwurf aus? Was sind PAP, Nassi-Shneiderman-Diagram? Was ist die UML? Wie teste ich Komponenten und Anwendungen richtig? Wie funktioniert Versionierung? Software Engineering, Projektmanagement - in welche Abläufe muss ich mich einfinden? Kenntnisse im Umgang mit Bibliotheken und Frameworks sind Standard im Umgang mit einer Programmiersprache. Ich würde sowohl Front- als auch Backend-Entwickler komisch anschauen, wenn er das Thema XSS in seinen Anwendungen nicht berücksichtigt. Lernt man JavaScript, so beherrscht man nicht automatisch Front- und/oder Backend und kann mit Datenbanken umgehen (was Arbeitgeber in der Regel auch erwarten).

Es gibt noch diverse weitere Punkte, von denen ein Entwickler etwas verstehen sollte. Sicher, man kann in sechs Monaten die Grundlagen einer Programmiersprache verstehen und einen Schritt in Richtung Software Development bekommen, aber von einem Entwickler würde ich da noch lange nicht sprechen. Wer all das trotzdem in sechs Monaten hinbekommt, Hut ab. Das kann ich nicht. Dürfte dann aber wirklich eher die Ausnahme als die Regel sein.

Zum Thema Java vs C#

Wie so oft kann eine Meinung dazu nur subjektiv sein. Mit Java bin ich seit sechs Jahren vertraut, mit C# gerade einmal einen Monat, weil wir diese Sprache in der Umschulung haben. Was mir persönlich auffiel ist die angenehme Dokumentation z. B. zu .NET 7. Zum Vergleich mal hier eine Beschreibung der Klasse FileWriter in Java: Klick mich. Bestätigen kann ich, dass die Sprachen einander extrem ähneln. Teilweise habe ich gedacht, dass ich Java-Code in C# schreibe (bis ich versucht habe, mit super() den Konstruktor der Superklasse zu erreichen). Ebenso ungewohnt war, dass in C# Methoden mit einem Großbuchstaben beginnen, woran man sich aber schnell gewöhnt. Ich kann das, was ich in einer der beiden Sprachen schreiben möchte, ebenso in der anderen schreiben. Was nun mit schwerfälliger gemeint ist weiß ich nicht. In beiden Sprachen wird der Quellcode erst in einen Bytecode kompiliert, um anschließend von einem Interpreter zur Laufzeit vollständig übersetzt zu werden. Ich denke nicht, dass da große Geschwindigkeitsunterschiede entstehen. Ich hatte absolut keine Probleme, C# in kürzester Zeit zu erlernen, weil ich Java schon lange vorher konnte und ich denke, lieber TE, dir wird es im Nachhinein ebenso ergehen. Ich sehe bis hierhin also keinen Punkt, der für oder gegen eine der beiden Sprachen spricht. Viel wichtiger ist doch die Plattform und der Anwendungsfall. Java habe ich damals gelernt, weil ich mir die Möglichkeit zur plattformunabhängigen Desktop- und Mobile-Entwicklung offenhalten wollte und mir Write once, run anywhere zusagte. C# soll auch plattformunabhängig sein, aber mit der Sprache bin ich noch nicht so vertraut, um die meisten Möglichkeiten zu kennen. So oder so, die Sprache ist irrelevant. Beide Sprachen sind typstark, am Ende beherrscht man die Grundlagen der Programmierung und ist in der Lage, sich leicht in die andere Sprache einzuarbeiten. Ich hatte es damals deutlich schwieriger, weil ich mit JavaScript (typschwach) das Programmieren lernte und diese vor Jahren deutlich eingeschränkter auftrat.

Mein Rat, überleg dir, was du basteln willst und probiere aus. Dafür brauchst du kein teures Bootcamp. Gibt genug YouTube-Tutorials, in denen das kostenfrei erklärt wird. Und wenn du unbedingt Geld ausgeben willst, dann lern eben z. B. auf Udemy (die Zertifikate kannst zwar vergessen, aber du willst ja was lernen). So viele haben es auch ohne Bootcamp geschafft. Es gibt nur eine einzige Regel, um programmieren zu lernen und daran muss man sich halten: Man muss es tun. Learning by doing. Ich habe noch nie gehört, dass jemand durch bloßes Zusehen und/oder Lesen gelernt hat Anwendungen zu entwickeln.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 8 Stunden schrieb http:

Was nun mit schwerfälliger gemeint ist weiß ich nicht.

Was ich z.B. damit meine, ist, dass nur Referenztypen als generischer Datentyp erlaubt ist, was auch dafür sorgt, dass die Streams in Java nicht ganz so intuitiv sind, wie LINQ in C#. Es gibt dann plötzlich mehrere Arten von Streams.

Ich weiß nicht, ob es sich auch schon verbessert hat, aber das Deployment von Java-Anwendungen war damals auch immer recht problematisch, wenn man anfing, die Dateien zu bündeln, um daraus z.B. eine .exe-Datei zu machen. Aber vielleicht hat sich das ja auch schon verbessert. Meine Kenntnisse dazu sind auch schon über 10 Jahre alt.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da hier explizit nach der Backend-Entwicklung gefragt wurde: neben der Sprache sind auch die Frameworks wichtig. Hier ist Java mit JaveEE, Spring und Springboot definitiv sehr stark aufgestellt. Microsoft hat es mit ASP(.NET) zwar auch etwas parat, das kam mir aber immer weniger rund vor. Mit dem ASP.NET Core Framework und Razor Pages versucht es Microsoft erneut. Wobei ich nicht sagen kann, in wie fern letzteres in der Industrie tatsächlich angewendet wird.

Da der TE Spaß an Python hat: man kann auch Python fürs Backend nutzen (eigentlich so gut wie jede Sprache). Flask oder Django nur mal so in den Raum geworfen. Oft ist aber auch JavaScript/Typescript mit im Stack. Das ist als Backend-Entwickler auch einen Blick wert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 16 Stunden schrieb http:

Was nun mit schwerfälliger gemeint ist weiß ich nicht.

In Java benötigt man oft relativ viel Code, C# ist da minimalistischer, eleganter. Minimalistischer nicht im Sinne der Features, aber man kann oft das selbe mit weniger Code ausdrücken. Wenn man C# gewohnt ist und Java schreiben muss fühlt man sich doch hier und da limitiert.

vor 30 Minuten schrieb pr0gg3r:

 Microsoft hat es mit ASP(.NET) zwar auch etwas parat, das kam mir aber immer weniger rund vor.

Witzig, dass du das sagst, mein Empfinden war immer genau anders herum. So scheiden sich die Geister...

vor 30 Minuten schrieb pr0gg3r:

Mit dem ASP.NET Core Framework und Razor Pages versucht es Microsoft erneut. Wobei ich nicht sagen kann, in wie fern letzteres in der Industrie tatsächlich angewendet wird.

Zu Razor Pages kann ich kaum was sagen, aber ASP.NET empfand ich schon als sehr ausgereift. Dennoch muss man erwähnen, dass Java in der Industrie einfach deutlich verbreiteter ist.

JavaScript/TypeScript ist oft im Stack, das stimmt. Jedoch nimmt die Relevanz stark ab je weiter man sich vom Web Bereich entfernt. Schaden kann es jedoch nie.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...