[Tout]Par où commencer ?

Par où commencer ? [Tout] - Divers - Programmation

Marsh Posté le 18-09-2006 à 18:04:15    

Bonjour, je me présente.
Je m'apelle David, actuellement en première scientifique et agé de 15 ans.
J'ai toujours eu l'envie de programmer des trucs depuis que j'ai touché a un ordi mais je n'ai pas vraiment pu
par manque de motivation, j'ai un peu touché a tout mais pas en profondeur et j'ai tout oublié.
L'année derniere un pote (nommé Colas agé lui de 16 ans et qui était dans ma classe l'année dernière et cette année aussi) a amené au lycée la calculette graphique (Casio graph 35) de sa soeur car il avait malencontreusement (orthographe ?) cassé la sienne.
J'y ai un peu touché et je me suis dis en le regardant : "On peux programmer la dessus non ?".
Depuis on s'est mis a toucher a divers fonctions sans tutoriels ni aide mais avec une seule calculatrice.
Cette année j'ai acheté la mienne (Casio graph 100+) et je touche un peu aussi au langage de programmation qu'elle contient, teste divers fonctions, et chaque jour avec mon ami nous nous concertons afin de nous raconter nos découvertes, etc.
Nous ne maîtrisons pas encore le langage qu'offrent les calculatrices que nous possedons mais nous avons pu rapidement constater les limites de ce langages nottement le manque flagrant de variables et un mode graphique très fastidieux (pixel par pixel quasiment).
Nous nous sommes donc dis que d'apprendre ce langage à fond serait une perte de temps car il y a bien d'autres langages qui pourraient faire des merveilles avec le même temps d'apprentissage.
Nous nous sommes donc motivés, nous voulons vraiment nous mettre à apprendre un langage surtout que mon optique professionnelle serait dans la programmation et lui voudrais être ingénieur informatitien.
Peut-être que nous sommes un peu en retard, mais nous voulons rattraper ce retard en apprenant un langage et nous entrainer à la programmation, nous sommes prêts à suivre divers tutoriels et à acheter des bouquins.
 
Mais ce que nous nous demandons c'est par quel langage commencer étant donné que nous n'avons quasiment aucunes bases.
C'est pour cela que je vous demande à tous un conseil.
Merci de me (nous) répondre.

Reply

Marsh Posté le 18-09-2006 à 18:04:15   

Reply

Marsh Posté le 18-09-2006 à 18:09:50    

De nombreux topics en parlent déjà...
 
Pour moi le C, puis le C++ est un language à connaitre, tout du moins à apprendre.
Il est actuellement impératif de se focaliser sur la programmation orienté objet, chose que le C++ permet (à son niveau).
 
une fois ce langage découvert, de nombreux autres sont disponibles, tout aussi varié que les langues... à choisir quand vous aurez des besoins plus marqué.

Reply

Marsh Posté le 18-09-2006 à 18:11:15    

ça va partir en troll :whistle:
 
C pour commencer :o

Reply

Marsh Posté le 18-09-2006 à 18:13:35    

algorithmie, puis C. Ensuite au choix : C++,JAVA,C#
Commencer par un langage sans avori fait d'algorithmie c'ets se tirer une balle dans les corones :o

Reply

Marsh Posté le 18-09-2006 à 18:17:49    

Merci de vos réponses mais l'algorithmie c'est quoi ce truc ? J'ai deja entendu le mot algorithme mais je sais pas a quoi ça correspond, je regarde sur le dico :p

Reply

Marsh Posté le 18-09-2006 à 18:18:10    

Joel F a écrit :

algorithmie, puis C. Ensuite au choix : C++,JAVA,C#
Commencer par un langage sans avori fait d'algorithmie c'ets se tirer une balle dans les corones :o


 
Algorithmie je suis d'accord, y'a des méthodes à apprendre. Mais tu le fais au fur et à mesure de la découverte de ton langage. Après le C, je suis pas forcément d'accord :/ Le débutant n'a pas forcément d'intérêt à découvrir les joies des allocations mémoires et autres subtilités du C...M'enfin c'est que mon avis...

Reply

Marsh Posté le 18-09-2006 à 18:19:52    

Algorithme : nm, Procédé de calcul constitué d'une suite d'opérations.
 
J'ai peur :(

Reply

Marsh Posté le 18-09-2006 à 18:29:35    

4cv a écrit :

Algorithme : nm, Procédé de calcul constitué d'une suite d'opérations.
 
