OVH Cloud OVH Cloud

Quel langage de programmation apprendre ?

26 réponses
Avatar
Damienmou
Bonjour, ayant 14 ans et m'int=E9ressant beaucoup a l'informatique,
j'ai essay=E9 d'apprendre le plus de chose cot=E9 hardware enfin y a
toujours des trucs nouveaux mais ... Maintenant je veux me lancer dans
la partie software et commencer par les langages de programmation. Je
voudrais savoir par quel langage commencer ? On m'a conseill=E9 Ocaml ou
Python.


Merci d'avance

10 réponses

1 2 3
Avatar
Vincent Burel
Je ne pense pas que qqn qui ait commencé la programmation, par le 'C' puisse
conseiller "d'éviter le 'C' pour débuter". Le "C" est un langage presque
universel aujourd'hui, qui permet une maitrise total de la machine.
Et moi qui ai commencé par des Basic divers, notamment GFA basic sur Atari,
et plus tard du Pascal, Je déconseillerai de commencé par du Basic (c'est
une perte de temps, ces langages ne permettent pas de comprendre
l'informatique). Le Pascal est un bon langage, du même niveau que le 'C'
mais il manque le "PréProcesseur" et n'est plus trés usité aujourd'hui .
Donc le "C" m'apparait etre le meilleur langage pour apprendre la
programmation (avec un peu d'assembleur si affinité :-)

Je comprend qu'on puisse conseiller de se mettre directement au Java par
exemple, si le but est de faire rapidemment des appli évoluée, indépendente
de la machine. Mais s'il n'y a pas de contrainte de ce genre, commencer par
le "C" est certainement plus formateur.

VB


"Eric" wrote in message
news:
On 29 avr, 08:52, batyann811 wrote:


Enfin évite le C pour débuter.



Je suis du même avis, à moins de savoir déjà un peu vers quoi tu te
diriges. Mais si tu veux juste "gouter" à la programmation, un langage
plus moderne que le C te permettra de faire beaucoup plus de choses
assez vite, et donc de ne pas te dégoutter à faire un "gros" premier
programme très basique.
Ensuite, si ça te plait, le C est effectivement une excellente base
dont, personnellement, je manque un peu :).

Je pense aussi qu'il faut t'interroger sur la catégorie de programmes
qui t'intéresse. Typiquement, si tu touches à de la 3D, des jeux,
directX etc... alors il faudra clairement te diriger vers le C, puis
le C++. Pour des applications bureautiques ou web au sens large, je ne
pense pas que ce soit indispensable.
Avatar
batyann811
Vincent Burel wrote:

Je comprend qu'on puisse conseiller de se mettre directement au Java par
exemple, si le but est de faire rapidemment des appli évoluée, indépendente
de la machine. Mais s'il n'y a pas de contrainte de ce genre, commencer par
le "C" est certainement plus formateur.




C'est marrant mais je dirais exactement le contraire. Pour moi commencer
par le C ça me parrait plutôt un bon moyen de le dégouter et lui faire
prendre la mauvaise habitude de vouloir être trop proche de la machine
justement.

Quand tu débutes tu t'amuses surtout avec des chaînes et des tableaux
qui sont quand même plus simple à manipuler en java qu'en C. Pas à se
faire chier avec malloc, strlen, strcat, memcpy, free et autres
arithmétiques de pointeur sans parler des risques de débordements non
signalé par une exception qui peuvent te laisser croire que ton
programme fonctionne alors qu'il a un *gros* bug. Et puis rapidement le
débutant va vouloir passer à la programmation graphique. Avec Java il à
déjà tout ce qu'il faut avec le C rien. Il va falloir choisir entre tout
un tas de bibliothèque différents : SDL, Allegro, Gtk, Qt, WxWidget,
DirectX, api Win32... pas facile.
Avatar
Laurent
"batyann811" a écrit dans le message de news:
49f94f59$0$12638$

Quand tu débutes tu t'amuses surtout avec des chaînes et des tableaux qui
sont quand même plus simple à manipuler en java qu'en C. Pas à se faire
chier avec malloc, strlen, strcat, memcpy, free



Justement, dans ce cas, tu ne comprendras jamais comment marche l'OS et tu
ne seras jamais un vrai développeur.
Tu utiliseras juste des clickodromes où tout sera caché par une boite noire
et dès qu'il y aura un bug, tu seras complètement perdu. (il suffit de voir
le niveau des questions sur les forums pour enfants genre sdz...)
Une fois que l'on maitrise le C (plusieurs années), on peut passer
rapidement à n'importe quel autre langage les doigts dans le nez...
Avatar
Vincent Burel
"batyann811" wrote in message
news:49f94f59$0$12638$
Vincent Burel wrote:
>
> Je comprend qu'on puisse conseiller de se mettre directement au Java par
> exemple, si le but est de faire rapidemment des appli évoluée,


