Forum: PC-Programmierung Sehr gute Einstiegsliteratur in C (konzeptuell, usw)


von Kaje (Gast)


Lesenswert?

Hallo, zusammen.
Ich bin auf der Suche nach einer guten Einstiegsliteratur für die 
Programmiersprache C. Im Internet finde ich leider häufig, so meine 
Erfahrung, eher nur Literatur, die mal schnell in C rein hüpfen will. 
Von anderen Rezensenten kriege ich dann auch immer wieder mit, dass die 
meisten modernen C-Einstiegsbücher nur so von Fehlern durchtränkt sind.

Daher hoffe ich, dass hier einige vielleicht gute C Einstiegsliteratur 
kennen, die vor allem die Konzepte von C für Anfänger ausführlich 
erklärt und dabei auch die Praxis nicht außer Acht lässt. Vielleicht 
liegt es an mir, dass die Theorie mich fesselt, aber so war das bei mir 
schon immer. Ich verstehe und arbeite besser, wenn ich den Hintergrund 
genauer verstehe.

Ich hoffe einige haben ein paar gute Empfehlungen. Vielen Dank im 
Voraus!

von Ein Kommentar (Gast)


Lesenswert?

Gute Konzepte? Da musst du diejenigen fragen, die mit 1-2 Leuten Systeme 
zustande bringen, für die andere Firmen 100 Leute und 10 mal so viele 
Programmzeilen brauchen. Nicht die Eunuchen, die Lehrbücher schreiben, 
weil sie sonst nichts zustande bringen.

Die beste Literatur sind die Quelltexte der genialen Programme. Das alte 
Mysql oder Ghostscript oder so etwas. Programme, die du locker 
durchlesen kannst. Bei denen du glaubst, das sei doch alles trivial.

von Kaje F. (kaje97)


Lesenswert?

Ein Kommentar schrieb:
> Gute Konzepte? Da musst du diejenigen fragen, die mit 1-2 Leuten
> Systeme
> zustande bringen, für die andere Firmen 100 Leute und 10 mal so viele
> Programmzeilen brauchen. Nicht die Eunuchen, die Lehrbücher schreiben,
> weil sie sonst nichts zustande bringen.
>
> Die beste Literatur sind die Quelltexte der genialen Programme. Das alte
> Mysql oder Ghostscript oder so etwas. Programme, die du locker
> durchlesen kannst. Bei denen du glaubst, das sei doch alles trivial.

Also ich weiß nicht so recht was diese Antwort soll. Sie hilft hier 
leider nicht weiter. Woher soll ich denn einfach Programmcode lesen und 
verstehen, wenn mir gerade die Grundlagen zu dem Thema fehlen und ich 
nicht mal weiß, was besagter Programmcode macht? Das ist doch Unfug.

> Programme, die du locker durchlesen kannst. Bei denen du glaubst, das sei doch 
>alles trivial.
Ich habe nirgendwo behauptet, dass das alles trivial sei.

: Bearbeitet durch User
von Pandur S. (jetztnicht)


Lesenswert?

Der Standard fuer C waere eigentlich : Kernigham & Ritchie

von Oliver S. (oliverso)


Lesenswert?

Auch wenn’s nicht taufrisch aussieht, sind die Erfinder der Sprache 
keine schlechte Referenz:

https://www.amazon.de/Programming-Language-Prentice-Hall-Software/dp/0131103628/ref=sr_1_1?ie=UTF8&qid=1366064447&sr=8-1&keywords=c+ritchie&tag=comput0d-21

Oliver

von A. S. (Gast)


Lesenswert?

Kaje F. schrieb:
> Ich habe nirgendwo behauptet, dass das alles trivial sei.

So war es auch nicht gemeint.

C-Code ist dann sehr gut, wenn er sich liest, als sei alles trivial.

Und ist nicht klar, brauchst Du ein Buch zum Programmieren lernen? Dann 
nimm dir einen c-compiler und ein Buch mit interessanten 
Themen/Beispielen.

Oder kannst Du programmieren, kennst EBNF und suchst jetzt C theoretisch 
zu erforschen? Dann nimm einen alten C standard (90-99) und ließ ihn 
durch.

von Alexander S. (alesi)


Lesenswert?

Hallo,
wie andere schon geschrieben haben ist "The C Programming Language" 2nd 
ed. von Kernighan und Ritchie immer noch eines der besten Bücher. Es 
gibt aber auch, meiner Meinung nach, gute online tutorials (auf 
englisch).
Meine Favoriten:
James Aspnes, Notes on Data Structures and Programming Techniques
http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html
Stanford CS Education Library
http://cslibrary.stanford.edu/
http://cslibrary.stanford.edu/101/EssentialC.pdf
http://cslibrary.stanford.edu/102/PointersAndMemory.pdf
C Programming
https://www.eskimo.com/~scs/cclass/cclass.html
C Programming Notes
https://www.eskimo.com/~scs/cclass/notes/top.html

