Wie lange C lernen? [closed]

Lesezeit: 8 Minuten

Benutzer-Avatar
Platzhalter

Ich bin ein C#-Programmierer und von den Vorteilen des Erlernens von C begeistert. Ich möchte mein Wissen über das zugrunde liegende Betriebssystem und die CPU vertiefen, den Schmerz der Speicherverwaltung verstehen, den die Garbage Collection wegkapselt, und meine High-Level-Programme im Allgemeinen verbessern Dank einer Anerkennung der Low-Level-Probleme, mit denen sich der Compiler in meinem Namen befasst.

Meine Frage ist, wie lange kann ich damit rechnen, die Sprache C zu lernen, um diese Vorteile zu nutzen?

Reichen ein paar Wochenenden, an denen ich das K&R-Buch von vorne bis hinten durchlese, aus, oder muss ich Zeit einplanen, um etwas Code zu kürzen? Muss ich Zeit damit verbringen, mich mit irgendwelchen Bibliotheken zu beschäftigen, oder reicht ein Verständnis der grundlegenden Konzepte in der Sprache aus, um meinen C#-Code zu verbessern?

Um es klar zu sagen, ich beabsichtige nicht, nennenswerte Programme in C zu schreiben. Mein Ziel ist es, mehr zu lernen aus die Sprache, als ein Experte in der Sprache zu werden.

  • Das Lernen von c hat nicht so viel mit dem Erlernen von Betriebssystemdetails zu tun, wie Sie denken.

    – Sam Liao

    21. Juli 2009 um 12:20 Uhr

  • @arsane: Interessante Beobachtung und eine, die Gegenstand einer kommenden Frage sein wird 🙂

    – Platzhalter

    21. Juli 2009 um 12:41 Uhr

  • @Wildcard: Wirklich, OS-Primitive haben nur eine Schnittstelle im C-Stil, mehr nicht. Code zur Verwendung von WinAPI sieht in Object Pascal (Delphi) und C sehr ähnlich aus.

    – scharfer Zahn

    21. Juli 2009 um 12:45 Uhr

  • aelinik.free.fr/c ; Lernen Sie es und konzentrieren Sie sich auf Ihre Ziele und Vorgaben.

    Benutzer285594

    1. November 2011 um 16:06 Uhr

  • Für C sind die Syntax, die reservierten Wörter und die Grammatik überraschend einfach. Es gibt nur ungefähr 35 reservierte Wörter, und die Sprache selbst ist überhaupt nicht komplex. Schließlich wurde es mit dem Begriff des einfachen, einfachen Minimalismus gefördert. Einfache Sprache, einfache Compiler und minimale Laufzeitanforderungen. Sie können die lernen Sprache (Nicht zu verwechseln mit der begleitenden Standardbibliothek, etwas, das passiert ständig auf dieser Seite) in ein paar Wochen. Das Erlangen von Sprachkenntnissen wird erheblich länger dauern, ebenso wie der fließende Umgang mit den Standardroutinen der Bibliothek.

    – WhozCraig

    22. Februar 2017 um 11:15 Uhr


C wird eine Woche dauern, um es zu lernen, und ein Leben lang, um es zu meistern.

  • Das stimmt, aber nur, weil sie es ständig ändern!

    anon

    21. Juli 2009 um 12:43 Uhr

  • @Neil Butterworth, wie wird C geändert?

    – Liran Orevi

    21. Juli 2009 um 13:20 Uhr

  • Bisher drei ziemlich unterschiedliche Sprachen: K&R C, C89 (alias ANSI C) und C99.

    anon

    21. Juli 2009 um 13:33 Uhr

  • Fast sicher wahr. Aber es muss ein Kontinuum an Wissen geben, das auf dem Weg zur Meisterschaft erlernt werden kann. In den frühen Stadien werden es allgemeine Konzepte sein, von denen ich hoffe, dass sie mir an anderer Stelle nützlich sein werden, in den späteren Stadien erwarte ich, dass das Wissen in den Bereichen esoterischer Arkana liegen wird. Dass ich mich auf diese Reise begeben werde, steht außer Frage – meine Frage bezieht sich darauf, wo ich aussteige!

    – Platzhalter

    21. Juli 2009 um 13:49 Uhr

  • Sie können mit C aussteigen, wie im Hotel California, Sie können jederzeit auschecken, aber Sie können niemals gehen.

    – Larry Watanabe

    21. Juli 2009 um 14:24 Uhr

