Par quoi commencer?

Par quoi commencer? - Divers - Programmation

Marsh Posté le 04-01-2006 à 17:39:45    

Alors voilà, je sais que des questions du même type ont déjà été posé, mais elles ne répondent pas tout à fait à la mienne...
 
J'ai quelques "mini" notions en programmation (notamment ASM et PHP), et je voudrais commencer à vraiment apprendre (car ça m'interresse vraiment).
Donc, par quoi me conseillez-vous de commencer? J'avais pensé au C ..
 
Et surtout, quel(s) livre(s) me conseillez-vous d'acheter pour apprendre?
 
Merci.

Reply

Marsh Posté le 04-01-2006 à 17:39:45   

Reply

Marsh Posté le 04-01-2006 à 18:31:09    

Ça t'intéresse vraiment ? Alors apprends un maximum de langages : 2, 5, 10, 20... y'a pas de limites. Le C est bien entendu indispensable.
 
C'est toujours difficile de savoir par quoi commencer, ça dépend de ton optique. Si tu veux un langage facile à apprendre et faire des trucs sympa dès le départ il y a Python. Dans tout les cas, si tu touches à beaucoup de langages à la fois tu te feras vite une idée de l'intérêt pratique et/ou théorique de chacun.
 
Pour un bouquin sur le C : l'indispensable Kernighan & Ritchie.

Reply

Marsh Posté le 04-01-2006 à 18:43:06    


Bof [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 18:46:08    


 
Dans le monde du travail peut-être pas (enfin ça ferait très tache quand même je pense). Mais pour quelqu'un qui s'intéresse à la programmation (un futur hacker), si.

Reply

Marsh Posté le 04-01-2006 à 18:49:40    


Bof [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 19:55:12    


 
Perso j'ai commencé par l'assembleur Z80, puis JAVA, C++ et je susi venue au C trés tard ...
Le C on peut LARGEMENT s'en passer. Pour debuter Perl ou Python sont largement mieux

Reply

Marsh Posté le 04-01-2006 à 19:58:15    

Joel F a écrit :

Perso j'ai commencé par l'assembleur Z80, puis JAVA, C++ et je susi venue au C trés tard ...
Le C on peut LARGEMENT s'en passer. Pour debuter Perl Ruby ou Python sont largement mieux


stpmerssi [:moule_bite]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 20:04:38    

Alors donc pour préciser...
 
Je ne veux pas forcemment faire des "belles choses" avec au départ, je veux juste apprendre un max...
Donc je ne veux pas forcément commencer par un langage simple et pratique... (python?)
Alors, en sachant celà, vous me conseillerez de commencer par...?

Reply

Marsh Posté le 04-01-2006 à 20:06:32    

"apprendre un max" ne veut pas dire grand chose, tout dépend du domaine vers lequel tu veux orienter ta prise de connaissance (machine, OO, web, ...)
 
Sinon, si tu veux "en apprendre un max" de manière littérale et absolue, Common Lisp ou Scheme [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 20:31:34    

Joel F a écrit :

Perso j'ai commencé par l'assembleur Z80, puis JAVA, C++ et je susi venue au C trés tard ...
Le C on peut LARGEMENT s'en passer. Pour debuter Perl ou Python sont largement mieux


 
Il doit bien falloir 10 minutes à un bon programmeur C++ pour apprendre le C. :gratgrat:
 
Bien sûr qu'on peut se passer du C, on peut même se passer de programmer. Ce que je veux dire c'est qu'il n'y a pas un hacker qui ne connaisse pas le C.
 
Je plussoie pour Perl et Python. :jap:

Reply

Marsh Posté le 04-01-2006 à 20:31:34   

Reply

Marsh Posté le 04-01-2006 à 20:36:39    

masklinn a écrit :

"apprendre un max" ne veut pas dire grand chose, tout dépend du domaine vers lequel tu veux orienter ta prise de connaissance (machine, OO, web, ...)
 
Sinon, si tu veux "en apprendre un max" de manière littérale et absolue, Common Lisp ou Scheme [:pingouino]


 
 
Bein je veux passer par tout les domaines, mais pour l'instant je voudrais commencer dans autre chose que le web... (pour le web je vais juste apprendre à bien utiliser le CSS, ça me suffira pour l'instant)
 
Donc, plutot quoi? Perl/Python/C/C++ ?

Message cité 1 fois
Message édité par floboss07 le 04-01-2006 à 20:38:02
Reply

Marsh Posté le 04-01-2006 à 20:38:52    

moi je trouve que le C est:
- suffisant (typage variables, tests, itérations, fonctions, récursivité, etc.)
- suffisamment limité (pas d'objet)
- suffisamment pourri (du tableau avec des indices non vérifiés, du char* pour les chaines, du pointeur à alloué et libéré soi-même, etc.)
 
et que tout ça fait que c'est pas mal pour apprendre des bases de programmation: pas trop d'abstraction, et pas trop de vérification, ca force à être rigoureux
 
de +, on peut préprarer le terrain pour l'objet avec les structures
 
bon ça n'engage que moi bien entedu, mais je pense savoir de quoi je parle, j'enseigne l'info...
 
bien évidemment, il est tjs possible de débuter avec d'autres langages mais ils ont leur défaut:
- php: resucée du c, évolue tout le temps
- java: trop simple et trop classe comme langage pour débuter!! ;) pas évident de maitriser les notions de référence (pointeur) si on débarque là-dedans, l'api bien fournie mais à s'y perdre
- c++: le bordel, entre les déclarations statiques, dynamiques, les classes virtuelles, abstraites, l'héritage multiples...
- les autres (python, perl, etc.) je connais pas, pourquoi pas, mais ils doivent avoir leur limites non ?
 

Reply

Marsh Posté le 04-01-2006 à 20:40:54    

floboss07 a écrit :

Bein je veux passer par tout les domaines, mais pour l'instant je voudrais commencer dans autre chose que le web... (pour le web je vais juste apprendre à bien utiliser le CSS, ça me suffira pour l'instant)
 
Donc, plutot quoi? Perl/Python/C/C++ ?


Dans cette liste, Python.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 20:43:14    

Python, python, python. :o
 
A mon avis commencer par Python et C en même temps ne serait pas forcément une mauvaise chose. Le but n'est pas de maîtriser les deux langages le plus rapidement possible, mais d'avoir deux approches complémentaires de la programmation via les deux langages le plus représentatifs de leurs domaines : le haut niveau et la puissance de python, et le bas niveau et les performances de C.

Reply

Marsh Posté le 04-01-2006 à 20:44:31    

bon un jour je vais me mettre à python, je promets :) (après flash/as et perl quand même ;))