Oder falls es doch ein (dickes) Buch sein soll:
Stephen Prata, "C Primer Plus, 6th Ed"
Die Suchmaschine liefert auch ein pdf der 5th Ed. (University of 
Cincinnati). Aber das Herunterladen ist natürlich verboten.

von Philipp Klaus K. (pkk)


Lesenswert?

Ich würde die folgenden beiden Bücher empfehlen:

"Effective C" von Robert Seacord
"Modern C" von Jens Gustedt

Im Gegensatz zum oben empfohlenen "The C Programming Language" beziehen 
sich diese beiden auf aktuellere Sprachstandards. Beide Autoren sind 
auch in der Normierung der Sprache C aktiv.

P.S.: Auch der C Sprachstandard selbst ist halbwegs lesbar (nicht ganz 
so gut wie der von Scheme, aber immer noch deutlich besser als bei den 
meisten Sprachen).

: Bearbeitet durch User
von udok (Gast)


Lesenswert?

Kaje schrieb:
> Daher hoffe ich, dass hier einige vielleicht gute C Einstiegsliteratur
> kennen, die vor allem die Konzepte von C für Anfänger ausführlich
> erklärt und dabei auch die Praxis nicht außer Acht lässt.

Du brauchst mindestens 2 Bücher.

Eines über die Sprache C, wie den Kernighan&Ritchie,
der immer noch eines der besten und kürzesten Einstiegsbücher ist.
Den ganzen modernen C Firlefanz hast du da nicht drinnen,
aber das ist alles erst mal unwichtig.

Dann brauchst du ein Buch über Algorithmen und Datenstrukturen,
wie den Sedgewick "Algorithm in C", der dir die benötigten 
Datenstrukturen
(und Denkstrukturen) nahebringt.

Beides sind sehr gute und praktische Bücher, die ich empfehlen kann.

Gruss,
Udo

von Ein Kommentar (Gast)


Lesenswert?

> von Kernighan und Ritchie immer noch eines der besten Bücher

Jain... die Ansichten haben sich inzwischen geändert. Heutzutage haben 
wir doch ganz andere Konzepte.

Damals wollten K&R ein Mehrbenutzersystem in 1MB quetschen und nahmen 
dafür fehleranfälligen Code in Kauf. Heutzutage haben wir Gigabyte an 
Programmcode. Finden die Fehler nicht mehr. Wir benutzen Konzepte, die 
zumindest einen Teil der Fehler vermeiden.

Ich befürchte, das einzige man aus K&R noch lernen kann, ist die Sache 
mit Pointen und Arrays.

> Woher soll ich denn einfach Programmcode lesen...

Das lesen ist kein Problem. Hast du mit einem beliebigen 
Internettutorial in ein paar Tage drauf.

Das Problem liegt wo anders. Du musst deine Konzepte so anlegen, dass du 
die Stärken der Sprache und der Libraries ausnutzen kannst. Erst gar 
nicht über die Unzulänglichkeiten stolperst.

von udok (Gast)


Lesenswert?

Ein Kommentar schrieb:
>> von Kernighan und Ritchie immer noch eines der besten Bücher
>
> Jain... die Ansichten haben sich inzwischen geändert. Heutzutage haben
> wir doch ganz andere Konzepte.

Und welche wären das konkret in C?  Klingt so als hättest du keine 
Ahnung von C?

von Markus L. (rollerblade)


Lesenswert?

Kaje F. schrieb:
> Woher soll ich denn einfach Programmcode lesen und
> verstehen, wenn mir gerade die Grundlagen zu dem Thema fehlen und ich
> nicht mal weiß, was besagter Programmcode macht?
Das mußt Du Dir erarbeiten. Arschbacken zusammen kneifen und 
durchkämpfen. Oder glaubst Du etwa, jemand kaut Dir was mit einem Buch 
mundgerecht vor und Du kannst das dann auch? Was meinst Du, wo all die 
ihr Wissen herhaben, die guten Code schreiben können? Sicher nicht vom 
Bücherlesen.
Ist wie Eiskunstlaufen: Du kannst 1000ende Bücher darüber lesen, selber 
machen mußt Du selber lernen.
Erfahrung kann man nicht weitergeben. Die muß man sich selbst aneignen.

Google mal nach Design Patters und Design Principles. Die sind 
sprachunabhängig, aber wertvoll, sie verstanden zu haben.

von P. S. (namnyef)


Lesenswert?

