Page 1 sur 3

Méthodes d'apprentissage

Posté : 06 août 2009, 10:58
par katagoto
Bonjour à toutes et à tous,

Je sais que ce forum réunis chaque jour des personnes ayant appris ou
apprenant différents langages. J'aimerais savoir comment vous faites pour
apprendre, quels méthodes utilisez-vous, comment procédez-vous ?

Je vais vous expliquer mon problème et comment je vois les choses :
Jusqu'à présent, je définissais un langage à l'aide de deux critère, sa syntaxe
et sa logique, ou plutôt son fonctionnement. La compréhension du
fonctionnement d'un langage se faisant par son apprentissage, je ne suis pas
à même de la classifier. En ce qui concerne la syntaxe, c'est plus simple, on
petit tour sur wikipédia et le tour est joué. J'ai classé les langages en 3
catégorie : Les langages à accolades ou "normaux" (C, C++, D, JAVA, PHP, etc.),
les langages à espaces (Ruby, Python, Delphi, etc.) et les autres (Pascal,
Assembleur, etc.). Ma seule maitrise pour l'instant, aussi infime soit-elle se
situe sur les langages à accolades. J'ai appris PHP, puis le C++, j'ai été déçut
par Python, et plus récemment j'ai appris le C et le bash. Néanmoins, l'année
prochaine, je devrais apprendre le Delphi.
Dans cette optique j'ai voulu apprendre un langage de syntaxe proche, le Ruby.
J'ai souhaité apprendre ce langage car même s'il est tout objet (même les
booléens x)) on peut faire du procédural. Rassurez-vous, je ne veux pas faire
du web avec. La deuxième chose qui m'a convaincu, est la logique du langage,
d'après wikipédia, une fois la logique comprise, plus rien ne nous étonne. Étant
donné les "erreurs graves" que j'ai fait avec PHP pour le concours, je me suis
dit que ça pouvait être bien. Actuellement, quand j'apprends un langage,
j'achète un livre, je le lis deux fois, je fais 2-3 scripts/programmes qui plantent
et après je fais un projet énorme. La méthode est selon moi contre-productive.
J'aimerais savoir comment vous apprenez :priere:
HyWaN m'avait parler du lien problème => langage, j'ai vraiment du mal
avec cette conception puisque l'auteur d'un langage ne peut pas savoir tout ces
usages et que moi, en tant qu'utilisateur je trouve ça idiot d'apprendre un
langage juste pour quelques problèmes et que lorsque j'apprends un langage
c'est pour rien.
Enfin, je me noie...

Par avance merci de votre aide

PS : HyWaN, j'ai compris ce que tu voulais dire par "en Ruby on pouvait
faire du code pire qu'en PHP"

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 11:07
par momox
Question bête, ce serait possible que tu écrives normalement tes posts ?
Parce que a partir a la ligne suivante tous les x caractères, ca en devient vite fatiguant et ca allooooooooonge ton sujet...

Merci par avance :priere:

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 11:27
par katagoto
Je me limite à 72 caractères, mais je vais tenter 80, ça devrait mieux aller,
désolé

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 11:45
par Berzemus
Je me limite à 72 caractères, mais je vais tenter 80, ça devrait mieux aller,
désolé
83, ça collerait mieux. Et plus espacé, aéré.

C'est bizarre ta façon de classer les langages.. j'aurais plutôt pensé par paradigme (en même temps, bonjour les multi-paradigmes).

Et divers est un peu trop vaste pour le reste visual basic, bash, lasso..

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 11:48
par katagoto
Je sais, mais j'ai un logique foireuse et j'arrive pas à la rectifier, il faut que je
prenne du recule et j'ai du mal à le faire.

Par avance merci de votre aide

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 12:25
par zeus
Je ne vais que réchauffer du déjà dit, mais pour moi, je n'apprend pas un langage parce que sa syntaxe me plait.
A un moment, j'ai une problématique. Je regarde si ce que je connais peut répondre à la problématique, et quelles sont les solutions les plus adaptées.
A partir de là, je pèse le pour et le contre en mettant en balance si ce que je connais suffit ou alors si ce que je connait pourrait convenir, ou encore s'il vaut mieux utiliser une solution pas très adéquate ou apprendre un nouveau langage.

Mais, je te l'accorde, si j'ai le choix entre plusieurs langages, je vais choisir celui qui me semble le plus sympathique ;)
Je me limite à 72 caractères, mais je vais tenter 80, ça devrait mieux aller,
désolé
Ton navigateur ne fait pas les retours à la ligne automatique ? :shock:
Parce que là, c'est franchement ch***t à lire :?

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 12:38
par katagoto
Non c'est pas ça, mais avant, dès qu'il yy avait un code ou un citation c'était l'apocalypse, bon, je tente le coup.

Pour revenir au sujet, la syntaxe me dégoute mais j'ai pas vraiment le choix, je comptais me servir du Ruby comme prétexte pour me replonger dans l'apprentissage, l'année prochaine, ça sera Delphi obligatoire alors bon.

