Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Es macht aber auch keinen Sinn sehr alte oder unpopuläre Sprachen zu lernen.
Wer beherrscht schon mehr als 3 Sprachen
Ich habe mich selber bereits mit Java, Python, C++ und JavaScript beschäftigt.
Im Moment und dass seit 2 Jahren lerne ich Mathe, Calculus 1-3 habe ich schon gelernt.
Aktuell lerne ich Differential Equations, danach lerne ich noch Probability and Statistics und
dann wieder Python.
Am meisten gefragt ist sicherlich JavaScript/Typescript und Python.
Ehrlich gesagt zweifle ich ab einem gewissen Punkt daran, ob es überhaupt sinnvoll ist, aktiv Sprachen zu lernen, um diese zu lernen. Ab und zu kommt eben mal ein Projekt mit einer neuen Sprache und Technologie, dann muss man eben etwas Learning by Doing betreiben.
Das kann auch mal eine sehr alte Sprache sein.
Bei uns bauchte es alleine C. C++, Matlab, R, Python, X86 / ARM Assembler, Java und Typescript um durch die Uni zu kommen.
Mit HTML und CSS hat eigentlich jeder mal Kontakt.
In einem der Projekte in denen ich gerade bin portieren wir u.a ein Tool von Fortran nach Haskell.
Mit Cobol hat man je nach Branche verdammt schnell Kontakt.
1-2 SQL Dialekte passieren sehr schnell.
Je nach Karrierepfad kommen auf jeden Fall Bash oder Poweshell dazu.
Swift und Kotlin sind sinnvoll, wenn man mit Mobile Apps in Kontakt kommt.
YAML, JSON, XML sind auch basics die man früher oder später einfach anfasst
Die grundlegenden Sprachstrukturen lernst du irgendwann an einem Nachittag on the fly.
Details und Kinks nerven mindestens 2-3 monate (und genau so schnell vergesse ich sie gern auch wieder)
Was wirklich Zeit frisst, ist jedes mal zu schauen welche Frameworks verwendet wurden und zu entscheiden ob man sie weiter nutzt oder erst mal refactored.
Beherrschen sei mal dahin gestellt. Man bekommt anforderungen und muss sie auf dem faulsten Weg umsetzen.
Und eine neue Sprache zu nutzen ist viel einfacher, wenn man in bestehendem Code unterwegs ist.
Ich patche in letzter zeit dauernd PHP und Perl Kram würde aber nie im Leben auf die Idee kommen zu behaupten, dass ich eine der Sprachen kann.
Ich würde ja knallhart behaupten, wer den Titel "Roadmap für ALLE Programmiersprachen" für den Thread vergibt, der hat die verlinkte Seite nicht verstanden.
Unter einer Roadmap für eine Programmiersprache verstehe ich eine Übersicht, welche Entwicklung eine Sprache über die nächsten Jahre erfahren wird.
Ich habe einfach mal ChatGPT gefragt, was er darunter versteht:
Was ist eine Roadmap für eine Programmiersprache?
ChatGPT:
Eine Roadmap für eine Programmiersprache ist ein strategischer Plan oder eine Übersicht, die die zukünftige Entwicklung und die geplanten Features, Verbesserungen oder Änderungen einer Programmiersprache beschreibt. Sie dient als Orientierung für Entwickler, die die Sprache nutzen, und für die Community, die zur Weiterentwicklung beiträgt.
Inhalte einer Roadmap
Geplante Features:
Neue Sprachfeatures (z. B. Syntaxänderungen, neue Keywords).
Verbesserungen der Standardbibliothek.
Verbesserungen der Leistung:
Optimierungen des Compilers oder Interpreters.
Bessere Speicherverwaltung oder schnellere Laufzeiten.
Interoperabilität:
Unterstützung neuer Plattformen oder Systeme (z. B. WebAssembly, mobile Geräte).
Verbesserte Integration mit anderen Programmiersprachen oder Frameworks.
Werkzeuge und Ökosystem:
Updates für Entwicklungswerkzeuge wie IDEs, Debugger oder Paketmanager.
Verbesserungen bei der Dokumentation und Community-Support.
Versionen und Zeitplan:
Geplante Veröffentlichungsdaten für neue Versionen.
Langfristige Ziele und Visionen.
Zielgruppen
Entwickler: Um zu wissen, welche neuen Features sie erwarten können und wie sie sich vorbereiten sollten.
Community: Um zu koordinieren, wie Beiträge und Feedback in die Weiterentwicklung einfließen können.
Unternehmen: Um die langfristige Stabilität und Kompatibilität der Sprache einzuschätzen.
Beispiele
Python: Die Python-Community veröffentlicht regelmäßig PEPs (Python Enhancement Proposals), die die Roadmap für neue Versionen darstellen.
JavaScript: Die TC39-Gruppe arbeitet an einer öffentlichen Roadmap, die beschreibt, welche Features dem ECMAScript-Standard hinzugefügt werden.
Rust: Rust hat jährliche Roadmaps, die von der Community abgestimmt werden und klare Ziele setzen.
Eine Roadmap fördert Transparenz und hilft allen Beteiligten, die Entwicklung der Programmiersprache aktiv zu verfolgen und mitzugestalten.
Die Seite versucht aber Roadmaps für Entwickler zu machen.
Auch dazu hat ChatGPT eine Meinung.
Was ist eine Roadmap für einen Entwickler?
ChatGPT:
Eine Roadmap für einen Entwickler ist ein strukturierter Leitfaden, der die notwendigen Schritte, Fähigkeiten und Technologien beschreibt, die ein Entwickler erlernen oder beherrschen sollte, um ein bestimmtes Ziel zu erreichen. Diese Roadmap dient als Orientierungshilfe, um den Lernprozess zu planen und sich in einem oft komplexen und schnelllebigen Bereich wie der Softwareentwicklung zurechtzufinden.
Inhalte einer Entwickler-Roadmap
Grundlagen:
Programmiersprachen: Auswahl der Kernsprachen, z. B. Python, JavaScript, Java.
Algorithmen und Datenstrukturen: Verständnis von grundlegenden Konzepten wie Arrays, Listen, Sortieralgorithmen, Rekursion.
Grundlagen der Informatik: Kenntnisse in Themen wie Betriebssysteme, Netzwerke und Datenbanken.
Spezialisierung:
Frontend-Entwicklung: HTML, CSS, JavaScript, Frameworks wie React, Angular oder Vue.js.
Backend-Entwicklung: Serverseitige Sprachen wie Node.js, Python (Django/Flask), Ruby oder Java (Spring).
Mobile Entwicklung: Plattformen wie Android (Kotlin, Java) oder iOS (Swift).
DevOps: Tools wie Docker, Kubernetes, CI/CD-Pipelines, Cloud-Technologien.
Tools und Technologien:
Versionierung: Git, GitHub, GitLab.
IDEs und Editoren: Visual Studio Code, IntelliJ IDEA, etc.
Debugging und Testing: Unit-Tests, Integrationstests, Tools wie Jest, Selenium, etc.
Soft Skills:
Teamarbeit, Kommunikation und Problemlösung.
Projektmanagement und agile Methoden (Scrum, Kanban).
Projekte und Praxis:
Entwicklung kleiner Projekte, um das Gelernte anzuwenden.
Beitrag zu Open-Source-Projekten oder Aufbau eines Portfolios.
Karriereziele:
Vorbereitung auf Bewerbungsgespräche (z. B. Coding-Challenges, Systemdesign).
Zertifizierungen (z. B. AWS, Azure, Google Cloud).
Beispiele für Entwickler-Roadmaps
Full-Stack-Entwickler:
Frontend-Technologien wie React oder Vue.js.
Backend-Technologien wie Node.js oder Django.
Datenbanken (SQL und NoSQL) und API-Entwicklung.
Machine-Learning-Entwickler:
Grundlagen in Python, Mathe (Linear Algebra, Statistik).
Bibliotheken wie TensorFlow, PyTorch, scikit-learn.
Praxisprojekte mit Datensätzen und Modell-Deployment.
DevOps-Engineer:
Linux-Kenntnisse, Shell-Scripting.
Containerisierung mit Docker, Orchestrierung mit Kubernetes.
Cloud-Plattformen wie AWS, Azure oder Google Cloud.
Vorteile einer Roadmap für Entwickler
Strukturierter Lernprozess: Hilft, Überforderung durch eine klare Reihenfolge zu vermeiden.
Klarheit über Ziele: Ermöglicht es, sich auf spezifische Fähigkeiten oder Technologien zu konzentrieren.
Motivation und Fortschritt: Das Erreichen von Meilensteinen gibt ein Gefühl der Erfüllung.
Anpassungsfähigkeit: Roadmaps können je nach Interesse und Marktanforderungen flexibel angepasst werden.
Eine Entwickler-Roadmap ist ein wertvolles Werkzeug, um systematisch Wissen und Fähigkeiten aufzubauen und sich langfristig in der Branche zu positionieren.
HerrDrachen schrieb:
Es macht aber auch keinen Sinn sehr alte oder unpopuläre Sprachen zu lernen.
C# ist schon extrem alt... oder zu unpopulär. Aber ASP .NET Core ist populär genug... makes sense. Ich sehe übrigens gar keine Liste von Programmiersprachen dort. Weil es auch keine Roadmap für Programmiersprachen ist.
Ich würde behaupten: Sehr viele Entwickler.
Im Gegensatz zu Sprachen, die wir zum Kommunizieren verwenden, sind die Konzepte verschiedener Programmiersprachen häufig sehr sehr ähnlich, mit Ausnahmen natürlich (wie Assembler). Aber die ganzen C-Sprachen sind eng verwandt und syntaktisch ähnlich, auch Java und einige andere sind da nicht so weit entfernt. Ja, gewisse Feinheiten unterscheiden sich, aber ob ich in C# nun für einen Lambda-Ausdruck => schreiben muss und in Java dann ->, das sind Details, die gar nicht von so großer Bedeutung sind. Ach ich vergaß, C# ist ja unpopulär. Und es ist gut, wenn eine Seite mit "allem" schon vorfiltert, was wichtig ist. Weil "alle" schon lange nicht mehr "alle" meint. Sorry, schrieb ich "alle"? Ich meinte natürlich "ALLE".
Ich bin der Meinung, Programmieren ist ein wenig wie Autofahren - etwas "extremer" natürlich und der Vergleich ist stark vereinfacht. Als ich das Autofahren gelernt habe, also wirklich die ersten Stunden am Steuer, da war ich froh, dass ich immer das gleiche Auto hatte (okay, nach der Prüfung gab es einen einmaligen Wechsel). Das hat sich dann immer gleich verhalten, selbst wenn es nichts mit "gewohntem Verhalten" zu tun hatte. Aber zumindest war immer alles dort, wo es auch das letzte Mal war, und die Kupplung verhielt sich auch immer gleich.
Und wenn man genug Fahrerfahrung hat, dann steigt man in ein unbekanntes Auto. Man schaut sich an, wie die Gangschaltung funktioniert, vielleicht der Scheibenwischer, das Licht, und fährt los. Man bekommt das Auto schon ans Ziel. Vielleicht erfordert die neue Fahrzeugbreite etwas Umgewöhnung, vielleicht der Wechsel von manuellem auf Automatik-Getriebe. Man fährt erst mal nicht unbedingt optimal. Aber auch dieses Auto wird einem mit der Zeit dann vertrauter und fährt es besser...
Ja, die Unterscheide von Programmiersprachen sind deutlich größer als die Unterschiede von Autos, das ist mir schon klar. Wie gesagt, das ist ein stark vereinfachter Vergleich.
HerrDrachen schrieb:
Ich habe mich selber bereits mit Java, Python, C++ und JavaScript beschäftigt.
Und drei Sprachen davon sind syntaktisch schon nahe beieinander. Sind übrigens schon vier.
HerrDrachen schrieb:
Im Moment und dass seit 2 Jahren lerne ich Mathe, Calculus 1-3 habe ich schon gelernt.
Aktuell lerne ich Differential Equations, danach lerne ich noch Probability and Statistics und
dann wieder Python.
Beherrschen ist ein großes Wort. Aber ich würde mal behaupten, das jeder der schon ein bissl länger programmiert, mit mehr als 3 Sprachen zu tun hatte,
Das ist ein typisches Verhalten. Meiner persönlichen Meinung aber schädlich und gibt den falschen Eindruck. Es geht nicht darum in möglichst vielen Sprachen "Hello World" zu programmieren. Eine Programmiersprache ist ein Werkzeug, um Aufgaben zu erledigen.
Deswegen würde ich einem Anfänger empfehlen, eine der üblichen Sprachen zu erlernen (C#, Javascript, Python, ...) und von da an mit dieser Probleme zu lösen. Kleine Dinge, die einem selbst die Arbeit am PC erleichtert. Damit ist man auch motiviert, da man das Ergebnis seiner Arbeit sieht.
Dabei ist dann so eine Lernübersicht, wie hier bereitgestellt, sehr nützlich um nach und nach seine Fähigkeiten in der einem Sprache und Framework aufzubauen. Erst allmählich, bedeutet Monate, versteht man dann auch, warum eine Sprache diese Konstruktionen wie Methoden, Parameter, Zugriffstypen, Klassen usw. hat und wie diese zusammenspielen.
Nein, das ist unsinnig.
Gerade Java ist eine ältere Programmiersprache, die sehr verbreitet ist, gerade weil sie gut durchdacht wurde.
Schaut man sich neueres C++ an, kann man nur noch 🤢
In Bezug auf Generics ist Java alles andere als gut durchdacht. Leider.
Die Stream-API, die es nicht zulässt, dass in Streams Checked-Exceptions geworfen werrden dürfen, ist alles andere als gut durchdacht. Leider.
Ich hab gesehen, dass es da eine Java Konferenz am nürburgring gibt
geht hin und regelt das in der Boxengasse, auf der Kartbahn oder in einer Podiumsdiskussion