Wer 2022 noch mit dem K&R C lernt, hat die Kontrolle über sein Leben 
verloren ... (das war der Troll zum Sonntag) Im Ernst: Als historisches 
Dokument ist der K&R sicher sehr interessant und man kann sich den auf 
jeden Fall mal ins Regal stellen.

Aber die Welt hat sich nun mal - sogar in C - weiter gedreht. Für die 
Basics sollten sich im Netz genügend und vor allem halbwegs aktuelle 
Informationen finden lassen. Zum Thema C gibt es halt leider sehr viele 
Bücher, die einfach Schrott sind ...

Wenn es dann in die Tiefe geht, lernt man auch viel aus den 
Sprachstandards selbst oder auch aus den Handbüchern von Compilern und 
statischen Analyse-Tools.

Wenn Embedded ein Thema ist, kann man sich für ne schmale Mark auch ein 
Exemplar des MISRA-C-Standards holen. Egal was man von diesem Standard 
halten mag: Die Code-Beispiele und Erklärungen ("Rationals") zu den 
einzelnen Regeln sind sehr lehrreich und Vertiefen das Verständnis. Vor 
allem über die dunklen Ecken von C ;)

So oder so wirst du aber am wahrscheinlichsten vernünftige 
Lernergebnisse erzielen, wenn du ein konkretes Projekt hast, an dem du 
arbeiten und dich von Problem zu Problem durch hangeln kannst. Auf jeden 
Fall kann ich mir kaum vorstellen, dass nur "Programmcode lesen" einen 
nachhaltig weiter bringt.

: Bearbeitet durch User
von Kaje F. (kaje97)


Lesenswert?

Markus L. schrieb:
> Das mußt Du Dir erarbeiten. Arschbacken zusammen kneifen und
> durchkämpfen.
Ach was... 🙄 Das weiß ich selber auch. Aber erarbeiten tut man schon 
mal, indem man eine gute Referenz hat, an der man sich orientieren kann. 
Und da ich unerfahren in diesem Gebiet bin, kann ich schlecht beurteilen 
welche Bücher über C nun gut oder schlecht sind und es wäre blödsinnig 
jetzt irgendeinen voreiligen Unfug anzustellen und nachher mir falsche 
Gewohnheiten anzugewöhnen, die danach wieder schwer abzugewöhnen sind. 
Genau deswegen frage ich doch euch, die erfahrener sind auf dem Gebiet.

Markus L. schrieb:
> Oder glaubst Du etwa, jemand kaut Dir was mit einem Buch
> mundgerecht vor und Du kannst das dann auch?
Nein, das tue ich selbstverständlich nicht und man sieht doch auch in 
meiner Frage, dass es mir eben nicht darum geht irgendwas vorgekaut zu 
bekommen in einem Buch und schon gar nicht irgendwas einfach auswendig 
zu lernen, sondern zu verstehen :) Daher weiß ich nicht so ganz auf was 
deine Frage abzielt (oder andeuten möchte). Ich meine... das weiß ich 
offensichtlich ja wohl selbst :P Ich bin nicht mehr drei.

Markus L. schrieb:
> Was meinst Du, wo all die
> ihr Wissen herhaben, die guten Code schreiben können? Sicher nicht vom
> Bücherlesen.
Das mag ja sein, aber sicher haben die das Wissen auch nicht einfach 
nur, indem sie ohne Referenz und ohne Vorwissen einfach Code angeschaut 
haben. Sprachen lernt man schließlich auch nicht indem man einfach nur 
Wörter der Fremdsprache anschaut, sondern zusätzlich ein Wörterbuch zur 
Hand hat, in welchem man die Wörter der Fremdsprache in die eigene 
übersetzen kann und eine Referenz hat bzgl. der grammatikalischen 
Struktur der Fremdsprache damit man auch selber Sätze bilden kann in 
dieser und dann erst kann man sich Sätze von anderen in der Fremdsprache 
anschauen und davon entsprechend lernen. Und nochmal: Hier redet ja 
niemand nur vom Bücherlesen. Wenn ich nur Bücher hätte lesen wollen, 
hätte ich mir ja auch gleich irgendein X-beliebiges C Buch kaufen können 
zum Zeitvertreib und das Thema gar nicht erst eröffnen müssen :P

Markus L. schrieb:
> Google mal nach Design Patters und Design Principles. Die sind
> sprachunabhängig, aber wertvoll, sie verstanden zu haben.
Vielen Dank :) Ich habe es mir mal notiert.

von Oliver S. (oliverso)


Lesenswert?

P. S. schrieb:
> Für die
> Basics sollten sich im Netz genügend und vor allem halbwegs aktuelle
> Informationen finden lassen. Zum Thema C gibt es halt leider sehr viele
> Bücher, die einfach Schrott sind ...

Richtig. Und daher ist für die Basics immer noch der K&R, 2. Ausgabe, 
eine gute Wahl.

Für die modernen Erweiterungen dann noch eins der o.a. Bücher.

P. S. schrieb:
> Aber die Welt hat sich nun mal - sogar in C - weiter gedreht.

Natürlich hat sich die Welt ernsthaft weitergedreht. All die anderen 
Programmiersprachen wurden ja nicht erfunden, weil C so toll ist.

Oliver

von Kaje F. (kaje97)


Lesenswert?

P. S. schrieb:
> Wer 2022 noch mit dem K&R C lernt, hat die Kontrolle über sein
> Leben
> verloren ... (das war der Troll zum Sonntag) Im Ernst: Als historisches
> Dokument ist der K&R sicher sehr interessant und man kann sich den auf
> jeden Fall mal ins Regal stellen.

Vielen Dank für deine Antwort erstmal :) Nun davon das K&R schon 
veraltet ist habe ich auch schon öfter gelesen bei meiner Recherche 
gestern, deshalb war ich mir nicht so sicher, und hab mal abgewartet was 
andere Erfahrene hier noch so sagen. Ich habe aber trotzdem mal vor das 
K&R C Buch im Hinterkopf zu behalten als zukünftige Referenz, weil ist 
ja immerhin von den Machern selbst, wenn ich das richtig sehe.

P. S. schrieb:
> Aber die Welt hat sich nun mal - sogar in C - weiter gedreht. Für die
> Basics sollten sich im Netz genügend und vor allem halbwegs aktuelle
> Informationen finden lassen. Zum Thema C gibt es halt leider sehr viele
> Bücher, die einfach Schrott sind ...
Ja, ich habe da auch viele Rezensionen gelesen von welchen, die da 
explizit vor solchen Büchern gewarnt haben. Nun ja, nach Tutorials habe 
ich schon gesucht, aber ich fand, dass mir da immer so ein bisschen der 
Hintergrund gefehlt hat bzw. man da gewisse Dinge einfach für 
selbstverständlich genommen hat, obwohl ich fand, dass man dazu hätte 
ausführlicher sein können. Oder ich habe bisher nur schlechte Tutorials 
gefunden.

P. S. schrieb:
> Wenn es dann in die Tiefe geht, lernt man auch viel aus den
> Sprachstandards selbst oder auch aus den Handbüchern von Compilern und
> statischen Analyse-Tools.
Ja, ich glaube ich verfolge jetzt zunächst mal den folgenden Ansatz: Ein 
gutes C-Tutorial finden, das die Basics beibringt, danach wenn es in die 
Tiefe geht, dann deinen Vorschlag umsetzen und dabei vorher auch mal 
natürlich konkrete Projekte mal umsetzen. Da hätte ich schon einige 
kleine Ideen. Ich denke nämlich auch, dass das sehr lehrreich sein kann. 
Dabei kann ich mir dann auch mal Code aus anderen Projekten ansehen und 
wie die bestimmte Probleme gelöst haben, usw.

von Lerninstructor (Gast)


Lesenswert?

Kaje schrieb:
> Vielleicht
> liegt es an mir, dass die Theorie mich fesselt, aber so war das bei mir
> schon immer.

Dann such nach Programmiertechniken oder Methodiken und fachspezifischen 
Lösungsansätzen, aber nicht nach eine konkreten Programmiersprache wie 
'C'. Das Stichwort dazu ist "Software-Engineering"

Wahrscheinlich musste auch das Anwendungsgebiet 
(Embedded,DSP,Datenbanken,App,OS) benennen um das Zutreffende unter den 
teilweise widersprechenden Ansätzen (bspw. Hardwarespezif. vs. 
Abstraktion) zu finden.

Für den Anfang ist vielleicht das hilfreich:
ISBN:978-3897215672

Ansonsten schauen was hier diesbezüglich durchgekaut wurde:
https://www.google.com/search?q=Software+engineering+site%3Amikrocontroller.net

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

My favoured bookz about:

"Effective C", Robert Seacord
"Modern C", Jens Gustedt
"21st Century C", Ben Klemens
"C Programming - A Modern Approach", K. King
"Moderne_C-Programmierung", Helmut Schellong

You can find all bookz here libgen.rs !

Ein Kommentar schrieb:
> Die beste Literatur sind die Quelltexte der genialen Programme.

Ganz dick unterstrichen, immer und immer wieder diagonal source code 
lesen!!!
Damit lernt man sehr schnell zu unterscheiden zwischen gut, weniger gut 
und crap.

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Kaje schrieb:
> Ich hoffe einige haben ein paar gute Empfehlungen.

Du schreibst eingangs viel unsinniges Zeug, also auch mal strukturierter 
Denken lernen UND selbstwirksam werden!

von Kaje F. (kaje97)


