Très honnêtement, ce que tu as connu avec la POO, ma génération risque fort de la connaître avec la mêta-programmation... Personne ne semble s'en inquiété outre mesure >< !
Très honnêtement, ce que tu as connu avec la POO, ma génération risque fort de la connaître avec la mêta-programmation... Personne ne semble s'en inquiété outre mesure >< !
Pour en fustiger certains... C++ est rarement étudié dans le cursus scolaire...
C oui, mais C++... très peu, voir jamais, car les profs le trouve trop permissif, et appels ca pour n'en plagier que certains... une merde programmé objets.
Le fait est que la grande majorité d'entre eux ne sais comment on programme en C++ et préfère fustiger ce langage.
Tout ceci engendre que nombre de développeurs arrivent sur le marché et surprise... face à C++ où l'on peut écrire du bon comme du mauvais sans pour autant se faire insulter par le compilateur, mais uniquement par les phases de tests automatiques... Et bien le choc est rude, et le cout en temps également.
Cette sacrosainte conception du pointeur n'est malheureusement quasiment jamais enseignée correctement ce qui engendre des problème, des bugs, et autres joyeusetés.
Cela dit, utiliser la STL parce qu'on est pas assez mature et brillant pour faire son propre framework, et utiliser tout particulièrement les dernières intégrations de la STL, visant à "managé" la mémoire, est encore plus une hérésie laissant le développeur dans la fange de son incompétence, lui permettant ainsi encore plus d'écrire n'importe quoi sans cette fois se faire incendier par la phase de tests.
J'ai malheureusement vu passer pas mal de développeurs, avec des cursus variés. Je ne dois cependant avoué que les seuls qui m'aient bluffés, sont les auto-didactes... Les autres ne sont plus capable de réfléchir par eux même dès qu'on les sorts du cadre conformiste de ce qu'ils ont pu voir à l'école. (sans parler des CV bidonnés de ptits malins qui croient bien faire en indiquant une expérience en C++ alors qu'ils ont a peine vu Java en DUT, et qui pensent que sous prétexte que Java a été tiré de C++ pour son écriture, c'est du pareil au même...)
En ce qui concerne le sempiternel débat UML/Merise... Effectivement ces deux outils ne sont pas dévolus à la même utilité.
* Merise est une méthode d'analyse uniquement, qui ne s'affaire qu'aux systèmes de données, et donc aux bases de données. Celui-ci est d'ailleurs très utile, si tu considère non pas une DB à concevoir, mais un SGBD.
* UML est un très bon langage, et une excellente méthode d'analyse qui est plus générique mais s'affaire surtout au développement d'un applicatif, sa structure, son squelette, et nécessite l'apprentissage au préalable de la POO car UML est entièrement basé sur la POO.
Bien entendu UML pourrait être utilisé pour concevoir une BD, pour les MCD, MPD, mais ce serait un tord... Une méthode spécialement conçut pour existe... pourquoi utiliser une analyse générique ?
Personnellement on m'a parallèlement enseigné les deux, et je trouve que les deux se complètent. En effet, Merise possède toute une phase destinée à l'optimisation de la base de données, tout une cheminement de pensée, pour ce qui est du MCP, qui n'existe pas dans UML...
Je ne doute pas qu'il existe une autre façon de penser une base de données, en réalité, il en existe une myriade... mais cette méthode n'est pas incompatible avec d'autres, c'est une méthode, ni plus ni moins...
Le fait est qu'a l'étranger on enseigne à peine UML... alors forcément... ca fait rager certains quand on leur enseigne les Deux... ba voui... pourquoi apprendre plus quand les autres encore plus médiocre en apprenne 2 fois moins en 2 fois plus de temps ? J'appel cela la course à l'ignorance et tous les étudiants en sont victimes...
Le problème est que tous ces charmants développeurs que j'ai vu passé sur un projet que je dirigeait... j'aie due, comble du comble, en plus de les former à travailler sur cet applicatif, les former à la POO, et au langage C++ et à Java et à C#...
Pourtant j'en ai vu sortir d'un peu partout, DUT, BTS, BTS+Licence Pro, DUT+Licence Pro, Master Info...
et oui meme des master info, qui ont confondu écoles, temple du savoir, et écoles, écoles de beuveries et de fetes à tout casser.
Tout ce que j'ai malheureusement constaté c'est qu'aucun à part un autodidacte n'avait un niveau correcte, alors encore moins un niveau d'excellence...
Alors quand je vois le niveau des développeurs français... j'ai assez peur quand au niveau des développeurs étrangers.
Ce qui explique aussi pourquoi nous avons si mauvaise presse à l'étranger.
La majorité des "crétins" mals formés que j'ai vu passés, sont typiquement les développeurs, qui se complaisent dans leur suffisance sous prétexte que l'enseignement qu'ils ont reçut est plus complet que celui des étrangers, et du coup cela fait clash, car nul n'apprécie de se faire rabrouer pour cela...
Après tout ils ne sont pas responsables du fait que leur enseignement soit encore plus désastreux que le notre...
De plus cette suffisance, les empêches pour nombres de s'auto-critiquer et de s'auto-former provoquant ainsi une inertie, sur les idées, les points de vues, les méthodes, et pour finir, les compétences.
Quand à la frilosité des entreprises... parfois, c'est un bien, mais souvent un mal.
Pour le produit dont j'ai ravi la gestion et la direction à mon supérieur hiérarchique, pour son plus grand bonheur d'ailleurs, j'ai due imposer ma vision des choses à mon entreprise qui refusait d'ouvrir les yeux et gardait ses œillères et était restée coincée sur cette vision désuette et au combien fausse des années 1998-2002 représentée en cela par son DSI.
Passé les 2 premiers mois, pour recoder entièrement l'architecture de l'applicatif dans un nouveau langage plus approprié et tirant partie des technologies et des avancées, et des méthodologies actuelles, les temps de développement sont passé du triple au simple, les limitations techniques alors rencontrées entièrement fléchies, les temps d'exécution ont été diminués par 10 pour un flux de données à traiter, 20 fois supérieur.
(pour les temps d'exécution, les algorithmes revues et corrigés et le choix d'algorithmes plus judicieux y est également pour quelque chose)
Et surtout l'applicatif est passé d'un stade monolithique en code spaghetti ingérable et indéboggable à un applicatif ultramodulaire, avec un code propre, clair et tout une mécanique interne (prévue dans l'architecture) pour rendre le débogage plus aisé, et plus rapide...
Seul hic pour cette société, ils m'ont licencié et n'ont pas jugé bon de me laissé former un autre développeur (nettement moins payé, mais nettement moins compétent) a reprendre l'applicatif et à en comprendre l'architecture au demeurant malheureusement complexe.
Résultat, cette société qui n'a appréciée que je les oblige à passer au modernisme, est aujourd'hui en faillite, car les clients de cet applicatif ont alors porté plainte en apprenant mon licenciement, car mon ex-employeur n'était alors plus en possibilité de maintenir le logiciel et encore moins de le refondre, et revenir à une ancienne mouture, de l'ancienne époque, chose qu'il proposait, inacceptable pour les clients.
Ce problème est récurrent dans presque toutes les société françaises, et européennes, le problème est un peu moins présent aux usa, même s'il l'est toujours.
Figurez vous que contrairement à ce qu'on voudrait faire croire à tout le monde, seules 10% des sociétés qui en aurait besoin, en france, n'adhère à la virtualisation, qui ici passe pour un concept ultra novateur, alors que ce système existe depuis 15 ans et est utilisé en masse depuis 10 ans aux usa...
Quand vous avez compris cela... vous avez tout compris.
Etrangement je crois que par "autodidacte" tu parles plutôt "d'ouvert d'esprit". Beaucoup se contente de "passer l'année", là ou d'autre, sans nécessairement chercher la tête de la classe, s'investisse plus dans leur enseignement...
Comme dit plus haut, beaucoup d'étudiant sont plus là par appât du gain. C'est un problème commun à bien des formation, et je préfère avoir des médiocres informaticiens plutôt que des médiocres médecins. Pas vous ?
Je ne dirais que "ouch". Bon, par contre, c'est vrai qu'il est très peu didactique, mais j'espère que ce n'est pas une généralité. Ça ne l'est pas chez moi en tout cas...
Ils devraient être grillé en 1 seul entretien ><...
Euh non... il n'y a rien dans le standard UML qui concerne une quelconque méthode et c'est d'ailleurs l'une des forces d'UML car on a ainsi la liberté de choisir celle qui nous convient. D'ailleurs pourquoi crois-tu qu'on enseigne MERISE avant UML?
En ce concerne OCaml il faut savoir que Microsoft a décidé pour VS2010 d'y intégrer officiellement F#, un nouveau langage qui est en grande partie un portage du langage OCaml sur la plateforme .Net. Je suppose donc qu'il y a des débouchés pour les langages de ce type et donc qu'il y a un intérêt à l'apprendre.
Pour ce qui est OCaml, effectivement, le fait qu'on te l'enseigne n'est pas anodin...
mais pourquoi diable enseigner à quelqu'un qui suit un master info, ocaml, un langage utilisé uniquement dans la recherche et pour faire bien pour un draft dans une publication scientifique quand on pond un algo révolutionnaire ?
C'est très simple... pour obliger l'étudiant qui se respecte à reflechir, à avoir une autre approche du développement.
Turing lui même a démontré que les langages impératifs et séquentiels n'étaient pas là seule voie (pas en ces termes, mais globalement c'est ce que montre ses recherches) alors que pourtant il en est le père.
OCaml exprime un programme de façon mathématique. Hors un algorithme n'en déplaise à plusieurs est avant tout, un problème de maths.
En réalité, le débat de savoir s'il faut enseigner caml ou C++ est sans fondement.
Le réel problème des formations aujourd'hui, c'est qu'on enseigne pas les paradigmes et concepts pour enseigner des langages, mais qu'on enseigne les langages pour enseigner les paradigmes et concepts.
Certes, il est parfois plus facile d'enseigner un concept si on peut t'en montrer une application, et pourquoi pas dans un langage... mais la plupart du temps on enseigne le langage, et c'est pendant la découverte du langage qu'on enseigne partiellement les concepts sous jacents.
Le résultat est que sorti du langage... l'étudiant est totalement perdu.
Pour eux, apprendre un nouveau langage ressemble fort à subir le parcours du combattant qu'ils ont subit en cours, et abandonne, ou baisse les bras avant de commencer, ou mettent 3 ans à apprendre à utiliser (sans maitriser) un nouveau langage.
Juste histoire d'amuser un peu tout le monde, je viens de la fac, et j'ai volontairement évité de suivre les cours de C... et j'ai bien fait.
Il en fut de même pour Java.
La raison est simple. En C, cette prof, déclamait des axiomes qui n'en étaient pas.
Encore une qui a pris ses reves pour des réalités...
Ce qu'elle énonceait comme fait et comme axiome, et surtout comme faisant partie intégrante de la définition du langage, ne l'était nullement.
La preuve en fut le projet qui s'en suivit où je fustigeait son enseignement en intégrant justement, ce qui à l'entendre n'était pas possible.
Quand je vois des profs pareils, je me dit qu'effectivement l'enseignement va mal, surtout qu'une majorité d'entre eux n'acceptent pas le changement et encore moins que ces petits prétentieux d'étudiants leur apprennent leur boulot...
Pourtant j'ai rencontré des profs qui au contraire on sue publiquement tiré parti de mes frondes, et ont fait là preuve de l'ouverture d'esprit que selon moi tout développeur devrait avoir.
Il est normal de ne pas tout savoir... même moi que certains appellent "l'encyclopédie sur pattes" (dans mon dos... pensant que je l'ignore), en apprend tous les jours, et n'ai pas peur de l'avouer, bien au contraire, à quoi bon être développeur si ce n'est pour apprendre et relever les défis ?
Pour moi un bon développeur est un développeur qui doit connaitre avant tout les concepts et les fondements, les paradigmes... le langage n'est qu'un moyen, pas une fin.
Personnellement apprendre un langage n'est qu'un changement de syntaxe, et cela peut se faire en quelques heures, le temps de dévorer le pavé de documentations annexes comme les fonctions usuelles ou l'api/framework et les limitations, les ressemblances...
Nombre confondent connaitre et maitriser un langage et connaitre et maitriser, l'api/framework qui va avec.
Personne ne maitrise parfaitement une api/framework qui va avec un langage.
Pour exemple, .NET et sa myriade de classes, dont certaines totalement inutiles, et d'autre au contraire d'une utilité avérée, et dirais-je indispensables.
Je développe en C++, mais pour des raisons évidentes, je ne prend pas le parti de developper avec la STL... cela ne signifie pas pour autant que je ne sais pas développer en C++... bien au contraire.
Mais mon expérience personnelle m'a démontré sur plusieurs gros projets que la STL était à proscrire à tout prix, lorsque justement on sait développer.
Malheureusement de nos jours quand ils sortent de l'école et savent par le plus grand des hasards développer en C++, passé la STL... euh ba euh... c'est le néant absolu, et on arrive là dans des situations ubuesques, surtout que la STL est loin d'être le meilleur exemple de programmation propre et saine.
Intéressante opinion, un peu contraire à ce qui se dit souvent ici...
En même temps, si on se passe de la STL pour utiliser l'API MS...
J'ai plutôt l'impression que c'est l'inverse : les étudiant ne savent pas programmer avec la STL... Mais cherche quand même à l'utiliser...
Ouai sauf que justement le plus gros repproche fait à l'enseignement du C++ de nos jours c'est que c'est du C with classes et pas du C++. Donc non, rare sont les formations où les étudiants apprennent la STL, et c'est bien dommage, car ça va a contre courant de ce qu'on essaye de faire passer (et pas qu'ici hein, c'est ce que dit bjarne et les autres guru)...
ps : de toute façon ça va encore tourner en un énième débat C with classes vs C++ moderne (par opposition à historique)...
edit : merci lavock..
..mais pourquoi diable enseigner à quelqu'un qui suit un master info, ocaml, un langage utilisé uniquement dans la recherche et pour faire bien pour un draft dans une publication scientifique quand on pond un algo révolutionnaire ?
C'est très simple... pour obliger l'étudiant qui se respecte à reflechir, à avoir une autre approche du développement.
Turing lui même a démontré que les langages impératifs et séquentiels n'étaient pas là seule voie (pas en ces termes, mais globalement c'est ce que montre ses recherches) alors que pourtant il en est le père.
comme tu le dis l'apprentissage du caml est purement universitaire ... c'est bien le point que je souligne , ça sert à rien de passer 4 semestres dessus ... et pourquoi pas du .net à la pace ?(provoc inside)
Une des réponses au pourquoi la médiocrité de l'enseignement pourrait donc être la médiocrité de la demande non ? On ne sait pas ce qui est voulu, du coup, comment les formées efficacement ?
Au passage, c'est bien ce que je disais dès le début : on dirait vraiment que les "intellectuelles" de la programmation et le monde de l'entreprise ne sont pas tout à fait sur la même longueur d'onde...
PS @goten : de rien.
intéressante opinion ?
j'utilise pas l'api microsoft sous C++... non justement, je préfère encore faire mes propres wrappers et un vrai framework en utilisant la libc que d'utiliser la STL qui m'a donner bien du fil à retordre.
sur le dernier projet en date où j'ai eu recours à la STL, et où d'autres ont eu recours à la STL, le résultat fut un désastre total... la raison est simple... des bugs à n'en plus finir, et impossible de mettre le doigt dessus meme avec un profiler....
quand tu créer une liste de 10 éléments, et que tu n'en a plus besoin, la moindre des choses est d'effacer les éléments et purger la liste... La STL ne l'a pas entendu de cette oreille, et plantait sur la suppression du dixième élément... de la liste, pas de l'élément lui même... et peu importe l'écriture... impossible de trouver la cause du plantage du delete, puisque le débogueur montrait clairement que la zone mémoire à supprimer était allouée... un peu genant non ?
quand tu vois un tel niveau de fiabilité, il ne faut pas s'étonner si certains comme moi prefere avoir un VRAI framework stable et qui au passage compile aussi bien sous linux que sous windows, qu'une STL qui fait sa crise identitaire pour des trucs simples et fonctionne parfois à la perfection pour des trucs pour le moins... improbables.
bien entendu aucun code n'est exempt de bug, mais là il ne faut pas exagérer, nota j'ai essayé avec des listes, et pas mal d'autres structure et meme si les bugs étaient pas situés aux memes endroits j'en ai eu divers et variés qui m'ont clairement fait comprendre qu'il vallait mieux m'abstenir de developper avec la STL, dès lors que j'avais besoin de stabilité, fonctionnalités, et robustesse, et euh... vitesse d'exécution.
il va s'en dire que cet exemple n'est qu'une extrapolation de ce qui s'est passé en réalité, mais disons que pour stocker des entiers... je trouve assez moyen qu'une lib officielle et soit disant standard s'amuse à planter...
quand j'ai entrepris de virer tous les appels à la stl par un framework tiers, ainsi que le mien, j'ai vu chuter les mémory leaks de 80%...
le reste étant imputé à des sections de code développés encore à l'ancienne sans framework et sans classes (new delete, et meme malloc/realloc... oui certains confondent C++ et C)
j'aurais préféré pouvoir utiliser la STL pour les projets... mais force est de constater qu'elle n'est pas encore totalement au point... cela dit... pour une raison encore plus existentiel, le bug un peu décrit ici n'avait lieu que sous linux et pas sous windows,... inacceptable pour un applicatif qui devait tourner sur les 2 plateformes.
en fait il faut distinguer les cursus du coup, en france en tout cas, même si le tronc est commun, une formation à la fac ou en école d'ingé , ou encore en institut techno aura une orientation particulière ... la fac forme des chercheurs car les profs sont des chercheurs donc pas forcément en phase avec le marché du taff et les besoins des entreprises ... donc ce n'est pas une question de médiocrité, d'ailleurs la France a toujours formé de très bons dev , mais pas toujours en phase avec la façon dont fonctionne une entreprise capitaliste , qui n'hésitera pas à vendre des mauvais produits si ça se vendUne des réponses au pourquoi la médiocrité de l'enseignement pourrait donc être la médiocrité de la demande non ? On ne sait pas ce qui est voulu, du coup, comment les formées efficacement ?... imho , pour ça que microsoft se fait rare à la fac ( enfin .net et les serveurs windows)...
allez je retourne à mon Vignette![]()
bon 3 pages de posts, je crois que personne n'a rien compris à cette article du créateur du langage C++ ( exception faite de 3dArchi qui a parfaitement bien décodé et quelques autres).
Attention Merise et UML ce sont 2 choses totalement différentes !
Merise c'est plutot pour les bases de données et systèmes de gestion c'est plus vieux que UML et ne prend pas en compte, sauf avis contraire, la conception objet..
UML est plus orientée objet.
A moins de faire des programmes 100% mode console c'est impossible sous Windows...
tu ne peux pas créer de fenêtres et autres sans passer par les API de Windows..
@cinemania
Bon, en tout cas, à défaut d'avoir tort ou raison( c'est pas le débat ici), tu montres néanmoins le côtés "rétrograde" que nombreux combattent.
Ce qui me laisse perplexe, c'est qu'il semble que tu n'es pas satisfait de la formation actuelle.
En gros, tu reproches que soit les étudiant étudie le C++ qu'avec STL, soit il ne touche pas au C++.
Hors, de ce que je sais, c'est plutôt l'inverse...
c'est parfaitement exact..
il ya confusion chez les autres entre Merise et UML
je crois encore qu'il ya confusion des choses ; on peut programmer en C++ sans STL mais c'est certain que STL est presqu'incontournable.
STL c'est destiné à faciliter les choses ; moi je m'en sers si j'en ai besoin.
J'ai l'impression que tu as un complexe philosophique et cérébral vis-à-vis de la STL qui n'est pas fondé.
Moi je vois le coté pratique des choses..
Mat.M je vois aussi le coté pratique.
pour des trucs et d'autres je l'utilise, mais pas toujours... j'ai développé par le passé une équivalence nettement moins exhaustive et certes moins complète, mais qui a le mérite sur certains projets de ne pas planter pour des raisons ... inexplicables.
maintenant le fait que .NET soit absent des cursus, c'est vrai aussi, et c'est aussi due aux tarifs plutot qu'a l'aspet mal codés... car partant de ce principe, java est dans le meme lot...
oui j'aurai du parler de POO plutot que UML directement , c'est du au fait que j'utilise UML et donc la POO ( pas vu à la fac ) pour modeliser une BDD plutot que MERISE ( vu à la fac ) ... mais si certains ont des réflexions sur le sujet en relation avec le choix ou non d'enseignement , ça m'intéresse.c'est parfaitement exact..
il ya confusion chez les autres entre Merise et UML
oui bien sur , même si aujourd'hui le lobbying microsoft auprès des facs et de l'état bat son plein ( et que le coup des licenses pour les facs est faible , ainsi que la formation des profs ) ... je ne suis pas anti microsoft attention hein , l'utilisation de .net comme outil de dev est tout à fait justifier , d'ailleurs certains client réclament du microsoft sans même rien y connaître au dev , l'open source fait peur (open source = bricolage pour certains ), malgré son coup moindre ( dans une certaine mesure , mais c'est un débat complexe )maintenant le fait que .NET soit absent des cursus, c'est vrai aussi, et c'est aussi due aux tarifs plutot qu'a l'aspet mal codés... car partant de ce principe, java est dans le meme lot...
Il me semble que bachelor c est une formation generaliste, un peu comme un DEUG .. il est difficile de comparer ca à un BTS qui est relativement technique
Sinon pour la qualité des dev, pour moi il n'y pas de secrets c est le nombre d'heures de vol qui change tout .. En ecole on recoit des bases, on sort pas de l'ecole en connaissant tout sur tout, les problemes de prod tu peux les voir uniquement en entreprise
Cordialement,
ahhh ouaisss ?...et à partir de quel âge on est trop "vieux" pour apprendre d'après toi ?
pfff , n'importe quoi ces jeunes ...;
non sans blague, je me suis remise à apprendre mi 2009 après quelques 24 années professionnelles, comme quoi, quand on reste curieux hein on peut toujours progresser
réfléchir par eux-mêmes, certaines ne s'y sont jamais éveillés tout à fait , n'est-ce pas ?
bah c'est le b.a.BA de la réflexion : réfléchir avant d'agir, concevoir avant de coder !!!
sur ce,n'oublions pas : meilleurs voeux à touss
Pour en revenir au sujet initial, je pense qu'en France ( en école ), j'ai eu un enseignement plutôt pas mal vu ses critères, avec un enseignement très proche de l'entreprise avec des profs en majorité y travaillant, et de nombreux stages.
( bon non je ne rebondirais pas sur les trolls genre la STL est buggé, ça me fait bien rire quand même )
Partager