indépendente
> de la machine. Mais s'il n'y a pas de contrainte de ce genre, commencer


par
> le "C" est certainement plus formateur.
>

C'est marrant mais je dirais exactement le contraire. Pour moi commencer
par le C ça me parrait plutôt un bon moyen de le dégouter et lui faire
prendre la mauvaise habitude de vouloir être trop proche de la machine
justement.

Quand tu débutes tu t'amuses surtout avec des chaînes et des tableaux
qui sont quand même plus simple à manipuler en java qu'en C. Pas à se
faire chier avec malloc, strlen, strcat, memcpy, free et autres
arithmétiques de pointeur sans parler des risques de débordements non
signalé par une exception qui peuvent te laisser croire que ton
programme fonctionne alors qu'il a un *gros* bug. Et puis rapidement le
débutant va vouloir passer à la programmation graphique. Avec Java il à
déjà tout ce qu'il faut avec le C rien. Il va falloir choisir entre tout
un tas de bibliothèque différents : SDL, Allegro, Gtk, Qt, WxWidget,
DirectX, api Win32... pas facile.



C'est là qu'interviennent les tutorials et autres examples de code. Je me
rappelle avoir fait du basic dans les années 80, parce que y'avait des
revues et des exemples de code en basic (même dans les Sciences & Vie). (Bon
faut dire que sur ZX-80, y'avait pas le choix du langage non plus :-) Après
ca été pareil pour le Pascal. y'avait beaucoup d'exemple de code et pas mal
de bon bouquins ou revues francophones sur le sujet... Y'aurait eu autant de
littérature "vulgaire" sur le 'C' dans les année 80, je me serais mis au 'C'
(bon, il aurait aussi fallu que le "C" soit aussi plus présent dans
l'informatique grand public).

Quand "aux mauvaises habitudes", en programmation, je ne sais pas trop ce
que c'est, l'expérience montre qu'il y a trés peu de code source exemplaire
et que l'enjeu de la programmation est moins dans la maitrise du
langage que dans la maitrise de la méthode (la façon dont on résoud un
problème)... Et pour la question de la méthode, quelques soit langage choisi
pour débuter, ca va forcément être catastrophique :-)

VB
Avatar
batyann811
Laurent wrote:

Justement, dans ce cas, tu ne comprendras jamais comment marche l'OS et tu
ne seras jamais un vrai développeur.



Ouais mais malloc, free, strcat, memcpy tout çà c'est pour les nuls. Les
homme les vrais font de l'assembleur ! C'est bien plus formateur pour
apprendre comment marche un OS. Sans ça tu ne seras jamais un vrai
développeur.

Tu utiliseras juste des clickodromes où tout sera caché par une boite noire
et dès qu'il y aura un bug, tu seras complètement perdu. (il suffit de voir
le niveau des questions sur les forums pour enfants genre sdz...)



Parce qu'un débutant en C il trouve ses bugs tout de suite et ne pose
pas de question idiote lui ?

Une fois que l'on maitrise le C (plusieurs années), on peut passer
rapidement à n'importe quel autre langage les doigts dans le nez...




Mais bien sûr. Et la marmotte...

Un programmeur qui maîtrise le C et qui croit que grâce à ça il peut
passer à un autre langage les doigts dans le nez pondra de la merde dans
cette autre langage. L'inverse est probablement vrai aussi.
Avatar
batyann811
Vincent Burel wrote:

problème)... Et pour la question de la méthode, quelques soit langage choisi
pour débuter, ca va forcément être catastrophique :-)




