Was lernt man durch c lernen an konzepten?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du kannst lernen, wie schnell etwas beim Programmieren falsch laufen kann und wie akribisch du ohne Ownership-System oder Garbage-Collector auf deine Ressourcen achten musst.

Auch, wie lustig man Sprachen zusammenbauen kann. Besonders in C++ hast du eigentlich drei oder mehr Sprachen in einer: c, c++98 - ~c++11 & ~c++14 - c++23. Alle arbeiten nach komplett anderen Paradigmen. Aber auch c hat seine Eigenheiten.

Klar lernst du damit auch viel über Computer. Am ehesten Seite an Seite mit einem guten Lehrbuch und viel Experimentierfreude. Ich kann jedem empfehlen, sich zumindest so damit auseinanderzusetzen, c Projekte verstehen und mit etwas Mühe DSA Probleme lösen zu können.

Heute ist es als Anfänger aber leichter, sich damit in den Fuß zu schießen, als Performance herauskitzeln zu können.

Ob es jetzt für dich in deiner aktuellen Position die richtige Wahl ist, kannst nur du wissen. Einfach ausprobieren und horchen, wie du dich damit fühlst ^^
Besonders wenn du dich auskennst, kann es immer wieder sehr nett sein, sich etwas zurückzulehnen und in c zu schreiben. Lernen kann auch Spaß machen, muss aber mit deinem Mindset und Zielen vereinbar sein.

Ich wünsche dir jedenfalls alles Gute ~

Hardwarenah programmieren muss man heute nicht mehr. Ich musste es noch, weil es nur MS-DOS gab und noch kein Windows und weil man die Treibersoftware für Spezialhardware, also A/D- und D/A-Wandler, selber entwickeln musste. Ich musste zweierlei:

Um Diagramme darzustellen musste ich Bitmuster ins Video-RAM schreiben und so einzelne Pixel einschalten und aus diesen nach dem Briesenham-Algorithmus Kurven zeichnen.

Mit dem PC sollten Wellen und Bewegungen schwimmender Objekte gemessen werden, die als analoge Spannungen verfügbar waren, und es sollte die Wellenmaschine im Versuchsbecken mit einer analogen Spannung angesteuert werden, für irregulären Seegang oder Wellenpakete. Also bekam der PC A/D-Wandler und D/A-Wandler. Treibersoftware dazu gab es damals noch nicht zu kaufen. Ich musste selber programmieren, in welches Register man etwas schreiben muss um etwas zu bewirken und aus welchen Registern die Messdaten ausgelesen werden.

Heute ist das nicht mehr nötig. C hat aber immer noch den Vorteil der Einfachheit. Andere Programmiersprachen sind objektorientiert, die Datenstrukturen nennen sich Klassen und müssen als Membervariablen auch die Unterprogramme enthalten, mit denen sie verändert werden. Nach dem Prinzip: Jeder Elefant muss das Gewehr zu seiner Erschießung mit sich führen. In C nicht, was anderswo Klassen heißt nennt sich in C Structs und hat nur Daten, aber keinen ausführbaren Code als Membervariablen. Die Unterprogramme (Routinen, in anderen Programmiersprachen auch Methoden genannt) kann man schön übersichtlich untereinander ins Quellfile schreiben, oder wenn man sie für vielerlei Programme schon entwickelt hat linkt man sie aus einer Library dazu.

Ich liebe C und hab Jahrzehntelang als Ingenieurwissenschaftler meine Algorithmen in C geschrieben. Mein Nachfolger (bin in Rente) findet den Quellcode sehr übersichtlich und informativ, schreibt aber dennoch vieles in Python um.

Zeiger, manuell Speicherverwaltung und nullterminierte Zeichenketten.

Es gibt auch Inline-Assembler, aber damit kenne ich mich nicht so aus.

C ist abstrakter als das hardwarenahe Assembler, aber unter wegen der manuellen Speicherverwaltung, die mit Zeigern funktioniert, eher weniger abstrakt.

Woher ich das weiß:eigene Erfahrung
Inkognito-Nutzer   26.04.2024, 09:15

Was hat es mit dieser Hardware Kenntniss die man braucht auf sich?

Hat das mit diesen "zeigern" zu tun?

0