Besser in C werden



  • Moin,
    ich bringe mir seit etwa einem halben Jahr Die Programmiersprache C bei, einfach deshalb, weil ich weg von der Objektorientierung wollte(Java war meine erste Programmiersprache).
    Ich finde, man muss erst mal eine Prozedurale Programmiersprache beherrschen um dann die Vorteile von einer OO-Sprache zu erkennen.
    Nun habe ich bereits jedes Kapitel aus dem Buch "C Programmieren lernen für Dummies" abgearbeitet.
    Dennoch kann ich kein Textbasiertes Spiel programmieren oder eine Datenbank programmieren oder einen Gerätetreiber.
    Mir fehlt es irgendwie an Übung und oft weiß ich gar nicht, ob mein Code nicht irgendwie Mist ist.
    Am liebsten würde ich zusehen, wie ein anderer ein Spiel in C programmiert, aber im Internet finden sich überhaupt keine in C geschriebenen Quellcodes.
    Ich nicht, wie es nun weitergehen soll.
    Mein Ziel ist es, ein eigenes Textbasiertes Spiel in C zu programmieren und auch sicher bzw. selbstbewusst mit der Sprache umzugehen.
    Ich möchte auch eines Tages ein C Experte werden, der dauernd Aufträge bekommt, z.B. Treiber Programmierung, Open Source Programme, GNU/Linux, etc.

    Welchen Weg muss ich einschlagen um erfolgreich mit C zu werden?
    Ich hoffe ihr habt mich so einigermaßen verstanden, worauf ich hinaus will.

    Danke schonmal



  • Sand_am_Meer schrieb:

    Mir fehlt es irgendwie an Übung

    Beantwortet doch einfach schon alles. Wenn man besser werden will heißt es üben, üben, üben. Von nichts kommt nichts.
    Und wenn du nicht weißt ob dein Code was ist, poste ihn im Forum und lass darüber diskutieren.



  • Sand_am_Meer schrieb:

    Nun habe ich bereits jedes Kapitel aus dem Buch "C Programmieren lernen für Dummies" abgearbeitet.
    Dennoch kann ich kein Textbasiertes Spiel programmieren oder eine Datenbank programmieren oder einen Gerätetreiber.

    lol
    War das denn die Zielstellung des Buchautors?

    Am liebsten würde ich zusehen, wie ein anderer ein Spiel in C programmiert, aber im Internet finden sich überhaupt keine in C geschriebenen Quellcodes.

    youtube + "SDL game programming"
    sollte für dich erstmal reichen. Aber Vorsicht, die Herren dort stümpern ziemlich oft wenn es um C geht, du solltest auf jeden Fall mehrere verschiedene Autoren anschauen. Z.B. den Einstieg in verschiedene IDE kannst du dort lernen.

    Wichtig ist dass du begreifst, dass man in C zwar prinzipiell alles selbst programmieren kann, es aber nicht sollte, da es gerade für C tonnenweise fertige und oft auch gut abgehangene Bibliotheken gibt, für jedes nur erdenkliche Anwendungsgebiet.
    Insofern ist

    Mein Ziel ist es, ein eigenes Textbasiertes Spiel in C zu programmieren und auch sicher bzw. selbstbewusst mit der Sprache umzugehen.

    ein hehres Ziel, und den Umgang zur Einbindung externer C Bibliotheken in eigene Programme kann man damit ganz gut erlernen (und später dann auf andere Dinge z.B. Treiber ausweiten).
    http://lazyfoo.net/tutorials/SDL/index.php

    Ich möchte auch eines Tages ein C Experte werden

    s.o.
    C allein ist relativ überschaubar angelegt, wenn man es denn einmal verstanden hat, leider kolportieren die meisten selbsternannten C-Profis, sie hätten C verstanden;
    jahrelanger täglicher praktischer Umgang mit C ist unumgänglich - ignoriere alles, was anderes behauptet

    Welchen Weg muss ich einschlagen um erfolgreich mit C zu werden?

    C selbst ist wie gesagt nur das Werkzeug, du musst diverse Kenntnisse über Compiler, IDE, gängige Plattformen aufbauen - die meiste Zeit wirst du - bei neuen Projekten - aber immer in die Recherche nach passenden schon vorhandenen fertigen Bibliotheken stecken müssen, und wenn du dann eine gefunden hast, musst du dich an deren Gepflogenheiten gewöhnen und dich nicht von deren Umfang erschlagen lassen, denn meist brauchst du nur einen sehr kleinen Anteil der jeweiligen Bibliothek (SDL ist ein Beispiel, WinAPI ein weiteres)



  • Sand_am_Meer schrieb:

    Welchen Weg muss ich einschlagen um erfolgreich mit C zu werden?
    Ich hoffe ihr habt mich so einigermaßen verstanden, worauf ich hinaus will.

    Also mein Vorschlag wäre jetzt, dass du dir "Sedgewik: Algorithmen in C" kaufst bzw. ausleihst und alles, was das so drin interessant sein könnte, mal abtippst und bisschen damit rumspielst.
    Danach kaufst oder leihst du dir "Tannenbaum: Moderne Betriebssysteme" und arbeitest das durch.
    Und wenn du dann so weit gekommen bist kommen "Ehses et al.: Systemprogrammierung unter Unix/Linux" und/oder "Petzold: Windows-Programmierung" dran.

    Naja und dann kannst du dich mal so langsam an die interessanten Dinge machen.

    Was dein Textadventure betrifft: Hier solltest du dir erst einmal Gedanken machen, wie das überhaupt ablaufen soll, weil der programmiertechnische Umfang nicht sonderlich weit über printf und scanf hinaus geht. Viel wichtiger ist also Fantasie.



  • Falls du ein größeres Projekt vorhast oder mit anderen zusammen arbeitest ist gewöhnlich auch die Erstellung eines Planes vor dem programmieren sinnvoll.
    Was soll wann wo wie passieren. Das kann man z.B mit mit UML-Diagrammen machen.



  • Sand_am_Meer schrieb:

    Moin,
    ich bringe mir seit etwa einem halben Jahr Die Programmiersprache C bei, einfach deshalb, weil ich weg von der Objektorientierung wollte (Java war meine erste Programmiersprache).

    Objektorientierung ist doch gar nicht so übel. Außerdem kannst du auch in Java prozedural coden. Machste einfach alle Funktionen static und packst alles in eine Klasse. Dann hast du noch einen "Namespace", aber kein OOP mehr. 🙂



  • Ich habe nach 2 Wochen C Kurs NCD (Norton Change Directory) nachgebaut.
    Ist alles eine Frage des Talents,



  • EOP schrieb:

    Ich habe nach 2 Wochen C Kurs NCD (Norton Change Directory) nachgebaut.
    Ist alles eine Frage des Talents,

    Ich habe damals PPP und TCP/IP in C nachgebaut, um meinen ollen C64 internetfähig zu machen. War zwar nicht völlig RFC-konform, hat aber tatsächlich funktioniert. Habe aber viel länger gebraucht als 2 Wochen. 😞



  • EOP schrieb:

    Ich habe nach 2 Wochen C Kurs NCD (Norton Change Directory) nachgebaut.
    Ist alles eine Frage des Talents,

    Der Typ, der den Midnight Commander geschrieben hatte, sagte auch, die Portierung des Norton Commander nach C war sein C-Einstiegs/Lernprojekt.

    Norton (und Kollegen) hatten selbst noch gut dokumentierte Assemblerlistings von Programmen wie Lotus 1-2-3 zur Verfügung.

    Zum Thema Textadventure fällt mir noch ein, dass Java nicht C ist und umgekehrt.
    Bei C sind Textadventures eher das allererste, was sich aufdrängt.
    Das Buch C Programmieren Lernen für Dummies legt dem keine Steine in den Weg, eher umgekehrt.



  • nachtfeuer schrieb:

    Bei C sind Textadventures eher das allererste, was sich aufdrängt.

    Bei mir waren das Hex-Editoren, egal in welcher Programmiersprache und auf welchem Homecomputer. 🙂



  • Fricky667 schrieb:

    nachtfeuer schrieb:

    Bei C sind Textadventures eher das allererste, was sich aufdrängt.

    Bei mir waren das Hex-Editoren, egal in welcher Programmiersprache und auf welchem Homecomputer. 🙂

    wobei es etwas schade ist, dass Miguel de Icaza nicht auch noch den (von Norton) ins Programm genommen hatte, die in Linuxen wirken durch die Bank recht banal oder überbloatet und gar nicht in C.



  • Wade1234 schrieb:

    Sand_am_Meer schrieb:

    Welchen Weg muss ich einschlagen um erfolgreich mit C zu werden?
    Ich hoffe ihr habt mich so einigermaßen verstanden, worauf ich hinaus will.

    Also mein Vorschlag wäre jetzt, dass du dir "Sedgewik: Algorithmen in C" kaufst bzw. ausleihst und alles, was das so drin interessant sein könnte, mal abtippst und bisschen damit rumspielst.
    Danach kaufst oder leihst du dir "Tannenbaum: Moderne Betriebssysteme" und arbeitest das durch.
    Und wenn du dann so weit gekommen bist kommen "Ehses et al.: Systemprogrammierung unter Unix/Linux" und/oder "Petzold: Windows-Programmierung" dran.

    Naja und dann kannst du dich mal so langsam an die interessanten Dinge machen.

    ...

    Unser eigenes Operating System "PrettyOS" ist in C erstellt. Du kannst Dir das alles genau anschauen und im irc diskutieren.

    https://www.prettyos.de und https://www.c-plusplus.net/forum/f62

    Das könnte obige Odyssee vielleicht etwas abkürzen, denn mit diesen Brocken (s.o.) wirst du praktisch nicht zu Rande kommen. Vielleicht wäre es sogar besser, wenn Du ganz klassisch mit dem K & R startest. Dort lernst Du C richtig.


Log in to reply