Lesenswert?

Apollo M. schrieb:
> My favoured bookz about:
>
> "Effective C", Robert Seacord
> "Modern C", Jens Gustedt
> "21st Century C", Ben Klemens
> "C Programming - A Modern Approach", K. King
> "Moderne_C-Programmierung", Helmut Schellong
>
> You can find all bookz here libgen.rs !
Vielen Dank, die Bücher hab ich mir mal gerade notiert :)

Apollo M. schrieb:
> Du schreibst eingangs viel unsinniges Zeug, also auch mal strukturierter
> Denken lernen UND selbstwirksam werden!
Welche Stelle genau war denn an meinem Text deiner Meinung nach 
unsinnig? Das ich den Hintergrund beleuchtet habe und wiedergegeben habe 
was ich bisher selbst recherchieren konnte oder was genau? Ich 
jedenfalls sehe keinen Grund da mein strukturiertes Denken in Zweifel 
ziehen zu müssen (lernen tut man jedoch immer), denn ich kenne mich 
selber gut genug und kenne meine Fähigkeiten. Selbstwirksamkeit besitze 
ich, aber ich bin auch nicht naiv übermütig, weshalb ich hier auch 
nachfrage. Aber trotzdem danke nochmals für die Buchempfehlungen :)

von Kaje F. (kaje97)


Lesenswert?

Lerninstructor schrieb:
> Dann such nach Programmiertechniken oder Methodiken und fachspezifischen
> Lösungsansätzen, aber nicht nach eine konkreten Programmiersprache wie
> 'C'. Das Stichwort dazu ist "Software-Engineering"
Ahh, verstehe :) Ich behalte das mal im Hinterkopf. Auch dir danke 
vielmals für die Buchempfehlung. Und ja, ich werde mich mal durch die 
Seite durchstöbern. Da gibt es bestimmt viel zu finden.

von rbx (Gast)


Lesenswert?

Erlenkötter (ist didaktisch aufgebaut) K+R und ein Unix zum Üben.

von W.S. (Gast)


Lesenswert?

Kaje schrieb:
> Ich bin auf der Suche nach einer guten Einstiegsliteratur für die
> Programmiersprache C.

Da erhebt sih die Gegenfrage: Von welchem Kenntnis-Stand gehst du aus?

Im Grunde braucht man 3 Dinge:
1. Kenntnisse, wie man ein Ziel erreichen kann, also Algorithmen
2. Ein Gefühl für sinnvolle Ordnung, also Sinn für Struktur in einer 
Software
3. Kenntnis der formalen Schreibweise einer Programmierspeache, also wie 
man etwas in der betr. Sprache formuliert. Das ist auch zum Verstehen 
beim Lesen von Quellcode vonnöten.

Punkte 1 und 2 sind sprachunabhängig und Punkt 3 bringt rein garnix, 
wenn man zumindest bei Punkt 1 nix weiß.

Also nochmal: was weißt du bereits? Das ist entscheidend für weitere 
Ratschläge.

Ansonsten: Es ist immer ein guter Weg, sich irgendwelche 
Software-Projekte vorzunehmen, die man dann in der betreffenden 
Programmiersprache macht. Dabei stößt man wie von selbst auf all die 
Dinge, die man lernen muß. Und wenn man dann das Projekt lauffähig hat, 
fällt einem auf, daß man an tausend Stellen es hätte besser schreiben 
können. Das ist mMn wesentlich besser, als existierendes Zeugs nachäffen 
zu wollen.

W.S.

von Markus L. (rollerblade)


Lesenswert?

Kaje F. schrieb:
> Sprachen lernt man schließlich auch nicht indem man einfach nur
> Wörter der Fremdsprache anschaut, sondern zusätzlich ein Wörterbuch zur
> Hand hat, in welchem man die Wörter der Fremdsprache in die eigene
> übersetzen kann und eine Referenz hat bzgl. der grammatikalischen
> Struktur der Fremdsprache damit man auch selber Sätze bilden kann in
> dieser und dann erst kann man sich Sätze von anderen in der Fremdsprache
> anschauen und davon entsprechend lernen.
Ja, so die klassische Lehre. Eine Fremdsprache lernt man aber am 
schlechtesten mit Wörter- und Grammatikbuch. Ein Lexikon in der 
Fremdsprache bringt 1000x mehr als ein Wörterbuch. Es befreit einem vom 
Korsett, immer das Wort in der eigenen Muttersprache im Kopf haben zu 
müssen und in der eigenen Muttersprache zu denken.
Eine Sprache muß gesprochen werden, am besten zusammen mit 
Muttersprachlern. So, wie ich auf der Schule Fremdsprachen gelehrt 
bekam, Wörter und Grammatikregeln pauken, viel zu selten im Sprachlabor, 
viel zu wenig Konversation, habe ich in 13 Jahren Schulenglisch weniger 
mitgenommen als in einem Jahr mit meiner damaligen Freundin aus England 
zusammen in einer Clique aus Briten, Iren und Amerikanern.

