Nach fünf Jahren professioneller Java (und in geringerem Maße auch Python) Programmierung und langsamem Gefühl, dass meine CS-Ausbildung nachlässt, beschloss ich, meinen Horizont/allgemeinen Nutzen für die Welt zu erweitern und etwas zu tun, das mehr (für mich) fühlt) Ich habe wirklich Einfluss auf die Maschine. Ich habe mich für C- und Unix-Programmierung entschieden, da ich glaube, dass viele der interessantesten Probleme darin bestehen.So üben Sie Unix-Programmierung in C?
Mein Endziel ist es, dies beruflich zu machen, nur aus dem Grund, dass ich 40-50 Stunden pro Woche für die Arbeit aufwenden muss, die die Rechnungen bezahlt, so kann es auch sein Art der Codierung möchte ich besser werden. Natürlich wirst du nicht angeheuert, Dinge zu tun, die du vorher nicht getan hast, also mache ich jetzt selbstständig.
Zu diesem Zweck begann ich mit K & R, die eine große Ressource teilweise aufgrund der Übungen in jedem Kapitel verteilt war. Danach ging ich weiter zu Computer Systems: A Programmer's Perspective, gefolgt von zehn Kapiteln von Advanced Programming in the Unix Environment. Wenn ich mit diesem Buch fertig bin, lese ich Unix Network Programming.
Was ich in den Stevens-Büchern vermisse, ist das Fehlen von Programmierproblemen; Sie dokumentieren hauptsächlich die Funktionalität und liefern Beispiele mit ein paar Fragen zum Ende des Kapitels. Ich fühle, dass ich viel mehr von der Herausforderung profitieren würde, das Wissen in jedem Kapitel zu verwenden. Ich könnte ein Testprogramm für jede Funktion schreiben, aber dies ist eine weniger wünschenswerte Methode, da (1) ich wahrscheinlich weniger motiviert wäre als wenn ich mich einer äußeren Herausforderung stellen würde, und (2) werde ich natürlich nur daran denken, die Funktion auf die Weise zu benutzen, die mir bereits eingefallen ist.
Also, würde ich gerne einige Empfehlungen bekommen, wie man übt. Offensichtlich wäre meine erste Wahl, eine Ressource zu finden, die Unix-Programmieraufgaben hat. Ich habe auch darüber nachgedacht, einen Beitrag zu einem Open-Source-C-Projekt zu leisten und zu versuchen, aber das ist etwas entmutigend, da es einen gewissen Overhead beim Lernen der Software geben würde, um dann die Codebasis zu lernen. Das einzige Open-Source-C-Projekt, an das ich denken kann, ist Python, und ich bin mir nicht sicher, wie leicht es wäre, damit anzufangen.
Das heißt, ich bin offen für alle möglichen Vorschläge, da es wahrscheinlich Dinge gibt, an die ich nicht einmal gedacht habe.
Ich möchte nur sagen, ich liebe es, solche Beiträge zu sehen, in denen du nicht einfach sagst: "Wie lerne ich C, habe aber gar nichts alleine gemacht?" Kudos. Upvote. – samoz
Lesen Sie zuerst: http://stackoverflow.com/search?q=code+kata. Zweitens, aktualisieren Sie Ihre Frage, damit sie nicht bereits beantwortet wird. Oder, möglicherweise, schließen Sie diese Frage, weil es ein Duplikat von einem oder mehreren von denen ist. –
Ich stimme nicht mit S.Lott überein, er sucht keine Anfängereinführung wie die meisten anderen Fragen. Sein Hintergrund ist anders und verdient ein anderes Thema und Antworten. – samoz