Après cinq ans de professionnelle en Java (et dans une moindre mesure, Python) programmation et doucement en sentant mon CS de l'éducation de s'éclipser, j'ai décidé que je voulais élargir mes horizons / utilité générale pour le monde et faire quelque chose qui se sent de plus en plus (pour moi) comme j'ai vraiment une influence sur la machine. J'ai choisi d'apprendre le C et de la programmation Unix, depuis que j'ai le sentiment que c'est là que la plupart des problèmes intéressants sont.
Mon objectif final est d'être en mesure de le faire professionnellement, si pour aucune autre raison que le fait que je dois passer de 40 à 50 heures par semaine sur le travail qui paye les factures, de sorte qu'il peut ainsi également être le type de codage que je veux apprendre à mieux. Bien sûr, vous n'avez pas obtenir embauché pour faire des choses que vous n'avez pas à ne pas avant, donc pour l'instant je suis ramping up sur mon propre.
À cette fin, j'ai commencé avec le K&R, qui a été une grande ressource, en partie en raison de la exercices, répartis tout au long de chaque chapitre. Après que j'ai déménagé sur des Systèmes Informatiques: Un point de vue du Programmeur, suivi par une dizaine de chapitres de Advanced Programming in the Unix Environment. Quand je suis fait avec ce livre, je vais lire Unix Réseau de Programmation.
Ce que je suis absent dans le syndrome de Stevens livres est l'absence de problèmes de programmation; ils sont principalement document de la fonctionnalité et de fournir des exemples, avec un peu de fin de chapitre les questions suivantes. J'ai l'impression que je voudrais bénéficier de beaucoup plus de le remettre en cause l'utilisation de la connaissance dans chaque chapitre ala K&R. je pourrais écrire des programme de test pour chaque fonction, mais c'est moins souhaitable que (1) je serais probablement moins motivé que si j'avais été à la hausse pour certaines attaques externes, et (2) je vais naturellement qu'à penser à l'utilisation de la fonction en utilisant les méthodes qui ont déjà eu lieu pour moi.
Donc, j'aimerais obtenir quelques recommandations sur la façon de pratiquer. Évidemment, mon premier choix serait de trouver une ressource qui a Unix défis de programmation. J'ai également examiné de trouver et d'essayer de contribuer à l'open source, C projet, mais c'est un peu compliqué qu'il n'y aurait que des frais généraux à apprendre à utiliser le logiciel, puis l'apprentissage de la base de code. Le seul open-source en C, je pense que j'utilise régulièrement est Python, et je ne suis pas sûr de savoir comment facile qui serait de commencer.
Cela dit, je suis ouvert à toutes sortes de suggestions qu'il y a probablement des choses que je n'ai même pas pensé.