J'ai peur :(


 
Un exemple d'algo : le tri à bulle  
 
http://www-ipst.u-strasbg.fr/ipst/ [...] ibulle.htm

Reply

Marsh Posté le 18-09-2006 à 18:34:04    

Enfait c'est comme un plan alors ?
Car des plans sur papier j'en faisait avant de me lancer dans l'écriture du programme.

Reply

Marsh Posté le 18-09-2006 à 18:43:32    

Plus ou moins c'est ça. Ca permet d'éviter de se lancer tête baissée dans quelque chose avant de s'appercevoir que la méthode n'est pas bonne.  
Après y'a des algo connus qu'il ne sert à rien de réinventer, mais qu'il est extrêment utile de comprendre, ne serait-ce que pour les appliquer ou en créer de nouveaux pour son propre usage.


Message édité par gooopil le 18-09-2006 à 18:43:51
Reply

Marsh Posté le 18-09-2006 à 18:43:32   

Reply

Marsh Posté le 18-09-2006 à 19:00:45    

En gros, l'algo se fait sur deux niveaux :
Un premier où tu décris ce que fait "en général" le programme, et en n'allant pas plus loin que l'isolation des "objets métiers".
 
Genre, ton programme permet de représenter graphiquement un polynome
=> Tu vas avoir un objet métier de sasie des informations de la forumule
=> Tu vas avoir un objet métier de calcul des valeurs du polynome
=> Et un autre objet métier d'affichage du repère puis des points (peut être coupé en 2 objets pour plus de clareté d'ailleurs)
 
A ce niveau, tu vas te contenter de décrire ce qu'ils font, sans entrer dans le détail àl'intérieur : tu te concentre sur leurs inter-actions, afin d'isoler quelles fonctionalités ils doivent proposer.
 
=> Genre "Calculer" doit avoir une méthode "CalculerPoint"
=> "Afficher" doit avoir une méthode "afficher point"
Et l'interaction entre les deux, c'est :

pour chaque point x des abscices
  Afficher.AfficherPoint(Calculer.CalculerPoint(x))
fun pour


 
Une fois ce niveau de détail débroussaillé, tu sais pas où commencer, et surtout, tu peux commencer à écrire l'objet Calculer alors que ton ami peut écrire de son côté l'objet Afficher.
 
Ensuite, le second niveau, c'est de décrire l'algorythmie de chaque objet métier. Ainsi, tu vas décrire comment "CalculerPoint(int x)" doit se débrouiller pour te rammener une valeur qui correspond à ta formule.
 
Une fois que tout ça est fait, tu n'as plus qu'à transcrire dans le langage de ton choix. L'algorythmie est par définition indépendante du langage. C'est vrai jusqu'à un certain point (genre l'algo que je te propose ne sera pas forcément très adaptée au C, qui ne gère pas les objets)
 
Sinon, je ne suis pas un fervant défenseur du C pour apprendre. Ca me semble bien obscure pour débuter. Par contre, si tu commences par un autre langage, tu risques de ne jamais vouloir t'y mettre par la suite (trop "chiant" à programmer).


Message édité par MagicBuzz le 18-09-2006 à 19:03:05
Reply

Marsh Posté le 18-09-2006 à 20:06:18    

Spoiler :

[HS]Ah, ca me rappelle moi il y a un an. :D
Avec choubi ( que je garde dans un coin de ma tête ).[/HS]


Message édité par CNeo le 18-09-2006 à 20:06:23
Reply

Marsh Posté le 18-09-2006 à 20:22:00    