Reply

Marsh Posté le 04-01-2006 à 20:51:21    

trevor a écrit :

moi je trouve que le C est:
- suffisant (typage variables, tests, itérations, fonctions, récursivité, etc.)
- suffisamment limité (pas d'objet)
- suffisamment pourri (du tableau avec des indices non vérifiés, du char* pour les chaines, du pointeur à alloué et libéré soi-même, etc.)
 
et que tout ça fait que c'est pas mal pour apprendre des bases de programmation: pas trop d'abstraction, et pas trop de vérification, ca force à être rigoureux
 
de +, on peut préprarer le terrain pour l'objet avec les structures
 
bon ça n'engage que moi bien entedu, mais je pense savoir de quoi je parle, j'enseigne l'info...


 
100% d'accord mais d'un autre côté le C peut-être rebutant au départ et on va faire traîner son apprentissage de la programmation en longueur à cause des difficultés liées au langage (la programmation ce n'est pas que l'implémentation !), c'est pour ça qu'apprendre à côté Python pour s'"amuser" (c'est à dire programmer rapidement des choses concrètes, à l'âge de floboss ça peut être important :D) n'est à mon avis pas une mauvaise chose.
 

Citation :


- java: trop simple et trop classe comme langage pour débuter!! ;) pas évident de maitriser les notions de référence (pointeur) si on débarque là-dedans, l'api bien fournie mais à s'y perdre


 
Bah les références c'est plus simple à comprendre que les pointeurs de C. Une fois que t'as compris que tous les objets sont passés par références et que A = B ne copie pas B dans A (sauf pour les types primitifs...), t'as tout compris sur références. Bon peut-être qu'il faut ajouter un exposé sur la représentation des données en mémoire et le fonctionnement de base d'un ramasse miette. Mais bon Java ça sux. :o
 

Citation :


