C Programmieren

Chrissi99

Newbie
Registriert
Jan. 2019
Beiträge
6
Guten Abend alle miteinander,

ich habe da mal eine Frage, und zwar:
Ich lerne im Studium (Mechatronik, 2. Semester) derzeit die Sprache C und dies macht mir auch enorm viel Spaß.
Nun möchte ich mich selbst in meiner Freizeit noch weiter bilden. Da ich allerdings nicht viele Stunden Informatik in der Woche habe, habe ich auch noch nicht sehr viel Erfahrung.

Zusätzlich habe ich schon den Einsteigerkurs von Udemy für C gemacht, allerdings bin ich da nun auch durch.
Mein Stand ist somit gerade ungefähr:
  • Schleifen
  • Pointer / Arrays
  • Funktionen auslagern

Also dies kann ich nun so ungefähr, zT auch ein paar Kleinigkeiten mehr.

Nun möchte ich mich aber auch so noch weiterbilden in der Freizeit da es mir enormen Spas macht.
Gibt es da etwas gutes zu empfehlen? Wie ich mir selbst noch C perfekt beibringen kann?
Generell wären mir Videos lieber, wenn ihr aber meint, dass es mit Büchern einfacher und besser geht dann auch gerne mit Büchern.
 
Persönlich hab ich mit Ideen/kleineren Projekten am besten gelernt. Einfach stumpf irgendwelche tutorials nacharbeiten war nie meins.

Also mein Tip: Überleg dir was kleines, das du basteln willst und fang an zu programmieren!
 
  • Gefällt mir
Reaktionen: ChrisStonehenge, Revan1710 und 5clowne
Programmier zB Snake, so hab ich auch begonnen, schon bevor ich Funktionen kannte :(. Die SDL Library ist sehr einfach gehalten und übernimmt das Grafische. Damit lässt sich viel experimentieren und man sieht sofort ein Ergebnis.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: adAstra
Da ich auch aus Richtung komme und mich auf die Programmierung spezialisiert habe, kann ich dir nur empfehlen, einen Raspberry Pi o.ä. zu anzuschaffen und dich rudimentär auch etwas mit Linux zu beschäftigen - C ist gerade in der Embedded Linux Welt auch sehr präsent und gleichzeitig eignet sich das Teil super zum Programmieren und für Hobby-Projekte.
 
Revan1710 schrieb:
C ist gerade in der Embedded Linux Welt auch sehr präsent
Sobald man Linux als Boden hat, macht es I.d.R. mehr Sinn auf Sprachen mit besserer Abstrahierungsunterstützung zu arbeiten: z.B. Python (C++, falls maschinennahe), Rust.
 
@new Account()
Das macht es meistens, aber ich kenne es von den meisten Unis so, dass C in Kombination mit Linux verwendet wird, aus gutem Grund.
 
Falls du wirklich von Verwendung sprichst: Es sollte prinzipiell ziemlich egal sein, solange man nichts Linuxspezifisches macht.
Aber Aufklärung ist ist sehr willkommen (ggf. per PN, um den Thread nicht abdriften zu lassen).

Beispielsweise wusste ich von einem Lehrstuhl, der am Linuxkernel und Anhängsel gearbeitet hat: Macht tatsächlich Sinn.
Programmiert man an einem "Embedded System" ist auch entweder das Tooling (z.B. ROS ehemals Linux only) OS-spezifisch oder einfach egal (z.B. unter Benutzung eines "Programmierers" und Geräte mit der Software zu bespielen).

Falls du von Lehre sprichst: Meine Stichprobe von 4(einen selbst besucht) sagt eher, dass das OS total irrelevant ist (für die Lehrveranstaltung und erst Recht für C selbst).
 
Zuletzt bearbeitet:
Kurzversion:
Gerade wenn man etwas hardwarenäher arbeiten will, ist vieles unter Linux wesentlich besser dokumentiert und angenehmer (Man-pages usw).
Das weiß man auch in der Lehre, weswegen dann in dem ein oder anderen Fach (Betriebssysteme z. B.) zumindest ne VM mit Linux mehr als nur empfehlenswert ist.

Letztendlich ging es mir primär um folgende Aussage:
new Account() schrieb:
Sobald man Linux als Boden hat, macht es I.d.R. mehr Sinn auf Sprachen mit besserer Abstrahierungsunterstützung zu arbeiten
Da verstehe ich nicht, warum das unter Linux mehr Sinn als unter Windows ergeben soll.
 
pseudopseudonym schrieb:
Das weiß man auch in der Lehre, weswegen dann in dem ein oder anderen Fach (Betriebssysteme z. B.) zumindest ne VM mit Linux mehr als nur empfehlenswert ist.
Naja, das gibt sich schon alleine dadurch, dass Windows Closed Source ist und "C" in Linux sehr prävalent ist.

pseudopseudonym schrieb:
Da verstehe ich nicht, warum das unter Linux mehr Sinn als unter Windows ergeben soll.
Ich meinte das nicht in Vergleich zu Windows, sondern im Vergleich zu "Embedded Systems", die oftmals kein Betriebssystem oder ein speziell entwickeltes Betriebssystem haben und häufig auch keine direkte Nutzung von dynamischen Speicher ermöglichen (was z.B. auch bedeutet, dass man die STL größtenteils nicht verwenden kann), geschweige denn das Nutzen von interpretierten Sprachen (Ausnahmen gibt es).
Außerdem ist es oft der Fall, dass existierende Software in C geschrieben ist (und C++ wird (i.d.r. grundlos: Vorurteile, Lernresistenz) verachtet).
Wenn Linux läuft hat man i.d.R. mehr Resourcen zur Verfügung (inkl. Heap, inkl. Interpreter, Multiprocessing out of the box...).
 
new Account() schrieb:
Naja, das gibt sich schon alleine dadurch, dass Windows Closed Source ist und "C" in Linux sehr prävalent ist.
Das ist klar, hat schon Gründe, dass ich Linux in der Regel vorziehe, aber das Thema schneiden wir jetzt besser mal nicht an :D

new Account() schrieb:
Ich meinte das nicht in Vergleich zu Windows, sondern im Vergleich zu "Embedded Systems"
Klar, da stimme ich dir zu. Aber zum Lernen von C tut's (erstmal) auch ein PC.
 
Ich kann exercism sehr empfehlen als Weiterführung eines Lernkurses: https://exercism.io/my/tracks/c
Da gibt es einen Haufen Übungen und erfahrene Programmierer schauen quasi ehrenamtlich über deine eingereichten Lösungen drüber.
 
Zurück
Oben