Où un programmeur Java expérimenté doit-il commencer pour maîsortingser le C?

Dans le style de Où doit commencer un programmeur C expérimenté pour maîsortingser Java? , Je vous pose la question inverse. J’ai beaucoup d’expérience dans Java et dans la programmation en général, mais j’aimerais prendre un peu de C (pour certains projets, le piratage m’intéresse). Existe-t-il un guide “rapide et sale” adapté aux personnes ayant déjà travaillé dans le domaine de la sécurité? Je préférerais des ressources gratuites en ligne mais apprécierais toutes les suggestions.

Il y a quelque temps, Joel Spolsky a déclaré que la programmation en C était essentielle pour tous les développeurs de logiciels . Dans cet article, il fait référence au livre de Kernighan et Ritchie , qui est le livre C accepté de tous les temps. Cependant, après avoir enseigné la programmation en C à l’aide de ce livre, c’est un problème pour l’étudiant occasionnel.

Cela dit, si vous avez déjà de l’expérience en Java, ce n’est pas vous.

Malgré tout, c’est un livre qui mérite d’être lu. Si rien d’autre, je le chercherais à la bibliothèque.

Ce tutoriel est un peu démodé (surtout par rapport à la norme ANSI C), mais si vous recherchez une mise à jour rapide de la syntaxe, ce n’est pas terrible.

Avec un peu de syntaxe de base (qui vous sera très familière), vous devriez pouvoir aller directement aux bibliothèques C. C’est là que la plupart des fonctionnalités dont vous aurez besoin seront de toute façon. Je pense que vous constaterez que la plupart du matériel nécessaire pour “maîsortingser” C se trouvera en réalité dans ces bibliothèques de support.

Pour être complet, si vous avez besoin d’un compilateur réel:

Dans mon travail quotidien, mon environnement de développement est partagé entre Linux (Fedora 14) et Windows 7. Dans les deux cas, j’utilise gcc à l’occasion lorsque j’ai besoin d’écrire du code C. Bien que gcc soit une norme acceptée dans l’installation de Fedora, vous utiliserez sous Windows MinGW ou Cygwin , l’une ou l’autre pouvant vous donner gcc.

Si j’enseignais toujours la programmation en C, je recommanderais une combinaison de ce qui précède aux étudiants autodirigés de niveau avancé.

Bien que je sois un peu à la base pour un développeur expérimenté, j’ai trouvé que la ” Programmation C – Une approche moderne ” de KN King était plutôt bonne. C’est une introduction douce mais approfondie à la langue et à certaines des bibliothèques de clés dont vous aurez besoin. J’ai lu la première édition du livre; le lien fourni est pour la deuxième édition.

Commencez par installer Linux , GCC et suivez un bon tutoriel .

Bien que ce soit très introductif au début, lisez le K & R et faites des exemples d’exercices. Ils deviennent très difficiles après un certain temps et vous donneront une bonne compréhension des pointeurs, des structures et d’autres aspects du C qui diffèrent de Java. Des solutions pour chaque exercice sont disponibles en ligne.

Consultez également les conférences youtube de Stanford pour leur classe CS107, Programming Paradigms. Toutes les conférences sont disponibles en ligne , ainsi que les devoirs et autres supports de cours.