Mais j'ai bien compris le principe mis en avant bien que ça me surprenne un peu.

Par avance merci de votre aide

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 12:43
par mere-teresa
Ma logique est entre celle de zeus et celle de katagogo. Je veux dire par là que j'ai parfois envie de me mettre à un langage et que je trouve le projet a posteriori (cf katagogo), mais c'est induit par les possibilités de ce langage (cf zeus).

Deux exemples, j'ai envie de me mettre au C++.
Pourquoi ?
Parce qu'on peut programmer son téléphone OpenMoko avec.
J'aimerais faire du python.
Pourquoi ?
Parce que le TuxDroid est programmable en python.

J'aimerais fabriquer une extension Firefox, car j'en ai besoin, et du coup, je vais me pencher plus avant sur XUL, Javascript et tout ce qui est nécessaire à l'élaboration de mon projet.

J'ai, par le passé, tâté un peu d'ActionScript, de OOBasic (macros OpenOffice.org), et cela me sert à chaque nouvel apprentissage. J'aime apprendre, j'aime programmer. Cela ne me gêne pas d'appréhender un langage pour un seul projet.

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 12:54
par katagoto
Voilà, j'ai une idée générale des programmes/scripts que je veux faire, mais pas une idée précise.
Je sais pas si pour vous ça a été pareil, mais coder, quand on commence, c'est parce que l'on est curieux et j'ai gardé un peu de ma curiosité. Un peu c'est un doux euphémisme si vous saviez tout ce que j'ai envie de faire :lol:

Par avance merci de votre aide

PS : Merci Mere-Teresa, ça fais du bien de voir que l'on est pas seul :lol:

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 12:57
par J-Nicolas
Il y a une dizaine d'années, j'ai eu le choix entre apprendre le PHP ou l'ASP. J'ai fait un choix, je crois que tout le monde a fait le meme ici. Je ne vois pas bien l'utilité d'apprendre de nouveaux langages, pour la beauté de leur syntaxe, ou leur style ? J'ai appris le PHP, chez moi, seul, en faisant des essais et des erreurs (beaucoup d'erreurs) parce que j'avais besoin de faire des sites dynamiques. Si je n'avais pas eu ce besoin, je n'aurais probablement jamais appris le PHP. Je pense aussi qu'il faut tenir ses connaissances à jour, et quand on voit l'évolution fantastique du PHP, je suis content de ne pas connaitre beaucoup de langages, cela me prendrait trop de temps autrement.

Je crois qu'il est plus important de tres bien connaitre un langage, plutot que d'en connaitre plusieurs à moitié.
Ce qui n'est hélas pas mon cas, il y a des nouvelles fonctions PHP que je ne connais pas. Il me faudrait plus de temps pour suivre tous les développements en cours...

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 12:58
par zeus
Deux exemples, j'ai envie de me mettre au C++.
Pourquoi ?
Parce qu'on peut programmer son téléphone OpenMoko avec.
J'aimerais faire du python.
Pourquoi ?
Parce que le TuxDroid est programmable en python.
Dit moi si je me trompe, mais là, c'est le besoin qui te pousse au langage, non ?
besoin : programmer son téléphone OpenMoko
langages possible : c++
conclusion : j'apprend le C++

besoin : programmer un TuxDroid
langages possible : Python
conclusion : j'apprend le python

Dans les 2 cas, il y a surement d'autres langages, et tu as, après le besoin, tranché pour un langage.

En tout cas, je suis comme toi sur ce point là. Par exemple, je me suis mis à l'objective C pour les applications iPhone.

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 13:00
par zeus
@J-Nicolas : ce que tu dis est vrai, mais c'est dangereux pour plusieurs raisons :
1/ tu risques de tout vouloir faire en PHP, même quand ce n'est pas une solution pérenne

2/ l'informatique va vite, très vite. Et peut être que dans 10ans, PHP ne sera plus à la mode. Et là, tu seras dans la réaction et pas dans l'action.

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 13:34
par Berzemus
+8 à Mere-Teresa.

Des fois, on aimerait choisir les langages qu'on voudrait apprendre, mais la plupart du temps ce sont les circonstances qui les dictent. Cette année je voulais me lancer dans les langages fonctionnels, mais au final ce sont plutôt perl, lasso et bash que j'ai "appris". Encore qu'apprendre un langage n'est jamais qu'apprendre à se servir d'un nouvel outil, puisque la programmation elle-même dépasse les considérations syntaxiques et linguistiques, mieux vaut que ce soit utile.

Si ce n'est pour se lancer dans un autre paradigme, réorienter son esprit vers une autre manière de penser, la ça devient vraiment intéressant (sql, fonctionnel, dsl,...)

Et pour la méthode, tout commence par un bouqui, que je lis entièrement, puis je me place devant l'ordi avec le bouquin juste à côté. Progressivement, les ressources du net remplacent le bouquin, et pour finir le bouquin se retrouve dans la bibliothèque et je suis lancé. J'ai fait la même chose avec les deux derniers OS avec lesquels je me suis familiarisé (debian et freebsd), et jusque la, c'est top.

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 14:41
par katagoto
Et pour la méthode, tout commence par un bouqui, que je lis entièrement, puis je me place devant l'ordi avec le bouquin juste à côté. Progressivement, les ressources du net remplacent le bouquin, et pour finir le bouquin se retrouve dans la bibliothèque et je suis lancé. J'ai fait la même chose avec les deux derniers OS avec lesquels je me suis familiarisé (debian et freebsd), et jusque la, c'est top.
Je ne t'ai pas demandé de faire ma bio :lol:

J'ai déjà essayé te méthode J-Nicolas, je te remercie de l'avoir partagé, j'avais fais ça avec l'ActionScript, le soucis, c'est que ça prend énormément de temps et que le résultat est incertains, enfin, c'était le premier langage que j'apprenais :roll:
Moi c'est vraiment la maitrise totale et si possible rapide d'un langage, j'ai du mal à définir ce que je veux mais...

Par avance merci de votre aide

PS : Je me sens moins seul tout à coup ^^

Re: Méthodes d'apprentissage

Posté : 06 août 2009, 14:42
par Sékiltoyai
Pour ma part, c'est assez compliqué, puisqu'il y a plusieurs raisons pour lesquelles je peux être amené à apprendre un langage, et plusieurs manières de le faire. Principalement :
  1. Un cours sur le sujet en école.
  2. Un projet professionnel, ou du moins avec des prérequis forts sur les technologies.
  3. Un projet personnel, ou du moins sur lequel j'ai le choix de la technologie et de la mise en oeuvre.
  1. Et cela s'apprendrait :
  2. Avec des polys.
  3. Le langage est imposé, du coup, c'est pas bien compliqué, il faut connaître. Je m'arrange de déjà connaître un minimum la technologie avant de dire que je peux le faire, et s'il y a déjà une base, on peut déjà voir comment ça s'écrit. Un exemple simple, j'ai eu besoin de modifier mailman pour l'adapter à mes besoins, il a beau être fait en python, le vocabulaire est le même. Donc dans ce cas là on regarde rapidement comment est fait le logiciel et on fait son petit hack. C'est limite le plus simple.
  4. On essaye d'abord de peser le pour et le contre de chaque techno, en mettant dans la balance le fait que l'on connaisse déjà ou pas le langage, et ensuite on prend le meilleur. Pour une application graphique standalone, il y a un choix impressionnant de possibilités. J'ai exclu de base PHP. J'aurais pu prendre Java, mais j'étais pas trop fan. Finalement j'ai fait C+Carbon (framework Apple), et si c'était à refaire ce serait en Objective C+Cocoa (un autre framework Apple), non que je connaisse l'Objective C, mais c'est comme tout, ça s'apprend.
    Et après pour apprendre, on prend un cours sur internet (developpez.com est une bonne référence), on fait des tests pour voir comment il se comporte, pour le comprendre, et ensuite on se lance. Et il y a souvent assez de doc pour ne pas avoir de problème. Et comme d'habitude, même si la syntaxe et la philosophie peuvent différer, les langages ont le même vocabulaire : Un if restera toujours un if.
Je pense que l'on est beaucoup à fonctionner plus ou moins comme cela, moyennant certains détails. C'est à dire que le leitmotiv ne sera jamais d'apprendre à chaque projet un nouveau langage. Mais lorsque l'on se rend compte que c'est nécessaire, que l'on ne connait rien actuellement pour faire ce que l'on cherche à faire, il n'y a pas de raison d'avoir peur de le faire.
Je suis en désaccord total avec toi J-Nicolas, l'important ce n'est pas de connaître un seul langage à fond. Dans ce cas, tu cherches à tout faire avec ce langage, tu n'es pas habitué à changer, tu peux limite avoir peur d'apprendre autre chose, parce que "c'est trop dur". Et tu vas dans le mur dans ce cas.
Je vais en choquer quelques uns mais en principe apprendre un langage c'est une formalité. Il n'y a pas besoin d'en connaître tous les recoins pour l'utiliser. Il n'y a pas besoin de savoir que par défaut PHP4 rajoute des quotes sur ses entrées GET, POST et COOKIE, parce que en 5 minutes, tu te rends compte que ton script ne se comporte pas comme il devrait, en 5 minutes tu dois avoir trouvé d'où ça vient, et en 5 minutes tu es sur l'article de la doc qui parle de la directive magic_quotes_gpc.
Pour moi c'est ça réellement l'informatique, savoir comprendre comment fonctionne un système, savoir l'investiguer, sans avoir toutes les cartes en main, sans être l'expert ès la-super-techno-qui-tue-qui-a-permi-de-faire-ça.

PS : Delphi, un langage à "espaces" ???