Je m'insurge ! Mes premiers programmes en basic sur CPC 464 était
exemplaires. Réalisés avec toute la maîtrise d'un orfèvre à grand coup
de GOTO 150 et GOSUB 634. Le tout orné de lignes de DATA amoureusemment
rédigées.
Avatar
Vincent Burel
"batyann811" wrote in message
news:49f96313$0$17739$
Vincent Burel wrote:

> problème)... Et pour la question de la méthode, quelques soit langage


choisi
> pour débuter, ca va forcément être catastrophique :-)
>

Je m'insurge ! Mes premiers programmes en basic sur CPC 464 était
exemplaires. Réalisés avec toute la maîtrise d'un orfèvre à grand coup
de GOTO 150 et GOSUB 634. Le tout orné de lignes de DATA amoureusemment
rédigées.



:-) Ha ouai, mais là c'est structurel, c'est le langage qui oblige à abuser
du GOTO...

Je parlais plutot de méthodologie ! rappelez vous votre premier jeu, genre
"Le pendu" :-), où trier le "hall of fame" constituait le challenge du
programme. Après 30 lignes de "if else" imbriqués... vous décrétiez que le
Hall of Fame n'aura que 3 entrées (et non pas 10).

(et voila comment beaucoup ont préféré devenir chef de projet :-)
VB
Avatar
patrick
batyann811 a écrit :
> Une fois que l'on maitrise le C (plusieurs annees), on peut passer
> rapidement a n'importe quel autre langage les doigts dans le nez...

Mais bien sur. Et la marmotte...



Si, quand tu fais du C depuis 20 ans, tu passes a n'importe quel autre
langage sans effort.
C'est juste une question de syntaxe (ça m'a pris 1H pour passer au C++
et faire évoluer et maintenir des progs tournant en Prod chez un Gd
Cpte)
Et le langage n'est qu'un moyen pas une fin en soi.
Avatar
batyann811
patrick wrote:
Si, quand tu fais du C depuis 20 ans, tu passes a n'importe quel autre
langage sans effort.
C'est juste une question de syntaxe (ça m'a pris 1H pour passer au C++
et faire évoluer et maintenir des progs tournant en Prod chez un Gd
Cpte)
Et le langage n'est qu'un moyen pas une fin en soi.



Un langage ce n'est pas juste un syntaxe. Il y a aussi des façons de
faire à apprendre et des bibliothèques à savoir utiliser.

Tu veux me faire gober qu'en 1H tu peux apprendre le C++ ? Du vrai C++
hein pas du C compilé avec un compilateur C++. Avec des classes, de
l'héritage, des destructeurs virtuels, new/delete à la place de
malloc/free, des redéfinitions d'opérateur, les espaces de noms, les
templates et bien sûr la STL. T'es soit un surdoué, soit un menteur,
soit tu croyais faire du C++ mais tu n'en faisais pas...
Avatar
Bertrand Lenoir-Welter
batyann811 :

Quand tu débutes tu t'amuses surtout avec des chaînes et des tableaux
qui sont quand même plus simple à manipuler en java qu'en C. Pas à se
faire chier avec malloc, strlen, strcat, memcpy, free et autres
arithmétiques de pointeur sans parler des risques de débordements non
signalé par une exception qui peuvent te laisser croire que ton
programme fonctionne alors qu'il a un *gros* bug.



Hmm. Ca me paraît un peu intégriste comme point de vue. On n'est quand
même pas obligé de débuter en C en manipulant des pointeurs tous
azimuts. Même dans le K&R, les malloc/free n'arrivent pas vraiment au
tout début. Quant à comprendre les strcpy/strcat/strlen etc., c'est
quand même pas la mer à boire.

Moi j'ai débuté en ASM-6502, puis Pascal, puis C, puis C++. Si c'était à
refaire, je sauterais les 2 premières étapes, même si Pascal a été assez
formateur pour apprendre le solfège. Mais c'était il y a 25 ans. A la
limite, aujourd'hui je pourrais recommander un truc comme Delphi. Y'a
pire comme clickodrome. Et passer de Pascal à C n'est pas très pénible.

Pour résumer, je dirais que le C est peut-être un peu moins facile que
d'autres langages, mais il est sans doute celui qui laissera les traces
les plus durables et les plus constructives. Sauf si cet apprentissage
n'est qu'une brève passion d'ado, auquel cas mieux vaut utiliser des
trucs qui amuseront - et lasseront - plus vite, genre visual-bouse.
1 2 3