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.
Antworten
Zu viele Anzeigen?Zusätzlich zu Gamecats Antwort habe ich die Erfahrung gemacht, dass bei der Arbeit mit Leuten, die andere Sprachen beherrschen, ein Unterschied in den Fähigkeiten zwischen denjenigen besteht, die C beherrschen, und denjenigen, die es nicht tun. Ich arbeite hauptsächlich in Java und weiß es sehr zu schätzen, dass ich vorher ein paar Jahre mit C gearbeitet habe. Darüber hinaus habe ich auch viel mit Perl gearbeitet. Ich würde sagen, dass es hilfreich ist, so viele Sprachen wie möglich zu kennen, um verschiedene Sichtweisen auf die eigene Arbeit zu erhalten und verschiedene Paradigmen anzuwenden.
C ist nicht meine bevorzugte Sprache, aber auch heute noch ist C überall zu finden.
Wenn ich einen kleinen Code in Lua mit LuaCurl mache, benutze ich eine C-Bibliothek. Lua selbst ist in C geschrieben.
Wenn ich eine Seaside-Webanwendung in Squeak Smalltalk entwickle, verwende ich eine in C generierte VM (die Squeak-VM wird in Smalltalk geschrieben und erzeugt dann C-Code als portablen Assembler).
Ich würde also nicht mit dem Programmieren in C beginnen (siehe dieses Thema für andere Möglichkeiten), aber als Programmierer ist es sehr nützlich, C zu kennen, auch wenn es nicht die Sprache Ihrer Wahl ist.
Ich glaube, das haben Sie.
Sprachen haben ihre eigene Entwicklung. Sie entwickelten sich im Rahmen einer sehr faszinierenden und schnellen Entwicklung von Computersystemen. Die CPU-Leistung wuchs, die Funktionen wuchsen, Assembler wurde komplexer... alles wurde leistungsfähiger.
Die Sache ist die: Wenn Sie nie die niedrigen und "einfachen" Anfänge gesehen haben und mit Hochsprachen wie C#, C++ oder Java beginnen, werden Sie die Eleganz oder die Backend-Perspektive dieser sehr mächtigen Sprachen nicht verstehen.
Ich denke, Sie brauchen LISP nicht zu lernen, weil es sich stark von den üblichen C-ähnlichen Sprachen unterscheidet. Aber ein wenig C ist ein Muss. Es ist für Entwickler von Entwicklern, sehr nah am Maschinencode. Du musst wissen, was die Maschine macht, wenn du sie programmierst.