- c++: le bordel, entre les déclarations statiques, dynamiques, les classes virtuelles, abstraites, l'héritage multiples...


 
Et la syntaxe extrêmement lourde et autres bizarreries et idiomes liés au langage, c'est pas l'idéal...
 

Citation :


- les autres (python, perl, etc.) je connais pas, pourquoi pas, mais ils doivent avoir leur limites non ?


 
Limites en performances oui, sinon ils sont tout aussi turing complets que les autres. :D

Reply

Marsh Posté le 04-01-2006 à 20:55:01    


En même temps, la turing completeness même Brainfuck l'a [:pingouino]
 
L'expressivité, l'extensibilité, les magic fitioures du langage (closures, listcomp, syntaxe, ...) sont quand même plus intéressants [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 20:56:52    

masklinn a écrit :

En même temps, la turing completeness même Brainfuck l'a [:pingouino]


 
C'était juste pour donner une réponse aussi vague que l'était la question. :p

Reply

Marsh Posté le 04-01-2006 à 21:01:01    


 
 
ma méconnaissance de python fait peutetre que je me rends pas compte de la lourdeur de C... c'est possible. d'un autre côté, je trouve que le passage algo<->C se fait bien. peutetre se fait-il mieux/pareil entre algo<->python
 
les références... oui il faut du bon bas-niveau sur "comment qu'elle est stockée ma jolie variable ? et mon bel objet ?". le ramasse-miette, il vaut mieux éviter, sinon après on se dit que ca marche tout seul et que c'est pas grave si on a fait une instanciation qui sert à rien... ;)
 
je ne pensai pas trop aux perfs pour le côté "limite". c'est juste que dans mon idée par ex. perl est super adapté aux traitement de chaines, etc. mais le reste je ne connais pas alors voilà
 
sinon moi j'adore java ;). quant au c++, bon on est visiblement daccord :) c'est l'halu pour démarrer.


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 04-01-2006 à 21:10:51    

trevor a écrit :

ma méconnaissance de python fait peutetre que je me rends pas compte de la lourdeur de C... c'est possible. d'un autre côté, je trouve que le passage algo<->C se fait bien. peutetre se fait-il mieux/pareil entre algo<->python


Si je te dis que le Python se lit comme du pseudo-code (et que des gens utilisent le python à la place du pseudocode quand ils montent leurs algos en fait, ils trouvent ça plus simple [:moule_bite] ) ça aide?

trevor a écrit :

oui il faut du bon bas-niveau sur "comment qu'elle est stockée ma jolie variable ? et mon bel objet ?". le ramasse-miette, il vaut mieux éviter, sinon après on se dit que ca marche tout seul et que c'est pas grave si on a fait une instanciation qui sert à rien... ;)


Bof, ça dépend de quelle manière on veut coder, et ce qu'on veut coder [:jagstang]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 21:13:18    

trevor a écrit :

le ramasse-miette, il vaut mieux éviter, sinon après on se dit que ca marche tout seul et que c'est pas grave si on a fait une instanciation qui sert à rien... ;)


 
Ce qui est important de savoir en Java c'est qu'un objet existe en mémoire tant qu'une référence pointe dessus et que dès lors qu'il y n'y a plus de référence dessus, l'objet est perdu et la mémoire libérée en temps voulu. Je ne vois pas en quoi ça inciterait à faire des instanciations qui ne servent à rien, au contraire ça sensibilise au fait que ça fait travailler le GC en fond.

Reply

Marsh Posté le 04-01-2006 à 21:17:15    


 
100% ok, mais on voit que tu ne travailles pas avec des élèves... si tu leur dis ca marche tout seul, pour eux ca s'arrête là. que le GC bosse ils s'en tapent ;) c'est malheureux, mais c'est ainsi
ça n'oblige pas à instancier sans besoin, mais par contre, ça n'incite pas vraiment à réfléchir à comment éviter une instanciation (je pense par exemple au + de String, alors qu'il vaut mieux utiliser un StringBuffer)


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 04-01-2006 à 21:20:33    

masklinn a écrit :

Si je te dis que le Python se lit comme du pseudo-code (et que des gens utilisent le python à la place du pseudocode quand ils montent leurs algos en fait, ils trouvent ça plus simple [:moule_bite] ) ça aide?
 
Bof, ça dépend de quelle manière on veut coder, et ce qu'on veut coder [:jagstang]


 
ok pour python :) je me fais une petite idée. re-promis, je m'y metterai un jour
 
