8 Stimmen

Muss jeder Programmierer C können? Ja, warum? Nein, warum?

Seit dem ersten Jahr an meiner Universität beneide ich meine Kommilitonen (die hauptsächlich von einer technisch orientierten Berufsschule kommen) darum, dass sie C beherrschen. Ich komme von einem naturwissenschaftlich orientierten Lyzeum und hatte nie Programmiererfahrung oder -kurse, sondern nur ein paar Sommerarbeiten mit PHP, die ich in einem PHP-in-7-Stunden-Kurs gelernt hatte (und mein Interesse am Programmieren war noch sehr jung). Ich möchte wissen ... war es ein legitimer Neid? Muss jeder Programmierer C können? Vermittelt C ein tiefes Verständnis dafür, wie ein System funktioniert oder wie man programmieren muss? Ich weiß, dass man beim Programmieren in C ein tiefes Verständnis von Puffern, Speicher und so weiter haben muss. Ich möchte also Ihre Meinung dazu hören.

1voto

tsimon Punkte 8182

Alles Wissen ist nützlich, also ja, man sollte sie um ihr Wissen beneiden. Sie sollten auch Leute beneiden, die KI-Nerds sind und LISP usw. beherrschen. Die beste Mischung wäre eine dynamische Sprache, eine funktionale Sprache, SQL, eine einfache Sprache und eine objektorientierte Sprache.

Wenn Sie möchten, dass ein Fremder einige Empfehlungen ausspricht, würde ich Python, OCaml, SQL, C und Java/C# wählen. Aber, finden Sie Ihren eigenen Weg :-)

1voto

Tiberiu Ana Punkte 3595

Speicherzuweisung und Zeiger.

Wenn man sich mit C und C++ befasst hat, und sei es nur in der Schule, versteht man besser, was im Speicher passieren muss, damit man Objekte und Verweise in Umlauf bringen kann, und man bekommt ein besseres Verständnis dafür, was z. B. die Garbage Collection bedeutet.

Außerdem konnten wir in der Schule zunächst mit Pascal und dann mit C das "Programmieren" auf die alte Art und Weise lernen und dann zu fortgeschritteneren Sprachen übergehen (OOP usw.) obenauf davon.

0voto

Colas Nahaboo Punkte 749

Ich würde eine Metapher verwenden: C-Kenntnisse für Programmierer sind wie Lateinkenntnisse für (westliche Sprachen) Schriftsteller. Man braucht sie nicht, vor allem nicht, wenn man nur Sport-Kolumnen oder Kochrezepte schreibt, aber wenn man sein Handwerk verfeinern will, ist es etwas, das ich fast als obligatorisch ansehen würde. Aber für die tägliche Arbeit an gewöhnlicher Software ist es nicht nützlich. Oder für einen Autopiloten, der sich mit Mechanik auskennt, oder für einen Segler, der weiß, wie man Segel baut. Ab einem gewissen Grad an Fachwissen muss man wissen, wie die Dinge, die man benutzt, intern funktionieren.

Wenn Sie C lernen, versuchen Sie, das Zeigerkonzept zu beherrschen und die Art und Weise, wie sie auf die Hardware abgebildet werden. Das ist wirklich der Sinn des C-Lernens. Verbringen Sie keine Zeit mit dem Rest der Sprache.

0voto

Mike Woodhouse Punkte 50241

Müssen Sie C kennen/erlernen? Wahrscheinlich nicht, obwohl es das Erlernen einiger Konzepte erleichtern könnte. Es lohnt sich, etwas über Speicherzuweisung, Strukturen und Zeiger aller Art zu verstehen, und C ist eine gute Sprache, um dieses Verständnis zu erlangen. Außerdem ist, um ehrlich zu sein, "reines" C nicht wirklich komplex. Sicherlich ist es schwierig, es richtig zu machen, aber an sich nicht komplex. Ich würde dazu raten, sich einen Compiler zu besorgen, der kein C++-Compiler ist, denn das kann der Wahnsinn sein. (Ich erinnere mich gern an Quick C für Windows)

Müssen Sie C++ kennen/erlernen? Definitiv nicht.

0voto

Greg Punkte 16177

Vielleicht lag es nur an meiner besonderen Bildungserfahrung, aber ich hasste C/C++ im College und habe es seitdem nicht mehr angerührt. Ich bin dankbar dafür, dass ich die damit verbundenen Konzepte wie Zeiger und Speicherzuweisung kennen gelernt habe, aber der Versuch, mit den mir zur Verfügung stehenden Werkzeugen etwas zu erreichen, war mir zu mühsam, als dass ich mir die Mühe machen wollte. Ich hoffe, Ihre Erfahrungen sind besser.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X