von Janosch K. (Gast)


Lesenswert?

"habe ich in 13 Jahren Schulenglisch weniger
mitgenommen als in einem Jahr mit meiner damaligen Freundin aus England
zusammen in einer Clique aus Briten, Iren und Amerikanern."

Das hat aber noch ganz andere Gründe, weshalb das deutlich mehr bringt.
Ganz so einfach herunterbrechen, wie du es gemacht hast, kann man es 
nicht.
So einfach ist die Welt dann doch nicht;-)

Nicht umsonst gibt es extra das Auslandsjahr in England z.B:
Ist jetzt also kein wirklicher Geheimtipp

von rbx (Gast)


Lesenswert?

Ein Problem ist wohl auch - naja, dass z.B. K+C super mit gewissen 
technischen Sachen, für die man sich vielleicht interessiert, 
interagiert. D.h. nicht zu knappes Interesse für gewisse technische 
Dinge wären so schlecht nicht.

von Kaje F. (kaje97)


Lesenswert?

Markus L. schrieb:
> Ja, so die klassische Lehre. Eine Fremdsprache lernt man aber am
> schlechtesten mit Wörter- und Grammatikbuch. Ein Lexikon in der
> Fremdsprache bringt 1000x mehr als ein Wörterbuch.
> [...] habe ich in 13 Jahren Schulenglisch weniger
> mitgenommen als in einem Jahr mit meiner damaligen Freundin aus England
> zusammen in einer Clique aus Briten, Iren und Amerikanern.
Das eine schließt das andere jedoch nicht aus, Markus. Ergänzend: 
Jemanden ohne irgendwelche Vorkenntnis in einer Fremdsprache ins 
entsprechende Land hineinzuwerfen (und darauf bezog sich auch meine 
Analogie) wird ebenso wenig bringen wie nur die ganze Zeit Bücher über 
die Sprache zu lesen. In meiner Antwort oben ging es lediglich darum 
eben genau schon mal so ein gewisses Fundament zu haben, damit man dann 
in der Praxis (in der Analogie bleibend: im Ausland) dann richtige 
Erfahrungen sammeln kann. Aber ich hatte das ja oben schon erklärt 
gehabt, weshalb das jetzt nicht noch weiter ausgeführt werden muss, da 
off-topic. Praxis und Theorie sollten selbstverständlich Hand in Hand 
gehen. Das bestreitet hier niemand :)

: Bearbeitet durch User
von Kaje F. (kaje97)


Lesenswert?

W.S. schrieb:
> 1. Kenntnisse, wie man ein Ziel erreichen kann, also Algorithmen
Wir sprechen hier von Heuristik? Ja, in der Hinsicht habe ich einige 
Erfahrung, also was das Finden von Lösungen zu Problemen angeht. 
Allerdings kann ich bisher Algorithmen allgemein z.B. nicht mathematisch 
formulieren oder in einer Programmiersprache umsetzen bzw. solche 
Ausdrücke lesen und verstehen, da die Sprache mir unbekannt ist. Würde 
man einige Algorithmen mir dagegen mit reinen Worten erklären, würde ich 
diese relativ schnell begreifen können. Auch könnte ich selbst Lösungen 
finden und diese verbal, in reinen Worten, ausdrücken, aber bisher, wie 
erwähnt, nicht mathematisch oder programmiersprachlich abbilden können.

W.S. schrieb:
> 2. Ein Gefühl für sinnvolle Ordnung, also Sinn für Struktur in einer
> Software
Also ich würde sagen, dass ich (allgemein) dieses Gefühl für sinnvolle 
Ordnung habe. Ich meine, mein Alltag alleine ist schon sehr strukturiert 
und geordnet. Aber einen Sinn für Struktur in einer Software habe ich 
natürlich nicht, da mir natürlich bisher die Kenntnis darüber fehlt, wie 
so eine sinnvolle Struktur in einer Software eigentlich auszusehen hat 
(ich könnte hier lediglich spekulieren und mutmaßen). Sprechen wir von 
oberflächlichen Dingen, also das, was der Endnutzer sieht, dann würde 
mir das leichter fallen, da ich durchaus sagen könnte, was man hier 
vielleicht besser strukturieren oder anordnen könnte. Sprechen wir 
dagegen vom Hintergrund, also das was sich softwaretechnisch alles 
abspielt, was der Endnutzer nicht sieht, dann fehlen mir dazu natürlich 
bisher noch die Kenntnisse.