ok aussi pour "qu'est-ce qu'on veut coder". disons que dans l'esprit "quoi apprendre pour débuter?" je me pose chaque année la question (au-delà du référentiel) parce que je peux te dire (si tu ne t'en souviens pas - moi-même je m'en souviens pas, j'ai commencé par du basic à 10 ans, un peu de z80 à 12) que les débuts sont durs, je le vis tous les jours ;) je leur dis tjs que c'est hyper-facile, de fait ça l'est pour moi, mais pour mes élèves un peu moins...


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 04-01-2006 à 21:23:28    

Ok les gars, merci pour vos réponses complètes...
 
Donc, je dirais en résumé, que je dois choisir entre Python -> Assez simple pour débuter et C -> Un peu plus compliqué mais demande de la rigueur (ce qui peut être un bon point)...
Si c'est bien ça, je préfère commencer par C.
 
Donc, ensuite, avez-vous un ou plusieurs livres à me conseiller pour apprendre le C? Voir des e-book...
(ne me dites pas des livres que vous avez trouvé rapidemment avec google, mais des livres que vous avez lu.. C'est votre avis personnel que je demande, pas celui de Google! xD)
 
En tout cas merci pour toute ces réponses, en si peu de temps.

Reply

Marsh Posté le 04-01-2006 à 21:26:09    

Le K&R t'as déja été proposé, tu peux également chercher sur le forum un utilisateur du nom d'Emmanuel Delahaye (sp?) dans la cat C, il a son site dans sa signature, c'est une très bonne ressource en français.
 
Et le C n'est pas "un peu plus compliqué" que le python, la différence est d'un ordre de magnitude minimum [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 21:37:06    

Celui-ci?
 
Ah et au fait, maintenant que j'y pense, pourquoi ne pas commencer par le langage Basic? Ne serait-ce pas le plus "basique"?
 
Et si quelqu'un pense que j'ai fait le mauvais choix en décidant finalement de commencer par le C, je suis tout ouïe..!

Message cité 1 fois
Message édité par floboss07 le 04-01-2006 à 21:38:36
Reply

Marsh Posté le 04-01-2006 à 21:39:48    

Oui (à toi de voir si tu le prends en VO ou en VF)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 21:43:58    

Sans hésiter, VF!
Ce n'est pas que je sois nul en anglais, c'est juste que dans ce genre de livre il y a pas mal de mots techniques et tout... Ca risquerait de m'embrouiller en anglais...
Enfin bon, vive le français! ^^

Reply

Marsh Posté le 04-01-2006 à 21:45:29    


 
Oui, le seul, l'unique. :o
 

Citation :


Ah et au fait, maintenant que j'y pense, pourquoi ne pas commencer par le langage Basic? Ne serait-ce pas le plus "basique"?


 
Le langage BASIC dans sa forme la plus basique (avec les numéros de ligne et les GOTO) est tout sauf un langage recomendable.
 

Citation :


Et si quelqu'un pense que j'ai fait le mauvais choix en décidant finalement de commencer par le C, je suis tout ouïe..!


 
Le K&R ne sera pas une perte si tu ne le lis que dans quelque années parce que tu as été rebuté par le C et que tu as commencé par autre chose. Mais tôt ou tard, ce bouquin te sera utile (puisque tôt ou tard, si la programmation t'intéresse vraiment tu apprendras le C).

Reply

Marsh Posté le 04-01-2006 à 21:51:16    


Nan mais ça c'est pas vrai hein, même si il finit par chercher un langage plus bas niveau avec de bonnes perfs ça ne l'oblige pas à passer par le C bon sang [:pingouino]
 
Le Lisp compilé a des performances comparables au C par exemple (et plus rapides pour tout ce qui se rapporte à la manipulation de listes), le Haskell a également de bonnes perfs, et les ML vont de plus rapide que le C à ~2-3 fois plus lent [:jagstang]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 21:57:30    

On s'en tape bon sang, le C est indispensable parce que tous les hackers connaissent ce langage et que ça reste l'un des plus utilisés. :o

Reply

Marsh Posté le 04-01-2006 à 22:02:47    

pourquoi C et python ? (ou python + c ;)) vu que le python semble intéressant aussi. car après tout, plusieurs langages c'est le top, et puis chacun peut être parfois plus adapté dans certaines situations


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
Reply

Marsh Posté le 04-01-2006 à 22:04:08    

Bon bein je vais commencer par lire "Introduction au langage C'' écrit par B. Cassagne du laboratoire CLIPS de Grenoble" et "Bien programmer en langage C d'Emmanuel Delahaye", car le "K&Ré coute quand même 30€...ça fait chère pour un livre...

Reply

Marsh Posté le 04-01-2006 à 22:05:41    

trevor a écrit :

pourquoi C et python ? (ou python + c ;)) vu que le python semble intéressant aussi. car après tout, plusieurs langages c'est le top, et puis chacun peut être parfois plus adapté dans certaines situations


 
Ah oui c'est vrai, à un moment quelqu'un avait conseillé d'apprendre les 2 en même temps...
Pourquoi pas, mais ça ne risque pas de m'embrouiller un peu?
Enfin bon, je peux essayer.. Alors que me conseillez-vous pour apprendre le Python?

Reply

Marsh Posté le 04-01-2006 à 22:06:27    

floboss07 a écrit :

le "K&Ré coute quand même 30€...ça fait chère pour un livre...


  • Non c'est pas cher pour un livre d'informatique
  • C'est un très bon prix pour ce qui reste aujourd'hui encore l'un des meilleurs livres sur le C (sinon le meilleur) et de très loin, il vaut mieux acheter un bon livre à ce prix que deux livre moisis mais moins chers [:pingouino]
  • Les livres d'occasion ça existe


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 22:08:33    

masklinn a écrit :

  • Non c'est pas cher pour un livre d'informatique
  • C'est un très bon prix pour ce qui reste aujourd'hui encore l'un des meilleurs livres sur le C (sinon le meilleur) et de très loin, il vaut mieux acheter un bon livre à ce prix que deux livre moisis mais moins chers [:pingouino]
  • Les livres d'occasion ça existe


Oula, j'ai touché un point sensible là... lol
Oui enfin, je disais ça comme ça, c'est sûr que je vais l'acheter de toute façon!
Mais c'était juste pour dire qu'entre temps je vais lire les 2 autres "cours"..!

Reply

Marsh Posté le 04-01-2006 à 22:11:06    

floboss07 a écrit :

Mais c'était juste pour dire qu'entre temps je vais lire les 2 autres "cours"..!


Et moi c'était juste pour dire que j'en vois pas l'intérêt, si tu vas l'acheter de toute façon autant l'acheter tout de suite et ne pas acheter le reste [:petrus75]  
enfin bon, si t'as envie de gâcher ton argent il est vrai que c'est toi que ça regarde [:jagstang]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-01-2006 à 22:15:20    

masklinn a écrit :

Et moi c'était juste pour dire que j'en vois pas l'intérêt, si tu vas l'acheter de toute façon autant l'acheter tout de suite et ne pas acheter le reste [:petrus75]  
enfin bon, si t'as envie de gâcher ton argent il est vrai que c'est toi que ça regarde [:jagstang]


 
Ah, je vois, on s'est mal compris!
Le 2 autres dont je t'ai parlé avant sont gratuit! Un est sous forme de fichiers pdf (+ de 200 pages) et l'autre un site (que j'ai "aspiré" en local)!

Reply

Marsh Posté le 04-01-2006 à 22:19:28    

floboss07 a écrit :


Mais c'était juste pour dire qu'entre temps je vais lire les 2 autres "cours"..!


 
Tu peux lire l'intro d'Emmanuel mais c'est très short, c'est juste pour te mettre en appétit.
 
Pour ce qui est du livre de M. Cassagne, pour avoir parcouru vite fait le début c'est tout sauf un cours pour débutant. Ça te balances tout les concepts du C sans aucun contexte, idéal pour mal commencer.
 
Non vraiment le K&R et rien d'autre...
 
Pour Python il y a plein de bouquins listés sur python.org, il y a aussi "Dive Into Python" qui est disponible en ligne gratuitement (et traduit en Français). C'est un bouquin que j'ai trouvé très bien foutu parce que dans l'esprit "On plonge d'abord, on détaille ensuite". :D

Reply

Marsh Posté le 04-01-2006 à 22:24:18    

et le KPL ?  :o

Message cité 1 fois
Message édité par ritzle le 04-01-2006 à 22:26:03
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed