Dans la mesure où l'école ne peut pas faire apprendre 50 langages différents aux étudiants, ce qui n'aurait de toute façon aucun sens en admettant que ce soit possible, la majorité des élèves apprennent à l'école un langage qui n'est pas celui qu'ils pratiqueront dans leurs vie professionnelle. En conséquence, il faut pour moi favoriser un cycle d'apprentissage qui améliore la vitesse et la qualité d'apprentissage en autodidacte des langages non vus a l'école.
Bien que je suis certain que beaucoup seront en total désaccord, l'expérience m'a montré que les gens qui ont été initié a la programmation avec des langages haut niveau tels que Python, PHP ou même Java/C#, ont beaucoup de mal a se faire à un langage qu'ils n'ont jamais vu. Alors que ceux qui ont fait des langages beaucoup plus bas niveau tels que le C ou le C++, sans forcément être spécialement bon dans ces langages, migrent beaucoup plus facilement vers autre chose.
Bien évidemment, ça ne veut absolument pas dire que c'est une règle générale applicable sans exception. Il y a toujours des gens qui apprennent tel ou tel langage d'abord et qui deviennent très bon dans ce langage et sont capable d'apprendre facilement autre chose après.
C'est pour ces raison que je pense qu'il faut commencer par 30 minutes d'assembleur... Littéralement 30 minutes.
Le but n'est absolument pas d'apprendre a programmer en assembleur, mais de comprendre comment est-ce que la machine fonctionne. Je ne comptes même plus les gens que je reçois a la sortie d'un BTS SIO ou équivalent et qui sont persuadés que le processeur lit un fichier texte et comprend "if", "else", "while", etc... Pour eux, ils savent donner des ordre a la machine, ils savent que la machine peut recevoir des ordre, mais le "comment" tiens de la magie.
Et puis ca ne fait pas de mal de savoir ce qu'est la vrai difficulté. Il y a beaucoup trop de gens a se plaindre d'aise...
Ensuite il faut passer sur du C, pas forcément très longtemps non plus, la encore le but n'est pas d'apprendre a développer en C en milieu pro. Si le langage utilisé par l'entreprise n'est pas le C, on se moque totalement que la personne ne soit pas très douée. Le but est d'apprendre la gestion des ressources, de la mémoire. La différence entre une valeur et une référence. Je ne sais pas si le C est le plus adapté pour apprendre ces choses, mais en tout cas il n'est pas mauvais. En fait l'important ici c'est d'avoir un langage qui apprenne l'existence des choses qui sont masquées dans les langages de plus haut niveau (certains diront "modernes"

, alors C ou autre chose, tant qu'il faut gérer les ressources, qu'il faut tout typer, qu'il n'y a pas de garbage collector, etc...
Quand on connais tout ça, s'en passer dans un langage qui les masque ne pose aucune difficulté. Mais quand on a appris avec un langage qui masque tout ça et donc qu'on ne connais rien à ces choses, passer sur un langage qui ne les masque pas est une vrai galère.
La encore, je rappel que pour moi le but de l'apprentissage en école n'est pas de sortir en connaissant le langage le plus utiliser en entreprise, mais plutôt d'être capable d'apprendre très rapidement le langage utilisé dans l'entreprise où on est pris.
Enfin, passer sur a peu près n'importe quel langage, peu importe, pour le reste de l'apprentissage (voir les choses de plus haut niveau). Le gros de l'apprentissage peut se faire sur Java, Python, Whatever, tant que les bases posées par l'assembleur et le C sont connues. Mais ça peut également être du C/C++. Je pense qu'un langage objet est important dans la mesure où énormément de langage sont objet ou on des notions très proches. Sachant également qu'on peut tout à fait avoir de la gestion automatique de la mémoire et des ressources sur du C++, il reste un choix envisageable.
Toutes les personnes que je connais qui ont eu ce cursus n'ont eu aucune difficultés particulière a apprendre le langage utilisé en entreprise, qu'il soit le Java, le Python, le PHP, le Javascript, etc...
Par contre, pas une seule des personne de ma connaissance ayant commencé par Python, Perl ou PHP, a été capable de changer de langage sorti de l'école...
Évidemment il se peut que ce soit une coïncidence. Peut être que mes connaissances qui ont commencés par Python étaient juste nuls et donc trop débiles pour apprendre autre chose. C'est tout à fait possible.
Encore une fois, c'est mon expérience perso, ce n'est donc clairement pas significatif et d'autres auront probablement des expériences très différentes.
EDIT: humm... je ne m'étais pas aperçu que j'avais écris un tel pavé... désolé
25 |
1 |