Welche Programmiersprache würdet Ihr lernen?

Welche Programmiersprache würdet Ihr lernen?


  • Anzahl der Umfrageteilnehmer
    12

MezZo_Mix

Freizeitschrauber(in)
Moin,

Meine Frage an euch Profis hier. Wenn ihr erneut eine Sprache lernen könntet. Welche wäre das und warum? Ich möchte mich eventuell Beruflich umorientieren und würde gerne schon einmal vorsorglich mit einer Programmiersprache anfangen. Ich habe schon leichte Erfahrung in C und spiele aktuell mit Java rum. Bis jetzt liegt mir C deutlich besser, aber ist Java nicht die Zukunftssichere Sprache für gut bezahlte Jobs?
 
Kommt halt immer darauf an für was.
Zum Controller programmieren wäre vermutlich C am besten, für einfache Datenaufbereitung vielleich Python, Windows Applikationen mit C#, Spieleentwicklung mit C++.

, aber ist Java nicht die Zukunftssichere Sprache für gut bezahlte Jobs?
Meine Meinung: Die Zeit von Java ist abgelaufen. C# bietet da viel mehr.
 
Zuletzt bearbeitet:
Andere, weil man in Visual Basic auch noch nach 10 Jahren weiß, was man zusammenprogrammiert hat:

' -- Pfeile Rechte Rampe aus --
Function LightRRampOff()
For i = 3 To 4
L(i).State = 0
Next
End Function
 
Zuletzt bearbeitet:
Du kannst dir ja mal den Popularity of Programming Language Index anschauen.
Die aktuellen Zahlen:
RankLanguageShareTrend
1Python28.27%-2.0%
2Java18.03%+0.8%
3JavaScript8.86%+0.4%
4C#7.51%+0.6%
5C/C++7.32%+0.6%

Je nach Messmethode können die Zahlen und Reihenfolge abweichen, aber das sind die aktuell populärsten Sprachen. Was du davon lernen möchtest, ist davon abhängig was du machen möchtest und was dir liegt.

C/C++ wird z.B. für Microcontroller, in Betriebssystemen und High-Performance-Computing eingesetzt.
JavaScript verwendet man vor allem in der Webentwicklung.
Python ist sehr flexibel und wird für Webanwendungen, Datenanalyse, neuronale Netze/Artifical Intelligence und vieles andere eingesetzt. Startups nutzen gerne Python, weil der Einstieg einfach ist, die Sprache flexibel ist und gut skaliert.
C# und Java werden häufig in großen Unternehmen oder auch für Mobile-Apps verwendet. Eigentlich müsste man hier eher von ihren jeweiligen Runtime-Plattformen sprechen, .NET und die JVM. Das .NET-Framework kann z.B. auch mit Visual Basic benutzt werden. Gerade in älteren Projekten findet man dann gerne noch mal Reste von dieser alten Sprache. Ähnliches gilt für die JVM, dort lässt sich nicht nur Java-Code ausführen, sondern auch Kotlin, Groovy, Scala und andere. In beiden Fällen können die Sprachen miteinander interagieren.

In eigentlich jedem Fall gilt aber, dass man mit nur einer Sprache nicht weit kommen wird. Fast immer wird man auch mit ein oder zwei anderen Sprachen zurechtkommen müssen. Aber keine Sorge, wenn man einmal eine Programmiersprache gut beherrscht, fällt der Einstieg in eine andere meist nicht sonderlich schwer.

Wenn es dir nur um einen gut bezahlten Job geht, wäre COBOL das richtige. Entwickler für diese Sprache sind rar wie begehrt und daher gut bezahlt. Aber machen wir uns nichts vor, das ist nichts, was man wirklich lernen möchte. Ein Job sollte Spaß machen und nicht nur Geld bringen.

Ich würde also schauen, was dich interessiert und ggf. mal Dinge ausprobieren. Ich beherrsche übrigens alle fünf hier genannten Top-Sprachen zumindest zu einem gewissen Teil. Sofern du noch kein bestimmtes Anwendungsgebiet anstrebst, würde ich mit einer stark typisierten, objektorientierten Sprache anfangen. Diese Sprachen sind für den Anfang beherrschbarer und lehren dich grundlegende Konzepte. Das wären z.B. Java/Kotlin oder C#. Jede Sprache hat so ihre Vor- und Nachteile. In Java finde ich Objektorientierung und Vererbung am besten umgesetzt, C# hat dafür eine viel bessere Unterstützung für Asynchronität und ist etwas flexibler einsetzbar (Desktop, Webanwendung, Mobile, etc). Kotlin nimmt die Grundkonzepte von Java und kombiniert sie mit modernen Features wie z.B. die eben angesprochene Asynchronität.
 
Das wichtigste ist das Anfangen!
Python, C, C#, Java, Delphi, C++, Lisp, Haskell (und sicher andere, die ich nicht behersche) eignen sich alle dafür,
Von der Schwierigkeit her ungefähr in der Reihenfolge imo.

Am Anfang lernt man sowieso Konzepte, Algorithmen und Datenstrukturen, und die gibt es in jeder Sprache!
Später wählt man die Sprache dann je nach Anforderung des Projektes.

Nehm dir am Besten dazu ein Buch, und fang an!
 
Gut gezahlte Jobs haben nicht zwangsweise etwas mit der Sprache zu tun. Um sich als Programmierer zu bezeichnen muss man merehre Sprachen beherschen. Ob man viel Geld verdient ist von vielen Dingen abhängig und wie lange es gut Geld gibt.
 
Eine Sprache ist eh immer nur der Anfang.
Ich mache Hauptberuflich C weil ich mich um Mikrokontroller kümmere (das ist tatsächlich im Schnitt etwas besser bezahlt als die typische Applikationsentwicklung, setzt aber auch Elektronikverständnis voraus), aber wenn ich Mal schnell was Skripten will ohne mir Abhängigkeiten zu fangen sind Powershell/bash Skripte das Mittel der Wahl und wenn es Mal irgendwo ne kleine GUI braucht wird die mit C# zusammen geschustert.
Am Ende ist die Sprache auch nur ein Werkzeug, nicht die Lösung.
 
Ich kann nur etwas Basic. Und selbst da habe ich bei langen "Listings" irgendwann aufgehört.
Außerdem hatte ich mir mal PHP und C angeguckt. Da schnalle ich nichts von. Mit diesen Schleifen und Klammern.
Man muß schon "Logisch" richtig fit sein sonst bringt das nichts. :ugly:
 
Es kommt drauf an, was man will. Wenn man wirklich programmieren lernen will, dann C/C++. Warum? Nun, C/C++ nimmt einem nichts ab, da muss man sich um alles selbst kümmern. (Speicherallokation, ...) Was ist der Unterschied zwischen einem * und einem &, "call by value" und "call by reference", wann nehme ich was... Ich programmiere in meiner Freizeit Mikrocontroller und Linux-Treiber, beides ist C. Für Mikrocontroller könnte ich auch C++ nehmen, aber warum?

Java, nun ja.... Hat so schöne Sachen, wie der tolle GarbageCollector, wird (glaube ich) von jedem Entwickler gehasst.

Was aber viel wichtiger ist, das Programmieren an sich zu verstehen, was mache ich da überhaupt. Was sind Daten- und Kontrolstrukturen, Schleifen, Verzweigungen, Klassen, ... Wenn man das verstanden hat, ist die Sprache (grob gesagt) nur noch das Werkzeug.

Beruflich mache ich Java, etwas Groovy (Jenkins Deploymentautomatisierung), aber hauptsächlich SQL und PL/SQL (Oracle lässt grüßen). Privat wie gesagt, C/C+, G# (falls die Applikation eine GUI hat und ich eher faul bin) und einbisschen Python, hauptsächlich um irgendwelche Daten zu visualisieren.
 
Jeder der sich Mal den Assembler von einem modernen C/C++-Compiler angesehen hat, stellt ziemlich schnell fest dass der mehr schlaue Ideen einbringt als man selbst haben würde. Allein schon wie Compiler dividieren, eine "echte" Division sieht man da quasi nie.

Die letzte Verwendung die ich beruflich für Assembler hatte war der Anspruch instruktionsgenau die Laufzeit des Programmabschnittes zu kontrollieren (weil im Endeffekt durch Bit-Banging EMV-Relevante Frequenzen generiert wurden).
Was aber viel wichtiger ist, das Programmieren an sich zu verstehen, was mache ich da überhaupt. Was sind Daten- und Kontrolstrukturen, Schleifen, Verzweigungen, Klassen, ... Wenn man das verstanden hat, ist die Sprache (grob gesagt) nur noch das Werkzeug.
Und da hört es nicht auf. Die Architektur/Struktur ist das wo auch die sogenannten Profis gerne mal Bullshit generieren. Die alte Grundtugend der funktionalen Programmierung "eine Funktion tut eine Sache" hat auch in objektorientierten Sprachen ihre Gültigkeit nicht verloren und wird leider immer noch viel zu oft verletzt.
 
