Quel language choisir ?
|
23-12-2011, 22h36
Message : #2
|
|
spin
Contributeur Messages : 325 Sujets : 15 Points: 38 Inscription : Nov 2011 |
Quel language choisir ?
Tu voudrais faire quoi en programmation ?
Un langage polyvalent, je pense au C, mais pour l'utiliser il faut avoir des compétences préalables : Il faut avoir une idée de l'agacement de la RAM, il faut savoir à peu près comment l'OS travaille etc. (le C fut conçu pour l'écriture de systèmes d'exploitation à la base, il s'adresse donc à des programmeurs qui ont une connaissance de la plupart des cachoteries des systèmes). Cependant, avec le temps, le C s'est tellement imposé qu'il a finalement trouvé une vocation plus généraliste. Il est donc possible de l'apprendre comme premier langage, mais il faut alors à côté apprendre un peu comment l'OS fonctionne, surtout au niveau de la mémoire. Sinon, tu passes à côté de la puissance du C (oui oui, les pointeurs et les malloc() c'est formidables quand on sait ce qu'on fait !) Sinon, j'entends dire beaucoup de bien de Python. Je ne connais pas très bien, mais je pense que pour débuter il faut un langage de haut-niveau comme celui-là, c'est-à-dire un langage où on ne se soucie que du code et de sa beauté (i.e. l'élégance de l'implémentation d'un algorithme), pas du reste (ce qui ne peut pas être le cas en C puisqu'il revient au programmeur de s'occuper des trucs bas-niveau). La productivité sera en principe plus grande avec un langage de haut-niveau comme Python, donc tu devrais te sentir frais en peu de temps et c'est assez encourageant quand on débute. Si tu t'intéresses au RE, il faut apprendre l'assembleur. Là encore, c'est comme pour le C mais puissance 10. Mais c'est super cool, et c'est extrêmement formateur. Je te conseille donc, pour débuter, un langage où tu te concentres uniquement sur l'implémentation. Ensuite, tu améliores tes techniques d'implémentations : en te documentant un peu sur la théorie de la complexité algorithmique, en faisait du joli code lisible et élégant etc. (si tu ne comprends pas la moitié des mots de cette phrase, pas grave, ça viendra quand tu seras lancé dans la prog). En C, c'est souvent impossible de faire une implémentation pure ; c'est-à-dire de faire un algorithme ayant uniquement un aspect mathématique et logique, donc sans gestion de mémoire (ou alors on a recours à des libs qui encapsulent tout ça). En résumé, si tu veux juste te lancer dans la programmation sans domaine précis, tel que le RE, je pense que tu devrais te tourner vers les haut-niveau : Python, Perl, Ruby. Je pense que ces langages te feront apprendre la programmation (ce qui est différent que d'apprendre un langage), tandis que l'assembleur et le C te feront apprendre l'informatique très technique. Ces trois langages ont la particularité d'être connus, tu trouveras donc toujours quelqu'un pour t'aider si tu as un problème. Pour le C il en est de même. Un autre point important : c'est intéressant (et même mieux) de LIRE du code, pas seulement d'en écrire, surtout quand on débute. Et pour chaque chose il y a un langage dominant. Si tes centres d'intérêt tournent autour du jeu vidéo, il te faudra des connaissances en C++ par exemple. Si c'est plutôt la programmation système, alors oriente-toi vers du C. Donc faut choisir aussi en fonction de ce que tu aimerais lire comme genre de code source. Pour les ressources, je te conseille les ouvrages qui sont reconnu comme étant des références. Il y a surtout pour intermédiaire/expert, mais il y en a aussi pour débutant. ça se trouve facilement gratos en PDF via Google, ne t'en fais pas pour le prix. Ce n'est qu'un avis personnel, mais j'ai de gros doutes sur la qualité des tutos du SdZ. Surtout celui du C. |
|
« Sujet précédent | Sujet suivant »
|
Utilisateur(s) parcourant ce sujet : 3 visiteur(s)