C richtig lernen: ja oder nein?

7

Meine Hauptsprache ist PHP, aber ich habe etwas (nicht sehr viel) in anderen Sprachen programmiert.

Ich habe 2 Module für Apache in C geschrieben. Ich habe sie in C geschrieben, weil das eine der Sachen war, bei denen Leistung eine Rolle spielte. (projizierte Karten der Welt im laufenden Betrieb erzeugen und an .png ausgeben).

Diese Module funktionieren, und das ist, soweit ich die Qualität des Codes garantieren kann. Versteh mich nicht falsch, ich habe mein Bestes gegeben, um den richtigen Code zu schreiben, aber ich bin mir sicher, dass es viel Raum für Verbesserungen gibt.

Ich spiele mit dem Gedanken herum, die aktuellen Module zu verändern, aber ich habe keine Erfahrung mit Threaded-Software und Dinge wie das Jagen von Bugs nehmen mir immer noch eine Menge Zeit in Anspruch.

meine Frage ist:
Sollte ich zuerst lernen, richtig in C zu programmieren (bekomme eine Kopie Die C-Programmiersprache ) oder empfehlen Sie einen anderen Ansatz.

Hinweis:
Ich habe zur Zeit keine Pläne, C für Apache-Module zu verwenden

    
Jacco 06.02.2009, 16:23
quelle

14 Antworten

10

Wenn Sie es ernst meinen mit der Programmierung, dann ist Lernen C wirklich wichtig. Es ist die Grundlage vieler Sprachen und Sie werden viel Quellcode finden, der in C geschrieben ist. Das können wir jedoch von Java, C ++, etc .. wissen.

Ich denke, Sie sollten einfach weiter Ihre Module schreiben und neue Dinge lernen, wenn Sie sie brauchen. Das ist der beste Weg, Dinge zu lernen

    
user35978 06.02.2009, 16:27
quelle
4

Klingt so, als ob Sie schon ganz gut sind. Wie wäre es, diese Module zu öffnen und um Feedback von der Community zu bitten?

    
George Mauer 06.02.2009 16:28
quelle
4

Nur so viel lernen, wie Sie brauchen.

Sie müssen nicht die Zeit aufwenden, um die C-Programmiersprache zu lesen und alle Funktionen der Sprache zu erlernen, damit sie nützlich ist. Verwenden Sie die C-Programmiersprache als Nachschlagetool, so wie Sie es benötigen. Wenn Sie häufiger in c programmieren, investieren Sie die Zeit, um die Sprache gründlicher zu lernen.

    
lillq 06.02.2009 17:09
quelle
3

Der beste Weg, eine Programmiersprache zu lernen, besteht darin, sie zu benutzen. Es ist also ein guter Ansatz, vorwärts zu gehen und Apache-Module in C zu schreiben. Wenn Sie jedoch tiefer in diese Sprache eintauchen möchten, sollten Sie mehrere Dinge tun:

  • benutze die Sprache. Das hast du schon gemacht:)
  • lernen Sie die Sprache kennen. Die "Bibel" K & amp; R ist etwas, über das Sie zumindest etwas wissen sollten - Sie müssen nicht jedes Teil des Buches wissen, aber Sie sollten es verwenden, um zumindest eine Vorstellung von den Sprachfunktionen zu haben, die nicht vorhanden sind. zu oft benutzt. Es wird eines Tages hilfreich sein.
  • kooperiere mit anderen. Beteilige dich an einem Projekt mit anderen, damit andere deinen Code lesen und ihren Code lesen können. Open Source ist normalerweise ein guter Weg, dies zu tun, obwohl es auch andere Optionen gibt.

Ausgehend von meiner "Karriere" habe ich auch mit PHP angefangen und bin bei C. gelandet. Bücher (ich kann "Expert C Programming" von Peter van der Linden wärmstens empfehlen, der leider vergriffen ist) werden Ihnen einen tieferen Einblick geben Verständnis der Inneren der Sprache und machen Sie so zu einem besseren Programmierer. Ich kenne nicht jede Seite von K & R, habe es aber nie bereut, es zu benutzen und mich damit vertraut zu machen (ich glaube, ich habe es eher benutzt als gelesen - es ist kein Lehrbuch, sondern eine Referenz meiner Meinung nach).

    
bluebrother 06.02.2009 19:32
quelle
2

Ich würde dieses Buch wärmstens empfehlen. Auch wenn du dich in Zukunft nicht mehr mit C beschäftigst, weißt du nie, ob du es brauchst und das ist ein perfektes Buch, um mehr Erfahrung / Wissen für C mit zu bekommen.

Und wie oben erwähnt, ist C die Grundlage vieler anderer populärer Sprachen. Selbst wenn Sie nicht mehr mit C anfangen, können Sie die Verwendung eines Nachfolgers beenden.

    
Josh Mein 06.02.2009 16:27
quelle
1