Oz/Mozart, si tu n'as pas peur de l'anglais.  
Le bouquin officiel est un gros pavé (je pense qu'il existe en français, mais au double du prix anglais) qui parcourt quasiment tous les paradigmes de la programmation.  
C'est vraiment pas mal pour avoir un bon aperçu de ce qu'est la programmation, mais faut pas être pressé.

Reply

Marsh Posté le 18-09-2006 à 20:26:04    

gizmo a écrit :

Oz/Mozart, si tu n'as pas peur de l'anglais.  
Le bouquin officiel est un gros pavé (je pense qu'il existe en français, mais au double du prix anglais) qui parcourt quasiment tous les paradigmes de la programmation.  
C'est vraiment pas mal pour avoir un bon aperçu de ce qu'est la programmation, mais faut pas être pressé.


Perso j'avais lu Débuter en programmation au tout début et il était très bien.

Reply

Marsh Posté le 18-09-2006 à 20:42:51    

Moi j'avais "Le Basic" sur mon Commodore 64 [:ddr555]

Reply

Marsh Posté le 18-09-2006 à 20:43:16    

MagicBuzz a écrit :

Moi j'avais "Le Basic" sur mon Commodore 64 [:ddr555]


 :??:

Reply

Marsh Posté le 18-09-2006 à 20:45:42    

ben moi je suis un vieux de la veille, à l'époque Basic était livré de base sur les ordinateurs (pas des PC) et c'était à peu près le seul langage utilisable sur ce type de machines.
J'avais aussi logo [:veryfree]

Reply

Marsh Posté le 18-09-2006 à 20:51:19    

MagicBuzz a écrit :

ben moi je suis un vieux de la veille, à l'époque Basic était livré de base sur les ordinateurs (pas des PC) et c'était à peu près le seul langage utilisable sur ce type de machines.
J'avais aussi logo [:veryfree]


En fait dans ce livre on commence par la programmation non graphique pour bien comprendre tous les principes.

Reply

Marsh Posté le 18-09-2006 à 22:36:53    

gooopil a écrit :

Le débutant n'a pas forcément d'intérêt à découvrir les joies des allocations mémoires et autres subtilités du C


bah faudra bien s'y frotter un jour ou l'autre. Bien expliqué ca passe totu seul

Reply

Marsh Posté le 18-09-2006 à 23:37:51    

Joel F a écrit :

bah faudra bien s'y frotter un jour ou l'autre. Bien expliqué ca passe totu seul


Euh... je ne vois vraiment pas en quoi ce serait un passage obligé. Mis à part si tu cherches à faire de la gestion de matos ou des traitements qui nécessitent une manipulation au bas niveau, tu peux très bien t'en passer toute ta vie de programmeur sans que cela ne soit handicapant.

Reply

Marsh Posté le 19-09-2006 à 00:49:27    

Joel F a écrit :

bah faudra bien s'y frotter un jour ou l'autre.


Pas d'accord, il n'y a aucune raison de jamais s'y frotter, sauf à vouloir se lancer dans la programmation de drivers, le hacking de kernel ou l'embedded [:spamafote]
 
Et quand bien même, ça peut parfaitement être appris par la suite [:spamafote]


Message édité par masklinn le 19-09-2006 à 00:49:49

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

Marsh Posté le 19-09-2006 à 08:36:50    

gooopil a écrit :

Algorithmie je suis d'accord, y'a des méthodes à apprendre. Mais tu le fais au fur et à mesure de la découverte de ton langage.


 
+1.
Il est vrai qu'il est bon de savoir structurer ses programmes, cependant, ça peut s'apprendre sur le fil. (et puis je trouve que c'est plus facile d'appliquer un algo, que de faire de l'algo pour le théorie.. :o)
 

gooopil a écrit :

.. Après le C, je suis pas forcément d'accord :/ Le débutant n'a pas forcément d'intérêt à découvrir les joies des allocations mémoires et autres subtilités du C...M'enfin c'est que mon avis...


 
Hum... et bien justement tous les langages devraient EDIT : demander avoir la "rigueur" du C, avec les déclaration et tout et tout... (Avis persos hein)
 
Mais le fait que ce soit un langage complet est interessant car avec un langage tu peux toucher à tout ce que tu peux découvrir comme subtilité dans la prog.
 
Persos j'ais commencé par du basic (lynx 64ko de RAM :D), puis QWbasic/Qbasic, puis Turbo pascal (sympa pour apprendre, mais trés limité), C/C++ (trés complet, mais certe pas évident de prime abord), etc..

Message cité 1 fois
Message édité par chani_t le 19-09-2006 à 08:50:26
Reply

Marsh Posté le 19-09-2006 à 08:44:19    

chani_t a écrit :

Hum... et bien justement tous les langages devraient avoir la "rigueur" du C, avec les déclaration et tout et tout...


La rigueur? [:mlc]
 
Le C? [:mlc]
 
C'est une blague? [:mlc]
 
Le C est à la rigueur ce q'une motte de beurre fondu est au blindage anti-tank [:mlc]
 
Le C demande de la rigueur pour que tout ne parte pas horriblement en couille, mais le langage n'a aucune rigueur [:mlc]

chani_t a écrit :

Mais le fait que ce soit un langage complet est interessant car avec un langage tu peux toucher à tout ce que tu peux découvrir comme subtilité dans la prog.


Complet mon cul oui, le seul langage "complet" qui existe c'est Mozart/Oz, et uniquement parce que les mecs qui l'ont créé sont des malades, déjà que faire quelque chose qui ressemble à de la POO c'est la croix et la bannière en C, mais même pas en rêve il est possible de faire de la programmation fonctionnelle ou logique, ou de l'Aspect-Oriented Programming, ou du DBC proprement [:mlc]

Message cité 1 fois
Message édité par masklinn le 19-09-2006 à 08:49:29

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

Marsh Posté le 19-09-2006 à 08:48:23    

masklinn a écrit :

...
Le C demande de la rigueur pour que tout ne parte pas horriblement en couille, mais le langage n'a aucune rigueur [:mlc]


 
C'est bien la ou je voulais en venir o: :D
 
(HS... d'ailleurs, je ne vois pas pourquoi on utilise pas le beurre comme blindage :D / HS)
 
EDIT : Juste pour préciser avant de me retirer de ce débat, qui n'a pas pour but de justifier mon avis
 
Pour moi le C/C++, est un bon langage, car justement si tu fais n'importe quoi, tu obtiendras n'importe quoi, donc pour apprendre à programmer correctement, c'est bien (à mon sens). De plus tu parle de POO, C++ le gére peut être pas de façon parfaite, mais aborde le sujet plutôt bien....
Encore une fois, on ne parle ici que d'un langage pour commencer, apprendre. Aprés chacun pourra voir dans chaque langage des avantages/inconvénients... (comme si un langage étais parfait   :sarcastic: ).

Message cité 1 fois
Message édité par chani_t le 19-09-2006 à 09:02:54
Reply

Marsh Posté le 19-09-2006 à 08:51:49    

J'vois pas en quoi le fait que tout parte en couille si on est pas assez rigoureux est une bonne chose, à ce moment là autant faire du VB ou du PHP, c'est pareil [:mlc]


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

Marsh Posté le 19-09-2006 à 09:09:59    

chani_t a écrit :


Pour moi le C/C++, est un bon langage, car justement si tu fais n'importe quoi, tu obtiendras n'importe quoi, donc pour apprendre à programmer correctement, c'est bien (à mon sens). De plus tu parle de POO, C++ le gére peut être pas de façon parfaite, mais aborde le sujet plutôt bien....
Encore une fois, on ne parle ici que d'un langage pour commencer, apprendre. Aprés chacun pourra voir dans chaque langage des avantages/inconvénients... (comme si un langage étais parfait   :sarcastic: ).


 
Un langage qui te force à te concentrer sur la taille mémoire d'un vecteur quand tu veux apprendre un algorithme de tri est un mauvais langage, pédagogiquement parlant. Il rajoute du bruit inutil autour du véritable problème algorithmique.

Reply

Marsh Posté le 19-09-2006 à 14:20:22    

gizmo a écrit :

Euh... je ne vois vraiment pas en quoi ce serait un passage obligé. Mis à part si tu cherches à faire de la gestion de matos ou des traitements qui nécessitent une manipulation au bas niveau, tu peux très bien t'en passer toute ta vie de programmeur sans que cela ne soit handicapant.


++ pour pouvoir s'en passer toute sa vie
 
pour l'éventuel handicap, je peux pas dire. jamais eu fondamentalement besoin en tout cas

Reply

Marsh Posté le 19-09-2006 à 14:27:16    

Moi je dis vive l'Ada :o
 
C'est vrai d'abors.
 
Au moins, en Ada :
- Tu mélanges un long avec un int : proutch, sa compile pas car il faut lui expliquer comment faire. Ca évite de faire comme en C, de multiplier un char par un *int.
- Tu fais un traîtement succeptible de planter sans gérer l'exception, ça plante. Ca t'évite de faire un programme qui marche bien pendant 20 ans et crash en flamme sans raison apparente.
- Il fait le tour de la plus part des fonctionnalités de la majorité des langages, et va très souvent plus loin dans chacun de ces points que la majorité des langages (tu fais de l'ADA, tu sais réellement ce que c'est un prototype ou une surcharge d'oppérateur)
- Le langage est tellement verbeux et strict d'un point de vue syntaxe que pour apprendre à coder proprement, aucun ne lui arrive à la cheville (moi les déclarations de fonction dans la déclaration d'un for en C, ça me laissera toujours rêveur)

Reply

Marsh Posté le 19-09-2006 à 15:17:44    

Ouais enfin à part le fait de planter si tu ne gères pas une exception tu peux avoir tout ça en Haskell et en largement moins verbeux :o


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

Marsh Posté le 19-09-2006 à 15:24:39    

Le verbeux moi je trouve ça bien.
Ca pousse à la réutilisabilité du code (marre de devoir réécrire 200 lignes pour faire une addition à chaque fois... du coup on se force à faire du modulable :D)

Reply

Marsh Posté le 19-09-2006 à 16:29:39    

MagicBuzz a écrit :

Ca pousse à la réutilisabilité du code (marre de devoir réécrire 200 lignes pour faire une addition à chaque fois... du coup on se force à faire du modulable :D)


Non, ça pousse juste à avoir mal aux doigts et à devoir passer plus de temps à penser aux trucs qu'on est obligé de taper qu'aux trucs qu'on veut solutionner


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

Marsh Posté le 19-09-2006 à 16:48:39    

au contraire, ça oblige à réfléchir à la solution plutôt qu'à trouver une solution : t'as pas envie de réécrire 4 fois le même code, donc tu te lance dans le code qu'une fois que ton algo est infaillible.

Reply

Marsh Posté le 19-09-2006 à 17:33:01    

Houla, beaucoup de réponses :p
Je pense que nous allons nous mettre au langage C mais nous aimerions savoir si vous avez un livre à nous recommander et un compilateur ?
Car il y a le choix et nous ne savons pas quoi prendre.
Merci.

Reply

Marsh Posté le 19-09-2006 à 17:43:19    

environnement de développement: code::blocks (http://www.codeblocks.org/)
livre: "Le langage C Ansi", Kernighan & richie
http://images-eu.amazon.com/images/P/2100051164.08.LZZZZZZZ.jpg


Message édité par _darkalt3_ le 19-09-2006 à 17:45:48

---------------
Töp of the plöp
Reply

Marsh Posté le 19-09-2006 à 18:20:23    

Peut importe l'édition ou alors juste cette édition ?
Car j'ai cherché sur internet, je l'ai trouvé en plusieurs éditions differentes mais sous cette édition le livre était en rupture de stock.

Reply

Marsh Posté le 20-09-2006 à 12:35:41    

4cv a écrit :


C'est pour cela que je vous demande à tous un conseil.


Pour ma part, je te conseille de commencer par:
 
ca: http://www.pise.info/algo/introduction.htm => Exélant lien pour débuté en algo...
 
ensuite: http://www.siteduzero.com/tuto-3-8 [...] -en-c.html
et: http://www.ltam.lu/cours-c/
 
ensuite: http://www.linux-kheops.com/doc/ansi-c/   et le livre de K&R.
 
ensuite: Le C++ (et la POO), et-puis d'autre langage...

Message cité 1 fois
Message édité par big_dadi_fat le 20-09-2006 à 12:42:07
Reply

Marsh Posté le 20-09-2006 à 12:41:46    

big_dadi_fat a écrit :

ensuite: Le C++ (et la POO), et-puis d'autre langage...


Lol [:petrus75]

Citation :

"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -- Alan Kay


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

Marsh Posté le 20-09-2006 à 12:59:35    

http://pragmaticprogrammer.com/images/fr_ltp_medium.jpg
 
?
 
[:dawa]
je sais pas ce qu'il vaut, mais ca m'interesse de savoir [:dawa]

Reply

Marsh Posté le 20-09-2006 à 13:16:23    

4cv a écrit :

Peut importe l'édition ou alors juste cette édition ?
Car j'ai cherché sur internet, je l'ai trouvé en plusieurs éditions differentes mais sous cette édition le livre était en rupture de stock.


peu importe l'édition; à priori la dernière est la bonne


Message édité par _darkalt3_ le 20-09-2006 à 13:16:43

---------------
Töp of the plöp
Reply

Marsh Posté le 21-09-2006 à 09:21:46    

souk a écrit :

http://pragmaticprogrammer.com/ima [...] medium.jpg
[:dawa]
je sais pas ce qu'il vaut, mais ca m'interesse de savoir [:dawa]


très mauvais bouquin :o
 
Je m'auto cite :
http://www.manga-torii.com/files/sgbd.pdf  
 
"Je rappelle toutefois que l’analyse et la conception du modèle des données sont deux choses qui se font avec un crayon et un cahier, assis à l’ombre d’un arbre (qui n’a pas de fruits si possible afin d’éviter les migraines)."
 
Il ne respecte même pas les recommandations les plus simples :o


Message édité par MagicBuzz le 21-09-2006 à 09:22:07
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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