Welche Programmiersprache lernen?

Welche Sprache lernen?

  • Python

  • C

  • Was anderes


Die Ergebnisse sind erst nach der Abstimmung sichtbar.

Alex_N_F

Newbie
Registriert
März 2021
Beiträge
1
Hallo,

Ich bin zurzeit am Überlegen mit dem Programmieren zu beginnen.
Im Herbst komme ich auf eine neue Schule und hab von da an Informatik, wobei dabei der Schwerpunkt auf Programmieren liegt (Vermutlich Python).
Später möchte ich mal E-Technik studieren. Dort lernt man, wenn ich mich richtig informiert habe C.
Jetzt zu meiner Frage:
Was wäre für mich jetzt Sinnvoll zu lernen? Mit Python beginnen und dann in der Schule vorbereitet sein? Oder C, was ich später mehr brauchen werde. Oder ne andere Sprache um mehrgleisig zu fahren?
Ich kenne mich leider nicht so gut aus wie das mit den Sprachen so ist. Spezialisiert man sich mehr auf Eine bzw. einige Wenige? Oder gilt das Prinzip 'Je mehr man kann desto besser'?

Danke schonmal für die Hilfe.
LG Alex
 
Ich hab auch E-Technik studiert. An der Uni C und C# gehabt. Heute prgrammiere ich so gut wie nur in den IEC-61131 Sprachen. Ansonsten: Die Grundlagen sind bei fast allen sehr ähnlich und um in das "Mindset" zu kommen geht eigentlich jede.

download.png
 
  • Gefällt mir
Reaktionen: McMoneysack91, Aliosy, MindofRafi und 5 andere
Ich würde C lernen.
Wenn du danach Python lernst, sorgt das direkt für mehr Programmierverständnis als wenn du jetzt Python lernst und es nochmal durchkaust.
Nebenbei passt C gut zur Elektrotechnik, da C wohl das einfachste sein dürfte bei Interaktion mit Hardware. Ich gehe stark davon aus, dass C oder C++ Teil deines Studiums sein wird.

@Nilson Welchen Pfad nimmt der denn für Elektrotechnik? ;)

Alex_N_F schrieb:
Spezialisiert man sich mehr auf Eine bzw. einige Wenige? Oder gilt das Prinzip 'Je mehr man kann desto besser'?
Als Entwickler schadet es gewiss nicht mehrere Sprachen gut zu können (einerseits um flexibel zu sein andererseits um ne größere Palette an Konzepten & Techniken zu kennen) und vielseitige Kenntnis über viele Sprachen kann dir helfen das richtige Tool zu finden.
Es macht weniger Sinn sich auf eine zu versteifen, da es (sofern man jetzt nicht C++ wählt), bei der Sprache nicht allzu viel zu lernen gibt (eher dann über die Umgebung & Frameworks).
Es steht aber wohl in den Sternen, ob du dann wirklich Softwareentwickler wirst?
Dann hättest du ggf. wichtigeres zu tun als dich extensiv mit Programmierung zu beschäftigen, und kämst auch neben grundlegenen Programmierverständnis mit dem Aneignen der fachspezifischen Sprachen gut aus.
 
Zuletzt bearbeitet:
Viele fokussieren sich zu sehr auf die Wahl der Sprache. In der Informatik gehts jedoch darum, die Konzepte (Was ist eine Methode, Was ist Vererbung?, Was sind Klassen) zu verstehen. Wenn es ganz einfach sein soll für den Einstieg: Python. Wenn du mit Python etwas rumgespielt hast, dann Java.
 
  • Gefällt mir
Reaktionen: Schtefanz und pseudopseudonym
Eine vernünftige, anwenderfreundliche Sprache mit durchgängig nachvollziehbarer Struktur und Design, die sich auch sehr leicht debuggen lässt.
Kurzum: Kein Python.
Die spezielle Wahl ist dann abhängig davon, was du genau machen möchtest.
 
Da liegen drei Bereiche in der Frage.
Eins: Programmieren lernen umfasst die Konzepte (Algorithmen, Datenstrukturen).
Zwei: Eine Programmiersprache lernen ist das "wie" in einer Sprache. Vieles überträgt sich zwischen Sprachen.
Drei: Lernen ohne Anwendung ist nett, aber bringt nicht viel - nach der Anwendung/Motivation auswählen.

Wenn du z. B. mit Python für die Punkte 1 und 2 anfängst, hast du es meiner Meinung nach deutlich einfacher, als wenn du direkt zu C gehst, weil du dir um weniger Sachen Gedanken machen musst. Wenn du dann irgendwann C lernst, kannst du dich darauf konzentrieren, ohne gleich am Anfang sowohl die "weniger bequemen" Aspekte von C als auch das Programmieren an sich lernen zu müssen. Es gibt natürlich auch viele Leute, die polemisch gesprochen sagen würden, dass nur das Gegenteil was bringt und alles andere für Waschlappen ist, weil man nur mit "guter Grundlage" auf Python aufsteigen sollte...

Egal wie rum, wenn du erstmal eine Sprache erarbeitet hast wird es dir leichter fallen, eine andere zu lernen. Jedenfalls so lange du normale Sachen wählst und nicht gerade so Unfug wie Whitespace oder Brainfuck. :D

Edit: An dem Debugging ist was dran. Python ist in der Hinsicht gerne sehr anti-hilfreich.
 
Also ich habe auch E-Technik studiert.
Im Studium gab es C++ und VB. Unterschied ist nicht gravierend, da beide auf das Net Framework aufbauen.
Auf der Arbeit nutze ich größtenteils VB, weil es halt für den speziellen Fall gefordert wird.

Privat nutze ich gerne Python weil es halt ne Skriptsprache ist und es viele Module gibt.

Aber vom Grundverständnis für programmieren usw. würde ich glaube immer noch C empfehlen.
In der Industrie hat Python immer mehr Einfluss. Also kann es in paar Jahren anders aus sehen.
 
Ich würde kein C lernen, je nach wo du arbeitest, wirst du ggf. nur ein Subset oder spezifische Version nutzen dürfen (Stichwort Misra-C manchmal auch Automotive-C genannt).

Zwischen gepfuschten C und C was du wirklich produktiv einsetzen kannst ist ein riesen Unterschied, im Worst Case lernst du Unmengen an schlechter Angewohnheiten (ich sprech aus Erfahrung ;))
 
Alex_N_F schrieb:
Ich kenne mich leider nicht so gut aus wie das mit den Sprachen so ist. Spezialisiert man sich mehr auf Eine bzw. einige Wenige? Oder gilt das Prinzip 'Je mehr man kann desto besser'?
Das hängt von der eigenen Entscheidung im Leben ab. Ich selber habe mich entschieden, mehrere Sprachen halbwegs zu beherrschen, und fühle mich daher bisschen flexibler in der Job-Wahl. Was ich aber natürlich mitbekommen habe, am Job-Markt ist es dann unterschiedlich was gesucht wird, sprich die einen suchen Spezialisten, die anderen Allrounder.

Ich bevorzuge allgemein im Leben eher Allrounder zu sein, was nicht heißt, dass ich mich nicht spezialisiere, wenn notwendig.

Aber klar, wenn jetzt spezifische Sprachkenntnisse für ein Projekt gefordert werden, werde ich bestimmt länger brauchen, als jemand, der nur mit dieser Sprache jahrelang gearbeitet hat. Übrigens, aus meiner Sicht, gibt es keine Spezialisten für eine "Sprache", sondern eher Spezialisten für gewisse Anwendungsgebiete, wo eine Sprache (idR) zum Einsatz kommt.

Auf der Uni (TU Wien) wurde größtenteils in Java programmiert. Ich lese allerdings oft, dass Kotlin am Markt als Backend-Sprache immer interessanter wird. Einige Plattformen zeigen zum Teil den Trend, welche Sprachen derzeit beliebt sind (wobei würde ich nicht so genau nehmen... LINK)

Und ja, ich stimme meine Vorrednern zu, es geht um Konzepte (was ich auch als Allrounder so sehe). Dies allerdings den "HR-Leuten" am Job-Markt zu vermitteln, ist so eine Sache (bei manchen... ihr wisst was ich meine).
 
  • Gefällt mir
Reaktionen: KitKat::new()
R O G E R schrieb:
Also ich habe auch E-Technik studiert.
Im Studium gab es C++ und VB. Unterschied ist nicht gravierend, da beide auf das Net Framework aufbauen.
Auf der Arbeit nutze ich größtenteils VB, weil es halt für den speziellen Fall gefordert wird.

Privat nutze ich gerne Python weil es halt ne Skriptsprache ist und es viele Module gibt.
Ggf. meinst C++/CLI und VB.NET, beide bauen auf dem .NET Framework auf, ansonsten ist die Antwort falsch.
VB6 hat nichts mit .NET zu tun, C++ im Allgemeinen auch nicht, C# jedoch schon.
 
  • Gefällt mir
Reaktionen: Parmaster und KitKat::new()
R O G E R schrieb:
Privat nutze ich gerne Python weil es halt ne Skriptsprache ist und es viele Module gibt.
Sehe ich auch als Vorteil, zum Lernen ist das eher doof - zum Einstieg braucht man die meisten Module/Pakete/Bibliotheken nicht, und es schadet eher, wenn jeder Autor da seine eigene Suppe kocht.

Ganz schlimm ist das in R. Ich liebe R und nutze es viel und gerne, aber die Strukturen der Packages sind zum Teil allerunterste Schublade.
 
  • Gefällt mir
Reaktionen: Nexialist.
Ja ich meine VB-Net und C#
 
@Nilson
"Why do Microsoft devs wear glasses? - Because they need to see sharp!"
 
Ich hab auch Nachrichtentechnik studiert und bin seitdem (auch schon davor) im Beruf hauptsächlich mit C unterwegs.
Also ja, hardwarenahe Programmierung läuft auf C hinaus.

ABER:
Zum Start würde ich die Rust empfehlen - und zwar aus folgenden Gründen:
  1. Ich hab erst - so richtig - beim Kennenlernen von Rust gemerkt, wie dreckig, fehleranfällig und "pfuschig" man in C programmiert. In Rust werden viele Fehlermöglichkeiten schon durch den Compiler verhindert/gefunden.
    Kleines Stichwort: Ownership (vereinfacht: Variablen/Werte dürfen nur gleichzeitig an einer Stelle geändert werden)
    Ich hatte wirklich "Mühe" meinen bisherigen Stil auf Rust anzupassen und meckerfreien Code zu schreiben. Beispiel: pass einer Hashmap an eine Funktion. Rust meckert, denn du musst einerseits das Ownership der Hashmap selber beachten (das ist offensichtilch), aber auch die in der Hashmap hinterlegten Elemente müssen eigentlich beachtet werden.
  2. Rust hat einen mächtigen package-Manager: cargo. In C musst du dich mit Makefiles usw. herumschlagen. Das wären dann 2 Sprachen zum Anfang du man lernen muss...
Aber es stimmt, du brauchst quasi nicht die Sprache, sondern die Konzepte. Und die kann man dann leicht auf andere Sprachen anpassen.

Also, für den Start geht es um eine Sprache die
  • nicht soviel "drumherum"-Arbeit erfordert und man sich auf das Schreiben und Verstehen konzentrieren kann
  • man nicht soviel Code bloat schreiben muss (für die Lösung der Aufgabe unnötiger Code)
  • wo das Tooling gut ist und es auch ne gute ide gibt
 
  • Gefällt mir
Reaktionen: Looniversity und KitKat::new()
Die Frage ist, was dich interessiert. Aktuell interessant (und angesagt) sind scriptbasierte Sprachen wie Angular oder React für Frontend-Webapplikationen. Da daraus ein rundes Paket werden soll, auf der Backendseite RestAPI Endpunkte. Die kannst du relativ sprachenunabhänig umsetzten, z.B. Java (mit SpringBoot) oder auch in Rust.

Such dir kleinere Projekte mit fest definierten Zielen und setzt sie in verschiedenen Sprachen um und schaue wie du am Besten klar kommst. Wenn du das denken dazu verinnerlichst, ist letztlich die Programmiersprache austauschbar.
VSCode ist momentan tatsächlich eine recht gute IDE, die für alle Arten von Arbeit eingerichtet werden kann.
 
Nebenbei tust du dir unabhängig von der Sprache mit Git (nicht nur GitHub) einen Riesen-Gefallen.

Für die ersten Programme kommt man auch ohne gut klar und braucht sich nicht damit Ablenken. Wenn du die ersten Hürden geschafft und ein paar mehrseitige Programme geschrieben hast ist meiner Meinung nach ein guter Zeitpunkt für Git. Erklärungen aller Art gibt es dafür zuhauf. :)
 
  • Gefällt mir
Reaktionen: R O G E R
moa schrieb:
Zum Start würde ich die Rust empfehlen - und zwar aus folgenden Gründen:
Rust wollte ich auch fast vorschlagen, allerdings habe ich mir gedacht, dass es für Anfänger bei typischen HW-nahen Code nicht das einfachste sein dürfte da durchzublicken.

Andererseits wird man sich da sowieso nicht sofort damit beschäftigen und gerade für Anfänger sind die guten Fehlermeldungen und Robustheit gegen Programmierfehler top, weil man sich v.a. gegenüber C (und C++) etliche Stunden Debugging (= hohe Frustration) sparen kann.
 
Ich würde mich erstmal anhand der Lehrpläne informieren, wenn du dich zielführend vorbereiten möchtest. In NRW etwa ist Java für den Informatik-Unterricht der Oberstufe obligatorisch.

Gruß Jens
 
@HerrDrachen kommt drauf an. C++ ist nicht pauschal besser. Mit dem Hintergrund E-Technik kann auch reines C noch sinn Ergeben, da einige Microcontroller nur in C programmiert werden können.
 
Zurück
Oben