W.S. schrieb:
> 3. Kenntnis der formalen Schreibweise einer Programmierspeache, also wie
> man etwas in der betr. Sprache formuliert. Das ist auch zum Verstehen
> beim Lesen von Quellcode vonnöten.
Richtig. Wie erwähnt oben, hadert es bei mir auch an Punkt 3.

: Bearbeitet durch User
von Oliver S. (oliverso)


Lesenswert?

Kaje F. schrieb:
> Allerdings kann ich bisher Algorithmen allgemein z.B. nicht mathematisch
> formulieren oder in einer Programmiersprache umsetzen

Wenn du noch überhaupt keine Programmiersprache beherrschst, warum dann 
gerade C?

In C programmiert man doch nur noch, weil die Umstände einen dazu 
zwingen. Hat man die Wahl, gibt es sehr viel Schöneres. Denn wie ja 
weiter oben schon angemerkt wurde, hat sich die Welt seit der Erfindung 
von C weitergedreht.

Oliver

von W.S. (Gast)


Lesenswert?

Kaje F. schrieb:
> Wir sprechen hier von Heuristik? Ja, in der Hinsicht habe ich einige
> Erfahrung, also was das Finden von Lösungen zu Problemen angeht.
> Allerdings kann ich bisher Algorithmen allgemein z.B. nicht mathematisch
> formulieren oder in einer Programmiersprache umsetzen bzw. solche
> Ausdrücke lesen und verstehen, da die Sprache mir unbekannt ist.

Ähem... nein. Wir (zumindest ich) spreche hier nicht von Heuristik. 
Das wäre etwa so, als wenn du "Germanistik" sagtest, wenn ich über 
Lösungsansätze wie z.B. das Horner-Schema reden würde. Bloß weil ich 
dabei die deutsche Sprache gebrauche.
Ich gebe dir mal 2 Beispiele, eines sozusagen Low-Level aus 
mathematischer Sicht und ein zweites vom gegententeiligen Ende:
1. Als ich mit den PIC16 Controllern anfing, mißfiel mir der damalige 
'PICALC' von Microchip so sehr, daß ich mir nen eigenen Assembler für 
diese µC schrieb. So ein Programm(chen) beinhaltet einige Algorithmen 
wie z.B. wie man Marken, Mnemonics und Parameter im Quelltext erkennt 
und wie man Ausdrücke in Parametern auseinander nimmt und wie man 
Markennamen mit zugehörigen Adressen sozusagen buchhalterisch führt und 
so weiter.
2. Als ich für den Empfang von Radiosignalen begann, mir digitale 
Bandfilter zu schreiben, habe ich lange Zeit daran gekaut, wie man 
Bandfilter mit gleichzeitiger Phasendrehung schreibt, weil man das für 
den Empfang von SSB Aussendungen benötigt.

In beiden Beispielen ist die zum finalen Schreiben des Quelltextes 
benutzte Programmiersprache nebensächlich. Es kommt vielmehr darauf an, 
wie man das jeweilige Problem angeht und löst. So etwas kann man auf 
verschiedene Arten schriftlich machen. Struktogramme, 
Programmablaufpläne oder reine Prosa gehen.

Ich habe so den Eindruck, daß es für dich am besten wäre, das 
mittlerweile recht alte Buch "Arithmetische Algorithmen der 
Mikrorechentechnik" von Lampe,Jorke,Wengel zu lesen. Das ackert zwar 
letztlich in Assembler auf dem Z80 herum, ist aber im Grunde 
numerisch-mathematisch angelegt und behandelt arithmetische Algorithmen 
recht gründlich. Allerdings ist dort von C kein Wort zu finden. Aber 
bedenke, daß die Grundlagen eben die Grundlagen sind für alles, was man 
darauf aufbauen kann.

Ansonsten rate ich dir, zunächst erstmal die Begleitbücher zu Borlands 
Pascal 7 zu besorgen und mit dem Programmieren in Pascal mittels des 
aktuellen Delphi-Radstudios von Embarcadero zu beginnen. Anschließend 
schaust du dir die Sprachdefinition von C an.

W.S.

von Ick blick s nett (Gast)


Lesenswert?

Warum heute in C einsteigen? Back to the Dampfmaschine?

von jens (Gast)


Lesenswert?

Pandur S. schrieb:
> Der Standard fuer C waere eigentlich : Kernigham & Ritchie

Auch C entwickelt sich weiter? Ist dann noch ein Buch von 1970 
empfehlenswert?

von ThomasW (Gast)


Lesenswert?

jens schrieb:
> Auch C entwickelt sich weiter? Ist dann noch ein Buch von 1970
> empfehlenswert?

um C zu lernen finde ich es auch heute noch empfehlenswert (nach dem 
Buch wirst Du auch modernen C-Code lesen und verstehen können), um 
heutzutage Programmieren zu lernen eher nicht!

von klammern (Gast)


Lesenswert?

Stellt euch vor, ein Physikprofessor würde seinen Studenten sagen "Liest 
bloss keine Originalveröffentlichungen von Einstein oder Planck - das 
Zeug ist hundert Jahre alt!".

Darum ist Informatik auch keine Wissenschaft ;-) Und die theoretische 
Informatik - das ist einfach nur angewandte Mathe.

Der Rest erfindet immer wieder das Rad neu. Und es ist jedes mal noch 
runder als das Alte ;-)

von Oliver S. (oliverso)


Lesenswert?

jens schrieb:
> Pandur S. schrieb:
>> Der Standard fuer C waere eigentlich : Kernigham & Ritchie
>
> Auch C entwickelt sich weiter? Ist dann noch ein Buch von 1970
> empfehlenswert?

Nein, natürlich nicht. Abgesehen davon, daß die erste Ausgabe erst 1978 
erschien, wurde die auch nicht empfohlen.

Und wie schon gesagt wurde, ist die Frage die falsche. Wenn es darum 
geht, modernes Programmieren zu lernen, lernt man gar kein C, wenn es 
(danach) darum geht, C zu lernen, gehen die Grundlagen auch mit dem K&R.

Oliver

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

klammern schrieb:
> Stellt euch vor,...

Nanana, die Naturgesetze gab es schon seit ewig, bloß die Leute hatten 
die noch nicht gekannt. Das ist der prinzipielle Unterschied zwischen 
Naturwissenschaften und Ingenieurswissenschaften.

Aber Programmiersprachen sind kein Teil der Ingenieurswissenschaften. 
Und schon gar nicht haben sie etwas mit Naturwissenschaften zu tun.

K&R steht für das C, was vor ANSI-C war. K&R sollte inzwischen gründlich 
in der Versenkung verschwunden sein.

W.S.

von udok (Gast)


Lesenswert?

W.S. schrieb:
> Aber Programmiersprachen sind kein Teil der Ingenieurswissenschaften.
> Und schon gar nicht haben sie etwas mit Naturwissenschaften zu tun.
>
Was aber nichts daran ändert, das C sich bewährt hat.
Die Sprache ist einfach zu lernen, und die Tools und Bibliotheken sind 
sehr stabil.

> K&R steht für das C, was vor ANSI-C war. K&R sollte inzwischen gründlich
> in der Versenkung verschwunden sein.

Und warum?

Das wichtige am Ansi Standard 1990 ist eigentlich nur, das C ab da
ein offizieller Standard ist.

Inhaltlich hat sich nicht viel geändert, vor allem nichts was Compiler 
nicht schon Jahre zuvor unterstützt hatten.

Die neuere K&R Edition richtet sich übrigens am Ansi Standard aus.
Das sind gerade mal 200 Seiten die keine Fragen offenlassen.

Im Vergleich dazu hat das 2013 Stroustrup Standard C++ Buch 1300 Seiten,
und es bleiben nachher sehr viele Fragen offen.
Eigentlich müsste man am Ende gleich wieder von vorne zu lesen anfangen.

Alleine die eigentlich triviale Frage, wie man ein Objekt
richtig kopiert, füllt viele Internetseiten...

von Mombert H. (mh_mh)


Lesenswert?

udok schrieb:
> Die neuere K&R Edition richtet sich übrigens am Ansi Standard aus.
> Das sind gerade mal 200 Seiten die keine Fragen offenlassen.

Ich bin auch der Meinung, dass es sich lohnt, den K&R 2ed zu lesen. Aber 
der lässt schon noch viele Fragen offen. Selbst der Standard mit ~700 
Seiten lässt Fragn offen.

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Apollo M. schrieb:
> "C Programming - A Modern Approach", K. King

Mombert H. schrieb:
> Ich bin auch der Meinung, dass es sich lohnt, den K&R 2ed zu lesen.

"C Programming - A Modern Approach", K. King ist eher das bessere buch, 
umfangreicher und mit vielen beispielen sowie c99 standard mit 
abgedeckt.

von Mombert H. (mh_mh)


Lesenswert?

Apollo M. schrieb:
> Mombert H. schrieb:
>> Ich bin auch der Meinung, dass es sich lohnt, den K&R 2ed zu lesen.
>
> "C Programming - A Modern Approach", K. King ist eher das bessere buch,
> umfangreicher und mit vielen beispielen sowie c99 standard mit
> abgedeckt.

Manchmal ist umgangreicher nicht besser, Mehr als 800 Seiten finde ich 
für ein C-Buch schon etwas viel. Mit 200 Seiten mehr ist man schon beim 
"Der C++ Programmierer" ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.