Ein K&R-Buch zu lesen und keinen Code zu schreiben, ist wie ein Buch über Waffen zu lesen und nie wirklich zu schießen. Ja, Sie haben in einem Buch gelesen, dass es so funktioniert, aber Sie sind noch nie auf die typischen Probleme gestoßen, die dabei auftreten. Ohne Praxis ist solches “Wissen” sehr wenig wert.

Planen Sie ein, 2-3 Jahre damit zu verbringen, langsam kleine Programme zur Lösung verschiedener Aufgaben in C zu schreiben. Dies wird als echte Erfahrung zählen. C bietet eine verzögerte Belohnung für Ihre Bemühungen.

  • dem ich hinzufügen möchte: Der Schlüssel hier ist, ein kleines Projekt zu finden, das Sie machen möchten, und alles von Grund auf neu zu machen und den ganzen Weg zu lernen. Führen Sie nicht den Beispielcode einer anderen Person durch. Und mach es dir nicht so einfach, dass du nicht viele Zeiger verwenden musst 😉

    – David Markle

    21. Juli 2009 um 12:20 Uhr

  • @Dave: Das ist besser als nichts, aber das hilft Ihnen nur, einen sehr kleinen Teil von C zu beherrschen. Um wirklich wertvolle Erfahrungen zu sammeln, müssen Sie eine Handvoll verschiedener Aufgaben lösen.

    – scharfer Zahn

    21. Juli 2009 um 12:21 Uhr

  • C ist wirklich nicht so schwer. Ich habe K&R in ein paar Tagen gelesen, und das allererste Programm, mit dem ich danach gearbeitet habe, war ein Filter, um APL-Programme auf einem UNIX-Drucker zu drucken – das hat ungefähr 5 Tage gedauert. Ich würde mich selbst als C89-Experten einstufen, und ich schätze, dass ich mir all dieses Fachwissen in ungefähr 6 Monaten angeeignet habe.

    anon

    21. Juli 2009 um 12:23 Uhr

  • @ Neil. 6 Monate sind auch eine lange Zeit im Vergleich zu den wenigen Tagen zum Lesen des Buches. In meiner Einschätzung habe ich bewusst langsames Lernen berücksichtigt, anstatt Probleme intensiv zu lösen, wie es am Arbeitsplatz passiert.

    – scharfer Zahn

    21. Juli 2009 um 12:25 Uhr

  • Ich habe mir nie die Zeit genommen, zu verstehen, wie man UB bekommt – ich habe ein wenig Zeit damit verbracht, zu lernen, wie man es vermeidet.

    anon

    21. Juli 2009 um 12:38 Uhr

Ich bin mir nicht sicher, wie lange es dauert, eine Sprache zu lernen – es kommt wahrscheinlich auf den Einzelnen an. Aber ich bin mir ziemlich sicher, dass Sie keine lernen können, ohne Code darin zu schreiben und zu debuggen.

Wenn Sie K&R lesen und alles verstehen können, ist das ziemlich gut, da K&R so ziemlich die gesamte Sprache abdeckt.

Es ist jedoch sehr unterschiedlich, es zu lesen und zu verstehen. Sie sollten wahrscheinlich ein paar Durchgänge durch K&R machen und alle damit verbundenen Übungen machen, um sicherzustellen, dass Sie es wirklich wissen.