Zuletzt bearbeitet:
Ich kenne jemanden der sich auf MS Access spezialisiert hat. Und irgendwie Datenbanken für Firmen analysiert.
Der ist selbstständig und verdient damit sein Geld.
Aber jemand anderes meinte das wäre kein richtiges programmieren. Keine Ahnung.
 
Ich habe im Studium grundsätzlich Matlab gelernt - bin froh, dass die Studenten heute eher Python als Matlab beigebracht bekommen. Wie auch immer, um mich fortzubilden, habe ich mich bewusst für C/C++ entschieden. Warum? Weil es einem den grundlegenden Ablauf im Hintergrund erklärt, wie Daten fast maschinennah verarbeitet werden oder wie Zeiger funktionieren. Das hat es mir schließlich deutlich erleichtert, andere Sprachen schneller zu lernen und zu verstehen. Für mich war das eine gelungene Ausgangslage.
 
Jeder der sich Mal den Assembler von einem modernen C/C++-Compiler angesehen hat, stellt ziemlich schnell fest dass der mehr schlaue Ideen einbringt als man selbst haben würde. Allein schon wie Compiler dividieren, eine "echte" Division sieht man da quasi nie.
Divisionen werden doch meistens durch Bitschubserei ersetzt? Geht um die Welten schneller als echte Division. Ich glaube aber, dass MCUs mit FPU es wirklich dividieren, bin mir aber nicht ganz sicher.
Und da hört es nicht auf. Die Architektur/Struktur ist das wo auch die sogenannten Profis gerne mal Bullshit generieren. Die alte Grundtugend der funktionalen Programmierung "eine Funktion tut eine Sache" hat auch in objektorientierten Sprachen ihre Gültigkeit nicht verloren und wird leider immer noch viel zu oft verletzt.
Und die Funktion ist bitte auch deterministisch...
Ich kenne jemanden der sich auf MS Access spezialisiert hat. Und irgendwie Datenbanken für Firmen analysiert.
Der ist selbstständig und verdient damit sein Geld.
Aber jemand anderes meinte das wäre kein richtiges programmieren. Keine Ahnung.
Das ist seine Aufgabe. Geht um Datenhaltung, Optimierung, ... schielt so in Richtung Big Data, Data Lake, ...
Wenn man richtig gut ist, verdient man sich damit eine goldene Nase, aber nur dann.
Ich habe im Studium grundsätzlich Matlab gelernt - bin froh, dass die Studenten heute eher Python als Matlab beigebracht bekommen.
Es kommt drauf an, was machen will, würde ich sagen. Ich für mich würde Matlab dem Python vorziehen (Python ist echt nicht meins, auch wenn ich es immer mal wieder nutze...) Matlab Simulink ist schon ganz geil und verflucht mächtig.
Wie auch immer, um mich fortzubilden, habe ich mich bewusst für C/C++ entschieden. Warum? Weil es einem den grundlegenden Ablauf im Hintergrund erklärt, wie Daten fast maschinennah verarbeitet werden oder wie Zeiger funktionieren. Das hat es mir schließlich deutlich erleichtert, andere Sprachen schneller zu lernen und zu verstehen. Für mich war das eine gelungene Ausgangslage.
Ganz genau auch mein Gedanke.
 
Divisionen werden doch meistens durch Bitschubserei ersetzt? Geht um die Welten schneller als echte Division. Ich glaube aber, dass MCUs mit FPU es wirklich dividieren, bin mir aber nicht ganz sicher.
Jein, Multiplikation mit anschließendem Shift runter sind die Alternative der Wahl (bei Integer Logik und konstanten Faktoren )
Das Beispiel in dem Post sind x64 und PP, also nicht mal eine kleine MCU.
 
Je nachdem, was man halt machen will. Für kleine Controller mit begrenztem Speicher und Rechenleistung ist es schon sinnvoll seinen Speicher selbst aufzuräumen. Für große Projekte weiß ich es aber schon zu schätzen, dass Daten außerhalb ihres Scopes automatisch ihre Gültigkeit verlieren. Das hält dann auch den Code übersichtlich und kompakt.
 
Zurück