Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pédagogie : C++ ou Java ?

133 réponses
Avatar
Gilles
Bonjour à tous.

J'ai beaucoup apprécié le fil "Avis sur les include files" où ont été
abordées entre autres des questions sur l'enseignement du C++ et les "bonnes
habitudes" à enseigner en TP, ce qui m'incite à poster ce message.

Voici la situation : je suis enseignant en IUT - DUT informatique (Bac+2 à
vocation professionnelle). Jusqu'à maintenant la programmation était
enseignée au travers du C++. Il est fortement question de changer ce choix
dans notre IUT pour remplacer C++ par Java (actuellement un enseignement de
Java existe, mais en seconde année seulement, donc avec déjà une pratique du
C++ et les bases de la POO).

J'aimerais vos avis sur ces deux questions :
- quels sont les arguments en faveur (ou en défaveur) du C++ (par rapport à
Java) pour enseigner la POO à des débutants complets en programmation ? (et
pour qui, pour reprendre une remarque apparue dans le fil auquel je faisais
référence, il n'y a plus en majorité "de passion ou de réelle envie de faire
de l'informatique"...)
- est-il raisonnable de lâcher sur le marché du travail des informaticiens
"Bac+2" qui n'aient jamais programmé en C++ ?

Note personnelle : je ne suis pas le chargé de cours concerné, j'ai une
tendance à préférer le C++ (par mon parcours et par mon activité quotidienne
en recherche), mais je n'aurai aucune réticence à faire pratiquer Java si je
suis convaincu que c'est un meilleur choix pour mes étudiants.

Merci d'avance pour vos contributions qui nourriront sûrement le débat que
nous devrions avoir au sein de l'équipe pédagogique.

Gilles

10 réponses

Avatar
Sylvain SF
Fabien LE LEZ a écrit :

le troll du we a commencé bien tôt cette semaine,
fclc++ n'est pourtant pas coutumier.

Mais tout le monde ne se donne pas la peine de faire ça, en plus...



Ceux qui ont le choix (site perso par exemple) ont depuis longtemps
abandonné IE6, voire IE tout court.



ah le site de Mme Michu, la référence ... en web 2.0 on parle
au moins de cela non ?

Je ne comprendrai jamais les entreprises qui continuent à utiliser IE,


Inertie.



sur, tous des cons, cela ne peut pas être lié au fait que
les licenses OS de microsoft incluent une assistance (jusqu'à
sur site) pour tous problèmes liés aux composants standards
tandis que FF, Opéra, ... incluent ... oui quoi d'ailleurs ?

merci d'éviter de juger "les entreprises" sur des a priori
(même si votre expérience de l'entreprise se limite à cela).

Sylvain.
Avatar
Wykaaa
Sylvain SF a écrit :
Fabien LE LEZ a écrit :

le troll du we a commencé bien tôt cette semaine,
fclc++ n'est pourtant pas coutumier.

Mais tout le monde ne se donne pas la peine de faire ça, en plus...



Ceux qui ont le choix (site perso par exemple) ont depuis longtemps
abandonné IE6, voire IE tout court.



ah le site de Mme Michu, la référence ... en web 2.0 on parle
au moins de cela non ?

Je ne comprendrai jamais les entreprises qui continuent à utiliser IE,


Inertie.



sur, tous des cons, cela ne peut pas être lié au fait que
les licenses OS de microsoft incluent une assistance (jusqu'à
sur site) pour tous problèmes liés aux composants standards
tandis que FF, Opéra, ... incluent ... oui quoi d'ailleurs ?

merci d'éviter de juger "les entreprises" sur des a priori
(même si votre expérience de l'entreprise se limite à cela).

Sylvain.



Veuillez m'excuser mais il y a longtemps que j'ai constaté que les
"hot-lines" du libre, que sont les forums, sont bien plus réactives que
celles de Microsoft !
Avatar
James Kanze
On Feb 6, 11:48 am, Wykaaa wrote:
James Kanze a écrit :
> On Feb 6, 6:22 am, "Gilles" wrote:



>> Voici la situation : je suis enseignant en IUT - DUT
>> informatique (Bac+2 à vocation professionnelle). Jusqu'à
>> maintenant la programmation était enseignée au travers du
>> C++. Il est fortement question de changer ce choix dans
>> notre IUT pour remplacer C++ par Java (actuellement un
>> enseignement de Java existe, mais en seconde année
>> seulement, donc avec déjà une pratique du C++ et les bases
>> de la POO).



>> J'aimerais vos avis sur ces deux questions :
>> - quels sont les arguments en faveur (ou en défaveur) du C++
>> (par rapport à Java) pour enseigner la POO à des débutants
>> complets en programmation ? (et pour qui, pour reprendre une
>> remarque apparue dans le fil auquel je faisais référence, il
>> n'y a plus en majorité "de passion ou de réelle envie de faire
>> de l'informatique"...)
>> - est-il raisonnable de lâcher sur le marché du travail des
>> informaticiens "Bac+2" qui n'aient jamais programmé en C++ ?



> Beaucoup dépend des visées du cours. Avec un Bac+2, les
> élèves ne seront jamais des informaticiens généralistes,
> capables d'intervenir dans tout domaine. (Je ne sais même
> pas si c'est possible en général, quelque soit le niveau.)
> Avec un Bac+2, il n'y aura pas le temps d'aborder beaucoup
> de théorie ; il faudrait donc s'orienter sur le métier
> qu'ils pratiqueront une fois sortie de l'école. S'ils vont
> développer les sites Web, c'est Java (et HTML, et PHP, et
> peut-être Python et Perl) qu'il faut aborder ; le C++ n'y a
> vraiment pas de rôle signifiant. Si c'est pour les petits
> logiciels qui tournent sur PC (et uniquement sur PC), on
> pourrait aussi considérer le Java ou encore plus le C#. Si
> c'est pour prèsque n'importe quoi d'autre (des serveurs
> autres que les sites Web, des applications temps-réel, du
> calcul numérique...), le C++ leur serait plus utiles à la
> longue.



Je suis globalement d'accord avec toi sauf que je parlerais
plutôt de Ruby que Python ou Perl.



Peut-être. Je ne connais pas Ruby.

Mais il s'agit d'offrir ce qui sert réelement, plus que ce qui
serait le mieux. Et ce qui sert réelement dans ce domaine, je
crois, c'est surtout Perl, avec une partie grandissante de
Python.

Il faut parler de JavaScript dans le cadre du Web à cause
d'AJAX. JavaScript est un langage très mésestimé, à mon avis.



Tout à fait. On ne fait pas de l'HTML modern sans le Javascript.

Je ne suis pas d'accord sur "plus C# que Java" car Java est
maintenant presque dans le domaine du libre alors que C# est
propriétaire et que son langage intermédiaire (MSIL,
l'équivalent du bytecode) n'est pas très "inter-langages"
(.NET supporte d'autres langages mais pas l'ensemble de leurs
bibliothèques, ce qui est très piégeant).



Sauf que dans la pratique, toutes les petites applications qui
sont écrites uniquement pour tourner sous Windows sont
implémentée sur la base .NET. C'est donc .NET qu'il faut
enseigner (si ce genre d'applications est le but).

Les derniers projets que j'ai audités étaient dans le domaine
militaire (les systèmes de commandement des 3 armes). Je n'ai
vu quasiment que du C++ et du Java (des millions de lignes de
code).



C'est bien un domaine un peu spécial, je crois.

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Avatar
James Kanze
On Feb 6, 11:58 am, (Marc Espie) wrote:
In article <498bc8f4$0$18388$,



Gilles wrote:
>Voici la situation : je suis enseignant en IUT - DUT
>informatique (Bac+2 à vocation professionnelle). Jusqu'à
>maintenant la programmation était enseignée au travers du
>C++. Il est fortement question de changer ce choix dans notre
>IUT pour remplacer C++ par Java (actuellement un enseignement
>de Java existe, mais en seconde année seulement, donc avec
>déjà une pratique du C++ et les bases de la POO).



De mon point de vue, C++ est infiniment superieur a Java cote
apprentissage de la programmation correcte.



De quelle définition de la programmation « correcte » ?

S'il s'agit d'apprendre les principes de programmation, au
niveau le plus général, ni l'un ni l'autre suffit. S'il s'agit
de faire des « beans » ou des petites applications non critiques
sous Windows (présentation des données), Java fait l'affaire
largement, et son environment supporte plus ces genres
d'applications (intégration dans le serveur de Web, présense
d'une bibliothèque GUI standard de qualité) ; dans ces domaines,
c'est bien Java ou C# qu'ils font voir par la suite, et pour un
Bac+2, on est en train de former des techniciens, non des
« professionnels » (dans le sens qu'un médecin ou un avocat --
ou un conseilleur en informatique -- sont des professionnels).
Alors, ce qui va leur servir directement prime.

En Java, on peut programmer comme un goret et obtenir du code
qui "tourne" (avec plein de bugs mineurs et d'aberrations de
comportement, mais globalement qui fonctionne).



Ce n'est pas mon expérience dans l'absolue. C'est souvent le cas
dans le pratique, mais pour la simple raison que les
applications écrites en Java sont typiquement beaucoup plus
petites que celles écrites en C++. Et les petites applications
tolèrent bien une approche moins rigueureuse.

Dans le cadre de l'enseignement, c'est le rôle du professeur
d'inculquer les bonnes pratiques, non le langage. Et C++
n'encourage pas toujours les meilleurs pratiques non plus.

En C++, la premiere incomprehension sur les pointeurs, et,
paf, on dit au revoir.



En C++, on peut (et au niveau de l'application, on doit)
utiliser les pointeurs exactement comme en Java. Avec la
différence, en C++, qu'on peut (et doit) faire beaucoup sans le
moindre pointeur. À cet égard, c'est même le Java qui est plus
exigeant.

On peut faire du Shadok en Java (reessayer sans comprendre
jusqu'a obtenir quelque chose), c'est beaucoup plus dur en
C++.



Malheureusement, j'ai vu beaucoup de programmateurs qui le fait
en C++. Mais c'est vrai que c'est en général plus difficile
d'arriver au point où le code ne crash pas en C++ qu'en Java.

Par contre, s'il s'agit d'explorer des techniques de
programmation industrielles modernes, java est plus
interessant, car il existe suffisamment de bibliotheques a peu
pres finies pour pouvoir faire des bases de donnees, de la
programmation web, du xml... (a ce stade, je prefererais le
perl, mais c'est moi).



Java explose egalement C++ a plates coutures cote opportunites
d'embauche pour certains types de profil... par exemple, pour
du Bac+2 a vocation professionnelle.



Exactement.

Encore que... J'ai l'impression que l'utilisation des
« techniciens » dans les grands projets périclite. Au fond, il
n'y a pas besoin que tous les programmeurs soient des ingenieurs
haut de gamme ; il suffit d'un ou de deux pour établir les
règles, et implémenter les parties les plus critiques, mais même
dans les applications plus ou moins critiques, il y en a
énormement de programmation qui est assez méchanique, donnée une
bonne conception.

Les contraintes temporelles et materielles etant ce qu'elles
sont, je crains que dans ton cas, le passage a Java soit
inevitable, et constitue une bonne chose pour l'avenir
professionnel de tes etudiants... et soit une catastrophe
vis-a-vis de la qualite du code produit a terme, mais on ne
peut pas tout avoir.



Tout dépend de la qualité des enseignants. L'enseignement de
Java ne mène pas forcement à la catastrophe, et l'enseignement
de C++ ne l'évite pas forcement non plus.

--
James Kanze (GABI Software) email:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Avatar
Wykaaa
James Kanze a écrit :
On Feb 6, 11:48 am, Wykaaa wrote:
James Kanze a écrit :
On Feb 6, 6:22 am, "Gilles" wrote:





Voici la situation : je suis enseignant en IUT - DUT
informatique (Bac+2 à vocation professionnelle). Jusqu'à
maintenant la programmation était enseignée au travers du
C++. Il est fortement question de changer ce choix dans
notre IUT pour remplacer C++ par Java (actuellement un
enseignement de Java existe, mais en seconde année
seulement, donc avec déjà une pratique du C++ et les bases
de la POO).







J'aimerais vos avis sur ces deux questions :
- quels sont les arguments en faveur (ou en défaveur) du C++
(par rapport à Java) pour enseigner la POO à des débutants
complets en programmation ? (et pour qui, pour reprendre une
remarque apparue dans le fil auquel je faisais référence, il
n'y a plus en majorité "de passion ou de réelle envie de faire
de l'informatique"...)
- est-il raisonnable de lâcher sur le marché du travail des
informaticiens "Bac+2" qui n'aient jamais programmé en C++ ?







Beaucoup dépend des visées du cours. Avec un Bac+2, les
élèves ne seront jamais des informaticiens généralistes,
capables d'intervenir dans tout domaine. (Je ne sais même
pas si c'est possible en général, quelque soit le niveau.)
Avec un Bac+2, il n'y aura pas le temps d'aborder beaucoup
de théorie ; il faudrait donc s'orienter sur le métier
qu'ils pratiqueront une fois sortie de l'école. S'ils vont
développer les sites Web, c'est Java (et HTML, et PHP, et
peut-être Python et Perl) qu'il faut aborder ; le C++ n'y a
vraiment pas de rôle signifiant. Si c'est pour les petits
logiciels qui tournent sur PC (et uniquement sur PC), on
pourrait aussi considérer le Java ou encore plus le C#. Si
c'est pour prèsque n'importe quoi d'autre (des serveurs
autres que les sites Web, des applications temps-réel, du
calcul numérique...), le C++ leur serait plus utiles à la
longue.





Je suis globalement d'accord avec toi sauf que je parlerais
plutôt de Ruby que Python ou Perl.



Peut-être. Je ne connais pas Ruby.

Mais il s'agit d'offrir ce qui sert réelement, plus que ce qui
serait le mieux. Et ce qui sert réelement dans ce domaine, je
crois, c'est surtout Perl, avec une partie grandissante de
Python.

Il faut parler de JavaScript dans le cadre du Web à cause
d'AJAX. JavaScript est un langage très mésestimé, à mon avis.



Tout à fait. On ne fait pas de l'HTML modern sans le Javascript.

Je ne suis pas d'accord sur "plus C# que Java" car Java est
maintenant presque dans le domaine du libre alors que C# est
propriétaire et que son langage intermédiaire (MSIL,
l'équivalent du bytecode) n'est pas très "inter-langages"
(.NET supporte d'autres langages mais pas l'ensemble de leurs
bibliothèques, ce qui est très piégeant).



Sauf que dans la pratique, toutes les petites applications qui
sont écrites uniquement pour tourner sous Windows sont
implémentée sur la base .NET. C'est donc .NET qu'il faut
enseigner (si ce genre d'applications est le but).




Je ne vois pas pourquoi il faudrait enseigner .Net plutôt que J2EE ou
l'inverse...
Il faut enseigner les technologies qui font l'objet de standards et qui
sont le plus portables possible.
Dans le cadre de l'Internet, il faut se baser sur les standards de
L'IETF et du W3C.
Dans le domaine de l'ingénierie logicielle il faut se baser sur les
standards ISO, IEEE, OMG, etc.
Tout le reste doit être évité dans l'enseignement.


Les derniers projets que j'ai audités étaient dans le domaine
militaire (les systèmes de commandement des 3 armes). Je n'ai
vu quasiment que du C++ et du Java (des millions de lignes de
code).



C'est bien un domaine un peu spécial, je crois.



Mais les petites applis, c'est aussi un domaine spécial par rapport aux
centaines de millions de grosses applications métier internes aux
entreprises !
Avatar
Fabien LE LEZ
On Sat, 7 Feb 2009 02:42:54 -0800 (PST), James Kanze
:

C'est donc .NET qu'il faut enseigner



Je suis toujours dubitatif sur l'idée d'enseigner des technologies
Microsoft. Si ça se trouve, dans cinq ans MS aura décidé que
finalement, c'est pas une bonne idée, mais
regardez-donc-notre-super-nouvelle-technologie.
Avatar
Yann K.
Gilles a écrit :
Bonjour à tous.

J'ai beaucoup apprécié le fil "Avis sur les include files" où ont été
abordées entre autres des questions sur l'enseignement du C++ et les "bonnes
habitudes" à enseigner en TP, ce qui m'incite à poster ce message.

Voici la situation : je suis enseignant en IUT - DUT informatique (Bac+2 à
vocation professionnelle). Jusqu'à maintenant la programmation était
enseignée au travers du C++. Il est fortement question de changer ce choix
dans notre IUT pour remplacer C++ par Java (actuellement un enseignement de
Java existe, mais en seconde année seulement, donc avec déjà une pratique du
C++ et les bases de la POO).

J'aimerais vos avis sur ces deux questions :
- quels sont les arguments en faveur (ou en défaveur) du C++ (par rapport à
Java) pour enseigner la POO à des débutants complets en programmation ? (et
pour qui, pour reprendre une remarque apparue dans le fil auquel je faisais
référence, il n'y a plus en majorité "de passion ou de réelle envie de faire
de l'informatique"...)
- est-il raisonnable de lâcher sur le marché du travail des informaticiens
"Bac+2" qui n'aient jamais programmé en C++ ?

Note personnelle : je ne suis pas le chargé de cours concerné, j'ai une
tendance à préférer le C++ (par mon parcours et par mon activité quotidienne
en recherche), mais je n'aurai aucune réticence à faire pratiquer Java si je
suis convaincu que c'est un meilleur choix pour mes étudiants.

Merci d'avance pour vos contributions qui nourriront sûrement le débat que
nous devrions avoir au sein de l'équipe pédagogique.

Gilles




Hello !

Je suis étudiant en DUT AS Informatique et auparavant j'ai fait un Bsc
en Physique où j'ai appris le C++.
Cette année j'ai commencé par le Java, et franchement, je ne sais que te
dire.
Je dirais presque que il faut apprendre les deux en mêmes temps ;) ( et
virer les cours de gestion & cie qui n'ont rien à foutre en info :P).

Plus sérieusement, je trouve les étudiants de moins en moins apte à
apprendre facilement de nouveaux languages, et ils ont toujours plus
envie de voir qqch de pro arrivé très rapidement.
Aussi, je pencherais pour le Java. Il gagne de plus en plus en
popularité, il permet aisément de faire la transition vers les serveurs
d'applications avec Java EE, et il permet selon moi d'intégrer plus
rapidement les concepts de POO et de motiver les étudiants à vouloir en
apprendre plus.

Cependant, repousser le C++ en deuxieme année ... Ca me briserait le
coeur ! Mais par ex, apprendre le C++ en deuxieme semestre, c'est tout
de suite plus acceptable, et ca permet en ayant bosser sur du Java de
directement passer aux trucs intéressants en C++ : SDL, OpenGL & cie.

Je ne suis pas tout à fait d'accord avec ceux qui disent que le C++ par
son coté plus exigeant procure un meilleur apprentissage.
Au contraire, devoir être vite amené à gérer la mémoire, les exceptions
tout ca, lui fera faire des erreurs desquels il n'apprendra pas grand
chose, tout ce que ca produira, ce sera de la démotivation.

Python, je trouve que ca serait bien que ce soit plus enseigné, mais
comme une cerise sur le gateau : on étudie le CSH cette année, je trouve
que c'est une honte à l'époque du bash, python et ruby ... Après avoir
étudié Java et C++, apprendre Python comme un language de "shell
amélioré" puis montrer qu'on peut faire bcp plus de choses ca serait
parfait.

On étudie le COBOL cette année et je trouve que c'est ridicule. Je
préférerais largement apprendre une "technologie d'avenir" comme Python
qui me permettrait par ex de faire joujou sur Google Engine ( - et de
présenter ca comme projet dans sa future entreprise (cf.avenir
professionnel - ) que un language uniquement plébiscité par qqs vieilles
entreprises.

Alors, quid de l'avenir professionnel suivant la technologie enseignée ?
Je trouve l'adage qu'on se forme sur le terrain de moins en moins vrai
vu qu'on demande de maitriser plus en plus de choses en de moins en
moins de temps. Aussi, utiliser Java pour former à la programmation, un
language facile me semble une bonne idée. Puis faire les choses poussées
en C++ puisque ce language authorise beaucoup plus de choses. Enfin,
orienter le futur travailleur vers des nouvelles technologies en le
poussant à maitriser de par lui meme de nouveaux languages en lui
inculcant des préceptes de nouveaux trucs bien puissants comme le Python.

Yann

PS : Si je peux suggérer aussi qqch, ca serait tellement cool de mettre
un peu plus les mains dans le cambouis en voyant tout ce qui est
programmation machine. Je demande pas de l'assembleur, mais savoir faire
un peu de microproc x86 ou du microproc genre ATMEL, ça je trouve ca
serait un vrai plus ! Et ca se fait en C en plus ;).

PS2: Ah au fait : Pas de technologies Microsoft, please ! Le C# si il en
a besoin et qu'il a vu Java+C++ il s'y formera facilement ... Mais Java
et C++ il poourra faire tourner ca partout ... C'est pas le cas du C# !
Avatar
Fabien LE LEZ
On Sat, 07 Feb 2009 20:08:29 +0100, "Yann K." :

Je ne suis pas tout à fait d'accord avec ceux qui disent que le C++ par
son coté plus exigeant procure un meilleur apprentissage.
Au contraire, devoir être vite amené à gérer la mémoire,



Certainement pas "vite". Certes, il y a des cas où on doit gérer
soi-même la mémoire. Mais c'est un concept qui n'a guère d'utilité
tant qu'on n'est pas plongé dans le polymorphisme dynamique.

les exceptions



La gestion des exceptions n'est pas si intrusive que ça[*]. Tout au
plus doit-on apprendre très tôt le principe RAII, qui de toute façon
est totalement indispensable, et permet de gérer toutes les ressources
(mémoire, fichiers, sockets, etc.) de la même façon -- ou plutôt de ne
pas les gérer, et les laisser se fermer tous seuls au bon moment.


[*] En fait, dans pas mal de programmes que j'écris, la règle est
simple : toute erreur est considérée comme un échec total du
programme. Ce qui fait que toute la gestion d'exceptions se résume à :

void RealMain()
{
...
}

int main()
{
try
{
RealMain();
return EXIT_SUCCESS;
}
catch (std::exception const& e)
{
std::cerr << e.what() << "n";
return EXIT_FAILURE;
}
}
Avatar
Yann K.
Je souhaite juste préciser après relecture, que je ne dis pas que Python
soit ce qu'il y a de plus indiqué pour apprendre le script.
Mais perso ca me rebute d'avoir du CSH alors que je sais que je pourrais
apprendre de 1 du bash beaucoup plus répandu ( oui oui je sais tu en
apprends un tu sais les autres mais les ptites habitudes font souvent
qu'on choisit l'un ou l'autre après ) puis de 2 d'avoir qqs lecons sur
du Python pour voir ô combien c'est extensible.

Yann K. a écrit :
Gilles a écrit :
Bonjour à tous.

J'ai beaucoup apprécié le fil "Avis sur les include files" où ont été
abordées entre autres des questions sur l'enseignement du C++ et les
"bonnes habitudes" à enseigner en TP, ce qui m'incite à poster ce
message.

Voici la situation : je suis enseignant en IUT - DUT informatique
(Bac+2 à vocation professionnelle). Jusqu'à maintenant la
programmation était enseignée au travers du C++. Il est fortement
question de changer ce choix dans notre IUT pour remplacer C++ par
Java (actuellement un enseignement de Java existe, mais en seconde
année seulement, donc avec déjà une pratique du C++ et les bases de la
POO).

J'aimerais vos avis sur ces deux questions :
- quels sont les arguments en faveur (ou en défaveur) du C++ (par
rapport à Java) pour enseigner la POO à des débutants complets en
programmation ? (et pour qui, pour reprendre une remarque apparue dans
le fil auquel je faisais référence, il n'y a plus en majorité "de
passion ou de réelle envie de faire de l'informatique"...)
- est-il raisonnable de lâcher sur le marché du travail des
informaticiens "Bac+2" qui n'aient jamais programmé en C++ ?

Note personnelle : je ne suis pas le chargé de cours concerné, j'ai
une tendance à préférer le C++ (par mon parcours et par mon activité
quotidienne en recherche), mais je n'aurai aucune réticence à faire
pratiquer Java si je suis convaincu que c'est un meilleur choix pour
mes étudiants.

Merci d'avance pour vos contributions qui nourriront sûrement le débat
que nous devrions avoir au sein de l'équipe pédagogique.

Gilles



Hello !

Je suis étudiant en DUT AS Informatique et auparavant j'ai fait un Bsc
en Physique où j'ai appris le C++.
Cette année j'ai commencé par le Java, et franchement, je ne sais que te
dire.
Je dirais presque que il faut apprendre les deux en mêmes temps ;) ( et
virer les cours de gestion & cie qui n'ont rien à foutre en info :P).

Plus sérieusement, je trouve les étudiants de moins en moins apte à
apprendre facilement de nouveaux languages, et ils ont toujours plus
envie de voir qqch de pro arrivé très rapidement.
Aussi, je pencherais pour le Java. Il gagne de plus en plus en
popularité, il permet aisément de faire la transition vers les serveurs
d'applications avec Java EE, et il permet selon moi d'intégrer plus
rapidement les concepts de POO et de motiver les étudiants à vouloir en
apprendre plus.

Cependant, repousser le C++ en deuxieme année ... Ca me briserait le
coeur ! Mais par ex, apprendre le C++ en deuxieme semestre, c'est tout
de suite plus acceptable, et ca permet en ayant bosser sur du Java de
directement passer aux trucs intéressants en C++ : SDL, OpenGL & cie.

Je ne suis pas tout à fait d'accord avec ceux qui disent que le C++ par
son coté plus exigeant procure un meilleur apprentissage.
Au contraire, devoir être vite amené à gérer la mémoire, les exceptions
tout ca, lui fera faire des erreurs desquels il n'apprendra pas grand
chose, tout ce que ca produira, ce sera de la démotivation.

Python, je trouve que ca serait bien que ce soit plus enseigné, mais
comme une cerise sur le gateau : on étudie le CSH cette année, je trouve
que c'est une honte à l'époque du bash, python et ruby ... Après avoir
étudié Java et C++, apprendre Python comme un language de "shell
amélioré" puis montrer qu'on peut faire bcp plus de choses ca serait
parfait.

On étudie le COBOL cette année et je trouve que c'est ridicule. Je
préférerais largement apprendre une "technologie d'avenir" comme Python
qui me permettrait par ex de faire joujou sur Google Engine ( - et de
présenter ca comme projet dans sa future entreprise (cf.avenir
professionnel - ) que un language uniquement plébiscité par qqs vieilles
entreprises.

Alors, quid de l'avenir professionnel suivant la technologie enseignée ?
Je trouve l'adage qu'on se forme sur le terrain de moins en moins vrai
vu qu'on demande de maitriser plus en plus de choses en de moins en
moins de temps. Aussi, utiliser Java pour former à la programmation, un
language facile me semble une bonne idée. Puis faire les choses poussées
en C++ puisque ce language authorise beaucoup plus de choses. Enfin,
orienter le futur travailleur vers des nouvelles technologies en le
poussant à maitriser de par lui meme de nouveaux languages en lui
inculcant des préceptes de nouveaux trucs bien puissants comme le Python.

Yann

PS : Si je peux suggérer aussi qqch, ca serait tellement cool de mettre
un peu plus les mains dans le cambouis en voyant tout ce qui est
programmation machine. Je demande pas de l'assembleur, mais savoir faire
un peu de microproc x86 ou du microproc genre ATMEL, ça je trouve ca
serait un vrai plus ! Et ca se fait en C en plus ;).

PS2: Ah au fait : Pas de technologies Microsoft, please ! Le C# si il en
a besoin et qu'il a vu Java+C++ il s'y formera facilement ... Mais Java
et C++ il poourra faire tourner ca partout ... C'est pas le cas du C# !


Avatar
Sylvain SF
Wykaaa a écrit :

Veuillez m'excuser mais il y a longtemps que j'ai constaté que les
"hot-lines" du libre, que sont les forums, sont bien plus réactives que
celles de Microsoft !



dont acte, ton expérience (à toi) d'un libre (ne surtout
pas dire lequel ni pour quel service) fut efficace.

cela conforte hélas mon point précédent.

(btw, je note avoir posté - une fois de plus - après Fabien,
il n'y avait rien de tourner contre son propos seul dans ma
réaction).

Sylvain.