Selbst nachdem Sie all das durchgelesen haben, werden Sie weitere Monate damit verbringen, Hinweise auf die harte Tour zu lernen. Erwarten Sie viele Seg-Fehler. Positiv ist jedoch, dass Sie wirklich gut darin werden, Hex zu lesen!

Es gibt ein paar Vorbehalte, die die Sprache hat, die Sie auch herausfinden werden. Eine, die mir früher Probleme bereitete, ist das alles Zeiger haben die gleiche Größe (4 Bytes auf x86), unabhängig davon was sie zeigen auf. Ein char* hat die gleiche Größe wie ein void* und ein int*.

Es wird viel länger dauern, wenn Sie nur herumsitzen und abstrakte Fragen stellen und nicht wirklich eintauchen und es tun. Hast du eine Deadline oder so? Wie lange brauche ich, um Klavier zu lernen? Wen interessiert das, ich will nur etwas Lärm machen. So lernen Kinder so schnell. Es ist ihnen egal, ein Experte zu werden oder sogar gut. Sie spielen einfach gerne.

Wenn Sie einige interessante Dinge lernen möchten, versuchen Sie es auf jeden Fall auch mit Assembler. Viele Leute hassen es wirklich, aber das liegt nur daran, dass sie es nicht mögen, unzählige Stunden damit zu verbringen, nicht viel zu erreichen. Ich mag es einfach gut.

  • „Sie mögen es nicht, unzählige Stunden damit zu verbringen, nicht viel zu erreichen. Ich mag es ganz gut.“ Großartiges Zitat.

    – samoz

    21. Juli 2009 um 14:35 Uhr

Sie müssen auf jeden Fall Code schreiben – ich glaube nicht, dass Sie eine Sprache lernen können, ohne dies zu tun. K&R hat viele Übungen, die Sie üben können. Es ist schwierig abzuschätzen, wie lange es dauern wird, bis man gute Arbeitskenntnisse erlangt – früher habe ich so ziemlich die gesamte Sprache in 4,5 Tagen unterrichtet, aber das ist ziemlich intensiv. Ich würde ungefähr einen Monat vorschlagen, wenn Sie etwa eine Stunde am Tag arbeiten.

Bearbeiten: Ich muss zugeben, ich finde es ein bisschen deprimierend, dass so viele Leute C für so schwierig halten. K&R ist in meinem Exemplar 272 Seiten lang und deckt im Grunde alles ab, was Sie wissen müssen, einschließlich der Standardbibliothek. Gibt es ein Buch in irgendeiner anderen Programmiersprache, das den ganzen Kram so prägnant abdeckt? Ich glaube nicht, und der Grund dafür ist nicht, dass K&R irgendwie komprimiert ist (Brian Kernighan ist meiner Meinung nach DER größte technische Autor), sondern dass die Sprache einfach und leicht zu beschreiben ist.

  • „Sie mögen es nicht, unzählige Stunden damit zu verbringen, nicht viel zu erreichen. Ich mag es ganz gut.“ Großartiges Zitat.

    – samoz

    21. Juli 2009 um 14:35 Uhr

Benutzer-Avatar
Patrik McDonald

Ich habe das K&R-Buch von vorne bis hinten gelesen und würde nicht sagen, dass ich ein großes Verständnis von C habe. Etwas Zeit, um die Übungen in K&R zu machen, wäre von großem Nutzen.

Ich bin sicher, C-Bibliotheken würden Sie beim Schreiben von Programmen produktiver machen, aber wenn Sie nur daran interessiert sind, C zu lernen, dann können Sie alles, was Sie brauchen, selbst implementieren. www.projecteuler.net ist eine gute Quelle für Probleme (obwohl im Allgemeinen etwas mathematisch), für den Einstieg, wenn Sie Lust haben, etwas außerhalb der K^R-Übungen zu programmieren.

1032600cookie-checkWie lange C lernen? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy