IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Peut-on apprendre la programmation "en quelques jours"
Comme le proposent tant de livres ? Combien de temps faut-il au minimum ?

Le , par Gordon Fowler

1.2KPARTAGES

4  2 
Peter Norvig est un développeur qui a fait une expérience amusante. Il a effectué une recherche sur Amazon avec les mots « apprendre en quelques jours », puis « en quelques heures ». Il a alors constaté que 90% des résultats concernaient l'informatique.

Deux conclusions lui sont alors venues à l'esprit : soit le développement devient de plus en plus populaire, soit le développement est un chose très simple à apprendre.

En fait, Peter Norvig opte pour une troisième option qu'il reprend du livre « How To Design Programs » : « Mal programmer est facile, n'importe quel idiot peut le faire, même les Nuls (NDR : allusion à la série "Pour les Nuls" des Editions First) ».

La vérité, selon lui, est que n'importe quel champs d'activité exige une dizaine d'année de pratique avant de pouvoir s'en revendiquer expert. Qu'il s'agisse d'échecs, de piano, de sport ou de sciences, rien ne peut se faire en 7 jours, 24 heures ou 3 mois.

Pour lui, le développement ne fait pas exception.

Qu'il faille 10 ans, 10.000 heures ou une vie entière (en fonction des références qu'il cite), il faut du temps pour devenir un « vrai développeur ». Et Peter Norvig doute que les compétences nécessaires puissent se trouver dans des livres.

Il ne nie pas l'intérêt de les lire pour compléter son savoir (les bons, tout du moins), mais sa recette pour devenir développeur ne repose pas sur eux. Celle-ci mélange l'amusement et la passion, l'échange avec les autres programmeurs, le travail, le travail et encore le travail, la connaissance du hardware (dans développement informatique il y a le mot « informatique ») et l'implication dans les évolutions des standards.

A cela il ajoute des études dans le domaine (pour rentrer plus facilement dans le milieu) et l'apprentissage d'au moins une douzaine de langages différents.

Tout ce qui ne se trouve pas, en résumé, dans des livres « en 7 jours ».

« Allez y, achetez ce livre sur Java, il vous sera certainement utile », conclue-t-il. « Mais il ne changera pas votre vie ou votre expertise sur le sujet, que ce soit en 24 heures, jours ou mois ».

Et de rêver d'une librairie remplie de livres dont les titres seraient « Apprenez à programmer en plus de 10 ans » (ou « Learning Perl the Hard Way », PDF sous licence GNU Free Documentation) ?

Source : "Teach Yourself Programming in Ten Years" de Peter Norvig

Et vous ?

D'après votre expérience, combien de temps cela prend-il pour devenir développeur ?
Quelle place tiennent les livres dans votre formation ?
Qu'est-il possible d’apprendre en programmation “en quelques heures”, comme le proposent tant de livres ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de brulain
Membre habitué https://www.developpez.com
Le 06/09/2011 à 14:03
que la connaissance naît de l'expérience, tout le reste n'étant qu'information.

Si tant est que je le veuille, je peux peut-être 'apprendre' les règles du foot ou du basket en quelques heures ; mais jamais je ne parviendrais à atteindre le niveau des meilleurs joueurs.

Tout apprentissage demande plus ou moins de temps, en fonction de nos aptitudes et de notre motivation.

Le côté sympa de la chose, c'est que cela ne peut pas s'acheter.
19  1 
Avatar de Marco46
Expert éminent sénior https://www.developpez.com
Le 06/09/2011 à 15:29
Personnellement je n'ai eu qu'un an de formation professionnelle à l'AFPA.

Je considère qu'il m'a fallu ensuite 2 années d'expérience professionnelle pour atteindre la maîtrise de la programmation procédurale, puis 2 années de plus pour la maîtrise de l'objet.

Et je me considère seulement compétent, certainement pas expert.

Alors en quelques jours ...

C'est comme les pubs "perdez 10 kilos en 1 mois avec le régime Wetwetchers". C'est n'imp.
11  0 
Avatar de lucideluciole
Membre actif https://www.developpez.com
Le 06/09/2011 à 15:12
Il y a une différence entre apprendre un langage de programmation et apprendre à programmer. C'est beaucoup plus difficile d'apprendre à bien programmer...
10  0 
Avatar de helio500
Membre régulier https://www.developpez.com
Le 06/09/2011 à 14:19
Je pense qu'il a raison dans la totalité,
concernant les livres ils sont bien adaptés pour les débutants mais sont beaucoup trop superficiels pour quelqu'un qui connait déjà le sujet.
Si on veut se perfectionner il va falloir acquérir de l'expérience en développant.
C'est très facile de tester son niveau dans un langage, prendre un livre du style "apprendre en 21 jours..." et venir sur les forums developpez.com et lire des sujets que présentent certaines personnes (qui ne font pas parties de la section débutants) et on se rendra vite compte qu'on n'a pas un gros niveau...
7  0 
Avatar de Yo Eight
Membre averti https://www.developpez.com
Le 12/10/2011 à 12:27
En quelque heures il est surtout possible d'apprendre n'importe quoi !

Programmer c'est dur et ça nécessite beaucoup de travail, en tout cas quand on veux le faire correctement.
7  0 
Avatar de el_slapper
Expert éminent sénior https://www.developpez.com
Le 14/02/2012 à 9:35
Citation Envoyé par gps10 Voir le message
Le developpement est l'un des seules metiers où l'on ne peut pas "faire semblant": cela a été dejà vu, un faux medecin...et récemment un faux directeur...
(.../...)
Mouhahahahaha!!!

Tu n'as pas vu des hordes d'incapables présentés comme des supercadors par des commerciaux aux dents longues, passer dans des services, et dévaster tout sur leur passage(à tel point qu'on préfère encore les flemmards, qui eux au moins ne changent pas les noms des champs - en production - quand ils ont à modifier un champ qu'ils ne trouvent pas parcequ'ils regardent la mauvaise table).

Quand en plus le client direct n'est pas informaticien, un bluffeur peut faire illusion looooongtemps. Parfois plusieurs années.
7  0 
Avatar de Freem
Membre émérite https://www.developpez.com
Le 06/09/2011 à 14:21
Je suis globalement d'accord avec lui.
Cela fait 8 ou 9 ans que j'ai tapé mes 1ères lignes de code (ahh QBasic...) depuis je n'ai cessé d'apprendre.
Je n'ai que très peu utilisé de livres (d'ailleurs, c'est marrant, le seul que j'aie acheté, je l'ai trouvé très mauvais: "le C++ pour les nuls"... sic...) presque uniquement des ressources trouvées sur le net, et LA DOC des langages (gros remerciements au passage a dvp ou j'ai trouvé la plupart des ressources de qualité) et des heures a coder des trucs qui ne servent a presque rien si ce n'est assouvir une question que je me pose a un moment donné.
Il n'empêche que je ne me considère toujours pas bon, parce que je manque d'expérience professionnelle.

Sur le fait qu'il faille connaître une douzaine de langages, par contre, je ne le rejoins pas... Je ne suis même pas sûr d'en connaître 12 de nom!
Voyons voir ça:
basic, pascal, java, C/C++, asm, python, perl, ruby, smalltalk, brainfuck (niark), php, c#, ADA, powerbuilder,windev ,SQL... ?
Bon, il y a toujours les versions évoluées de certains d'entre eux: delphi pour pascal, vb pour basic, mais au fond, c'est pas un peu les mêmes, pour la même raison que l'on dis C/C++ souvent, et pas C et C++?

Sincèrement, j'ai fait le tour de tous ceux qui me viennent à l'esprit, et il n'y en a que 16! (je sais qu'il y en a d'autres, évidemment, mais ils me viennent pas a l'esprit)

D'ailleurs, apprendre la programmation, est-ce vraiment apprendre un langage?
Ce n'est pas plutôt développer une logique (algorithmique) que l'on peut appliquer à un outil (langage)?
Savoir utiliser les outils de dev (système de contrôle de version, pour ne citer que ça) n'est pas non plus négligeables, idem pour les méthodes (agile, par exemple) et ce sont des choses que je n'ai jamais eu la chance de voir en cours...

[edit]
au autre point que je note de plus en plus, c'est que les gens confondent langage et framework!
J'ai déjà entendu "je suis un dev .NET" alors que le gars ne connaît que le C#, et même pas à fond...
De même, en BTS, on nous enseignait le C++ sauce MS ou QT, on utilisait CString ou QString, jamais ou nous a parlé de std::string...

Savoir programmer, c'est savoir apprendre et se remettre en question avant tout pour moi, et même les nombreuses (a l'échelle de ma vie, hein) années pendant lesquelles j'ai appris en autodidacte ne me font pas prétendre être programmeur, au contraire: plus le temps passe, plus je suis humble.
7  1 
Avatar de Jbx 2.0b
Membre chevronné https://www.developpez.com
Le 06/09/2011 à 14:27
Même si quelques heures ou quelques jours ne suffisent de toute façon pas pour apprendre à développer, le temps d'apprentissage dépend malgré tout fortement du langage concerné.

Si j'ai pu avaler le développement Labview en quelques jours seulement (avec beaucoup d'antécédents sur divers langages qui m'ont largement facilité la tache...), après maintenant plus de 10 ans de langage C++ je continue à en découvrir certaines subtilités. Et si ces subtilités peuvent paraître futiles pour un développeur débutant, c'est pourtant ce qui ferra au final la différence sur la qualité du code produit.

Après il y a savoir programmer (à savoir réaliser un petit logiciel capable d'automatiser quelques tâches, une macro par exemple) et savoir concevoir une application complexe, avec sa phase d’architecture et de conception.
Si le premier cas peut éventuellement être appris en quelques heures, le second peut prendre des années pour être totalement maitrisé.
6  0 
Avatar de Tab
Membre averti https://www.developpez.com
Le 06/09/2011 à 15:17
Citation Envoyé par lucideluciole Voir le message
Il y a une différence entre apprendre un langage de programmation et apprendre à programmer. C'est beaucoup plus difficile d'apprendre à bien programmer...
Tout à fait, au mieux les livres enseignes une syntaxe et une ou deux spécifités du langage (sans parler des paradygmes).

Apprendre une syntaxe c'est quelques heures, apprendre à programmer c'est beaucoup plus long, je programme depuis plus de 10 ans dans divers langages et je ne me qualifierais pas de "bon développeur" comparé à mes pairs.
6  0 
Avatar de Makkintoch
Membre du Club https://www.developpez.com
Le 06/09/2011 à 15:43
Citation Envoyé par Marco46 Voir le message
Personnellement je n'ai eu qu'un an de formation professionnelle à l'AFPA.

Je considère qu'il m'a fallu ensuite 2 années d'expérience professionnelle pour atteindre la maîtrise de la programmation procédurale, puis 2 années de plus pour la maîtrise de l'objet.
Je sors également d'une formation AFPA "développeur logiciel". Cette formation n'est hélas aujourd'hui que d'une durée de 9mois (11 avant), dont 2 en entreprise.
Aujourd'hui j'ai la chance d'avoir trouvé mon premier emploi dans le domaine du développement web, mais je peux dire que s'il n'y avait pas internet ou mes collègues pour me mettre sur la voie a certains moment, je galérerai !

Un livre peut nous apprendre les bases, mais la maitrise viendra avec l'expérience.
6  0