Selbst wenn Sie in Zukunft nicht planen, in C zu programmieren, oder sogar Sie sicher sind, dass Sie nie in einigen c-verwandten Sprachen entwickeln müssen, würde ich das K & amp; R Buch ohnehin aus historischen Gründen empfehlen: es ist a Gute Praxis, um von den bekannten Meistern Ihrer Kunst zu lernen.

    
gldm 06.02.2009 16:38
quelle
1

Ich denke, die echten Probleme, mit denen Sie konfrontiert sind, sind:

1) ist C für die Aufgabe geeignet, die Sie gerade machen?
2) Sollten Sie Ihre Kenntnisse der C-Sprache verbessern, wenn sich die Anforderungen ändern?

Für Frage 1 gibt es vielleicht Alternativen zu C für Ihre Anwendung. Sie müssen .png Bilder ausgeben, und Sie müssen Threading verwalten: vielleicht Java oder Python sind bessere Alternativen zu C (.png Ausgabe ist ein paar Zeilen in beiden Sprachen, während ich denke, dass Sie externe Bibliotheken und dergleichen in C benötigen. Gleiche Sache zum Einfädeln.

Wenn Sie bei Frage 2 weiterhin C verwenden, ist es wahrscheinlich besser, die Sprache genauer zu studieren, wenn Sie Fallstricke vermeiden wollen, wenn die Komplexität zunimmt (besonders bei einer niedrigen Programmiersprache wie C).

    
Gabriele D'Antona 06.02.2009 18:12
quelle
0

Ich würde sagen, es tut nie weh, etwas richtig zu lernen. Und ein solides Verständnis von C wird definitiv Ihr Verständnis von Programmierung fördern.

Es spielt keine Rolle, ob Sie die Sprache selbst in der Zukunft benutzen werden, aber um zu verstehen, was unter der Haube geschieht, ist es unbezahlbar.

    
Treb 06.02.2009 16:31
quelle
0

Ich würde sagen, dass es für jeden Programmierer wichtig ist, die in C wichtigen Low-Level-Konzepte wie Pointer und manuelles Speichermanagement zu beherrschen. Dies gibt Ihnen einen enormen Einblick, wie die Dinge wirklich funktionieren und ist sogar nützlich, wenn Sie auf höheren Ebenen programmieren. Wenn Sie jedoch C nicht regelmäßig verwenden, sehe ich keinen Sinn darin, die gesamte Sprache wirklich zu beherrschen. Zum Beispiel würde ich nicht zu viel Zeit mit der Standardbibliothek verbringen oder lernen, wie man nicht-triviale Projekte in C gestaltet. Bleiben Sie einfach bei den Schlüsselkonzepten.

    
dsimcha 06.02.2009 16:45
quelle
0

Ich bin von BASIC zu FORTRAN dann Java fortgeschritten und verwende hauptsächlich hauptsächlich Kombinationen von PHP und Perl. Ich habe C nie wirklich benutzt, abgesehen davon, dass ich mich mit Apache-Modulen herumschlagen musste, aber die Sprache, in der man lernt, lernt man am besten, indem man es tut.

Verwenden Sie ein Buch, um Sie in die Sprache einzuführen, aber lernen Sie es praktisch.

    
Roon 06.02.2009 16:51
quelle
0

Ich würde definitiv die Programmiersprache C (K & amp; R) empfehlen. Es ist eine sehr prägnante und nützliche Referenz zu C. Wenn Sie etwas von K & amp; R etwas hart lernen, würde ich nicht zögern, ein sanfteres Buch über die Sprache zu bekommen, aber K & amp; R ist das Buch, auf das Sie zurückkommen werden wenn etwas nicht sicher ist.

Es ist auch erwähnenswert, dass die Threaded-Programmierung eine völlig neue Welt potentieller Probleme eröffnet, also würde ich definitiv empfehlen, ein Buch zu bekommen, um zu lernen, wie man das auch richtig macht.

    
arnsholt 06.02.2009 17:44
quelle
0

Lesen Sie das Buch. Du wirst froh sein, dass du es getan hast. Es wird Ihnen viele Dinge vorstellen, auf die Sie sonst nicht stoßen würden. Sie werden mit allen Funktionen der Sprache vertraut gemacht, anstatt über sie zu stolpern, wenn Sie denken, dass Sie sie brauchen.

    
Rob K 06.02.2009 18:09
quelle
0

Vielleicht bin ich ein bisschen modernistisch, aber wenn Sie C richtig lernen, würde ich nicht empfehlen, mit K & amp; R zu beginnen. Warum einen veralteten Standard studieren? Nimm dir ein Buch, das dir den C99-Standard beibringt und lerne daraus. Da bist du schon ein bisschen vertrauter vielleicht C Primer Plus oder ähnliches.

    
nabiy 08.02.2009 01:55
quelle
-2

Wenn Sie C nicht für irgendetwas anderes verwenden, würde ich empfehlen, zu Java zu wechseln, da die Nebenläufigkeit viel einfacher ist (zumindest meiner Meinung nach).

Es hat auch eine sehr große Standardbibliothek, mit der man sehr leicht arbeiten kann und die Ihre Entwicklung wahrscheinlich erheblich beschleunigen wird.

    
samoz 06.02.2009 16:26
quelle