Buchempfehlung C programmieren lernen für fortgeschrittenen Anfänger?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Auch wenn die neueren Standards nicht abgedeckt werden: K&R - The C Programming Language (Prentice Hall)

Die Änderungen/Aktualisierungen über die verschiedenen C Standards sind überschaubar, zumal einige zwischenzeitlich wieder "revidiert" wurden - genauer, es bleibt dem Compiler überlassen, ob er es unterstüzt.

K&R als ursächliche 'Macher von C' haben natürlich einen spezifischen Blick auf die Sprache . Dadurch gewinnt man einen anderen Eindruck bezüglich der Eigenheiten der Sprache.

Als Ergänzung (wegen der Unterschiede zwischen den Standards), würde man dann in Folge direkt den Standard lesen, der beseitigt auch letzte mögliche Unklarheiten und gewährt tiefere Einblicke in einige technische Aspekte, die als Programmierer eher am Rande von Interesse sind.

--------

K&R sollte in vielen Bibliotheken rumstehen, d.h. man kann sich das sicherlich auch leicht ausleihen und man ist da auch recht schnell durch.


AOMkayyy 
Fragesteller
 17.09.2021, 11:13

Vielen Dank für die Empfehlung!

0

Ein spezielles Buch kann ich nicht empfehlen aber einen Verlag.

Der O’Reilly ist eigentlich die erste Adresse wenn es um IT und Programmierung geht.


AOMkayyy 
Fragesteller
 17.09.2021, 00:24

Danke, den Verlag schaue ich mir sicher an!

0

Im Bereich Embedded Systems kann man auch was anderes als C benutzen. Kommt natürlich drauf an was man macht und mit was man macht ;).

Mit C kannst du halt richtig Low-Level Sachen machen.

Ich kann jetzt nicht wirklich einschätzen welches Programmier-Level du hast. Ein Nachschlagewerk ist aufjedenfall der Klassiker "C von A bis Z" vom Rheinwerk-Verlag (gibt's Online kostenlos, kommt man früher oder später eh drauf wenn man googled😅).

Ein Taschenbuch zum Verstehen was ich sehr gut fande war "C Programmieren von Anfang an" von Helmut Erlenkötter soweit ich weiß. War aufjedenfall ein grünes Taschenbuch, sollte das also sein.

Ein Buch für alles gibt es nicht. Also würde ich einfach in die Bibliothek gehen und ein paar ausleihen. Auch nicht jeder kann mit jedem Buch was anfangen.

Würde sowieso eine Kombination aus Bücher, Webseiten/Forums, Videos und einfach Trail&Error machen.

---

Z.B. hab ich anfangs einige Probleme gehabt Pointer und Listen zu verstehen. Damals habs dazu nicht wirklich gute YouTube-Videos. Jetzt gibt's echt gute, die erklären dir in ein paar Minuten die Basics schon visualisiert. Um das Listen zu verstehen hab ich glaub 4 Tage mit meinen Kommilitonen diskutiert 😂.

---

Wichtig ist, programmier was. Die Basics verstehen ist wichtig, dann wende sie aber auch in einem eigenen Projekt an oder ändere das Tutorial ab. Gibt auch einige Unis die das C Vorlesungszeug und Praktika-Aufgaben online zur Verfügung haben. Würde auch mal auf GitHub schauen. Ein Prof von mir hat dort ~10 Beispielcodes hochgeladen (hatte den aber nicht dort). Learning by Doing ist das Ding beim Programmieren. Wenn du Fehler machst ist es gut, dann lernst du daraus :). Verzweifeln gehört auch ein bisschen dazu 😂.

---

Hab mir auch ein Arduino Starter Kit gekauft und auch mal das Tutorial durchgemacht mit dem es gekommen ist. Kann man für den Anfang auch empfehlen. Vielleicht nicht um C/C++ zu lernen (vielleicht nur die Basics), aber um einfach mal zu verstehen wie Embedded Systems grundlegend funktioniert.

Deutlich einfacher einen Arduino zu programmieren anstelle eines STM32 Microcontrollers😅. (Literatur für den STM32 Microcontrollers gibt's die 1000+ Seiten Datenblatt 😐😛)

---

Ich selber würde dir einfach C oder C++ empfehlen. C++ ist eine objektorientierte Programmiersprache. Die C++-Compiler sind voll kompatibel mit C.

Warum werden C und C++ so gerne bei Embedded Systems benutzt. Ganz einfach, sie können das Low-Level Zeug und sind, der Hauptgrund wahrscheinlich sogar: sie sind schnell.

---

Wenn du C# schon vernünftig kannst, dann ist der Umstieg auf C oder C++ nicht so schwer. Dann verstehst du ja das Prinzip von einer objektorientierten Sprache schon. Die zwei sind meist ein bisschen schwerer zu verstehen wegen der Syntax, aber sollte relativ schnell gehen. Funktionen, Variablen, usw. kannst ja grundlegend schon. Pointer und Listen und so muss man halt von C dann noch lernen.

---

Musst du aber wissen was du machen willst/welche Programmiersprache du benutzen willst. Z.B. Java, Phyton und JavaScript kann aber für bestimmte Sachen in Embedded Systems auch benutzt werden.

---

Hab dich wohl komplett verwirrt.😂 Eigentlich ist es egal welche Programmiersprache, lern einfach eine und dann ist der Umschwung nicht wirklich schwer. Du musst aber auch einfach Programmieren, ohne Praxis wird das nichts.


AOMkayyy 
Fragesteller
 17.09.2021, 11:18

Danke für die ausführliche Antwort : ) Ich werde mich dann jetzt einfach an C ransetzen, die trockene Theorie hinter Listen und Pointern kann ich eigentlich auch in den Grundsätzen (musste mal Listenzugriffe mit "Pseudo-Assembler" schreiben), jetzt versuche ich das ganze einfach in der Praxis etwas zu vertiefen.

0

Nimm irgend ein Buch über ANSI C (den aktuellsten Standard zu C).

Sehr hilfreich finde ich https://karadev.net/uroci/filespdf/files/Programming-in-ANSI-C.pdf .

Darin ist auch die Laufzeit-Bibliothek dokumentiert (die man in Büchern eher nicht findet).

|

Antiquarisch ist das Buch noch hier zu haben: https://www.amazon.de/Programming-ANSI-C-Ray-Dawson/dp/1874152101


AOMkayyy 
Fragesteller
 17.09.2021, 11:19

Danke, das werde ich mir später noch genau anschauen!

0

Aus Erfahrung kann ich sagen, dass dir kein Buch so viel helfen wird, als wenn du es selbst praktizierst. Du möchtest doch praktische Erfahrungen gewinnen richtig? Dann würde ich mir lieber einen Kurs bei Udemy o.ä kaufen oder Youtube Videos anschauen und nachprogrammieren.
Was die Sprache angeht, das kommt natürlich darauf an. Ich würde aber sagen, wenn es dich interessiert, dann fang doch einfach mal mit der Sprache an.


AOMkayyy 
Fragesteller
 17.09.2021, 00:33

Danke für die Antwort!

Auf jeden Fall ist es wichtig sich da auch praktisch damit auseinanderzusetzen und das habe ich auch vor, aber ich hatte vor das parallel zum Buch zu machen. Der Vorteil an Büchern ist m.M.n., dass man es einfacher hat das Tempo selbst zu regulieren, wobei ich natürlich auch schon häufig Videos als Quelle genutzt habe und es ist auf jeden Fall eine Option auf die ich in gewissem Umfang auch sicherlich zurückgreifen werde.

0
Sd2020  17.09.2021, 00:38
@AOMkayyy

Ja das kann man so mache. Bei uns in der Bibliothek habe ich oft die Bücher von O'Reilly und die "C für dummies" gesehen.

1
TechPech1984  17.09.2021, 00:40

ich weiss ja nicht wie professionel du lernen willst, aber ein udemi oder youtube video ist viel zu oberflächlich . im buch wird wirklich hintergrund erklärt . und vor allem , man kann es nachschlagen . kurz mal gucken ok , aber ansonsten erzeugt man doch starke dilletanten die meinen von allem was zu verstehen ohne wirklich was zu können . sieht man ja leider ständig , ergebnis sind dann diese gerade zu einladeneden hackbaren systeme die hier sogar für geld produziert werden .

und programmierparadigmen und erklärungen für projekte ist auch nur zu erlesen , denn da steht viel weisheit drinne . es gibt halt auch da standardwerke die jeder profi gelesen hat.

1
AOMkayyy 
Fragesteller
 17.09.2021, 11:23
@TechPech1984

Genau das ist das Problem. Ich habe es auch schon bei C# gemerkt, dass die Anfänger Playlisten häufig schon recht früh enden und danach weiß man nicht wirklich was man lernen soll. Die weiterführenden Themen findet man zwar dann schon, aber nur wenn man genau weiß wonach man suchen will und man dann jedes Thema ohne größeren Leitfaden einzeln nachschaut.

Ich möchte schon professionell lernen, da ich gerade als dualer Student im Bereich Embedded System Engineering angefangen habe.

0
stdio  17.09.2021, 04:35

Im Gegenteil.

Udemy und Youtube sind ein Witz!

Allein der Umfang bei Udemy entspricht einem sehr dünnen Lehrbüchlein.

Gerade bei C wird man ohne Bücher nicht gut werden können!

Gute Lehrbücher sind das A und O. An den Umfang und die Tiefe kommen Videotutorials überhaupt nicht ran.

1
AOMkayyy 
Fragesteller
 17.09.2021, 11:26
@stdio

Sehe ich relativ ähnlich, weshalb ich auch nach Büchern frage. Zum leichten Einstieg in ein Thema sind Videos gut, danach halte ich Bücher und textbasierte Internetressourcen für deutlich fundierter.

1
Sd2020  17.09.2021, 09:26

ja ich habe nur meine Erfahrung geschrieben. Durch Videos habe ich die Basis verstanden und erstmal versucht nachzubauen & dann selber etwas programmiert.
Natürlich sind Bücher nicht schlecht, im Endeffekt muss man es selbst entscheiden, wie man es am besten versteht und vorankommt. Mit Bücher war ich anfangs etwas langsamer.

1
AOMkayyy 
Fragesteller
 17.09.2021, 11:30
@Sd2020

Für einen angenehmen Einstieg in ein Thema sind Videos super, aber der Stoff der Playlisten wird leiter häufig recht schnell dünn und dann fehlt der Leitfaden und die technische Tiefe. Aber ja, für die Basis sind sie gut!

0