• [^] # Re: au final

    Posté par . En réponse au journal Ce logiciel qui choisit ta fac. Évalué à 4.

    Disons que si tu embauches un bac +5 tu as une quasi-garantie : il peut ne rien apporter, mais on espère qu'il ne cassera rien non plus. En IUT, un de nos profs nous avait dit la chose suivante :

    Vous savez quelle est la différence entre vous et un ingénieur ? Le salaire.

    ... puis de rajouter en gros (parce qu'évidemment il exagérait un chouïa) :

    ... Bon, et aussi, si quelque chose casse qui n'est pas directement lié à son boulot, on attend d'un ingénieur de se débrouiller pour que ça marche à nouveau.

    Au moins en informatique (en micro-électronique je ne connais pas assez pour dire quoi que ce soit), au début on peut accepter qu'un dev web ne sache pas installer Apache, etc., mais clairement on attend d'un ingé qu'il sache faire une installation et configuration basiques chez le client si nécessaire (un « vrai » admin pourra ensuite reconfigurer/réinstaller pour la « vraie » version de prod). En pratique, un technicien devra aussi savoir faire une install « de base » sur son poste, à moins que l'infrastructure ait déjà été déployée.

    Voici les choses que j'ai « bien » apprises en IUT (et pas forcément bien en école)1 :

    • Analyse & conception de systèmes d'information (ACSI), plus ou moins équivalent au génie logiciel. Mes souvenirs de Merise et UML sont loin, mais les principes fondamentaux sont restés.
    • Programmation et algorithmique : bases des algorithmes sur les graphes et les structures de données en général, bonnes pratiques de programmation.
    • Programmation sur plusieurs langages : en 2 ans d'IUT, j'ai fait du C, du C++ (la partie objet), du Visual Basic (pour le côté programmation événementielle), de l'ASP (pour cause de chaîne de développement déjà installée avec du tout Microsoft à l'IUT), du XML, du XSL (traitement avec XLS/T), du Java, une pointe d'assembleur (2 TP x86, rien de mémorable, mais suffisamment pour avoir une idée de comment ça marche), et j'en oublie sans doute encore un ou deux. Au final, j'ai vu au moins 6 ou 7 langages (on peut raisonnablement considérer ASP et Visual Basic comme un seul langage, vu qu'on utilisait une sorte de VBScript).
    • Bases de données : approche très « pragmatique ». Un cours unique avec un TD sur l'algèbre relationnelle derrière SQL, et des tonnes de cours/TD/TP sur la modélisation de l'information, la création de BDDs qui préservent l'intégrité relationnelle des données, etc. On ne nous l'avait pas dit en IUT, mais en gros on nous a appris à faire des tables et BDD correctement normalisées (on n'avait pas le vocabulaire formel, mais on avait clairement acquis la bonne méthodologie).
    • Une approche relativement approfondie de l'architecture des ordinateurs (que 90% de mes camarades ont depuis oubliée, sans doute. :-)).
    • J'ai découvert les rudiments de l'administration système pour Linux et Windows (NT).

    Dans les matières non-informatiques, on peut aussi noter :

    • En cours de communication: une réflexion sur la logique formelle, sa capacité à modéliser le monde, ses limitations sur les nuances dans le langage, etc. À ça, on peut ajouter tout un tas de cours sur la communication en entreprise et inter-personnelle, etc., une certaine approche « psychologique » sur comment la communication se fait entre les personnes en passant par des exercices en classe qui nous mettaient « en situation », etc.
    • En cours d'expression : c'est con, mais on m'a appris à correctement rédiger une lettre de motivation, à simuler des entretiens d'embauche, etc. On a continué des exercices de rédaction pour rédiger des résumés, parler en public et si ce n'est le maîtriser, au moins prendre conscience de son langage corporel, etc., qui sont des compétences finalement assez importantes aussi...
    • J'ai presque tout oublié de mes cours de compta, mais les cours de gestion en entreprise et son organisation me sont restés, et dans mon expérience, pas mal de choses qui nous avaient été dites se sont réalisées une fois arrivé en entreprise.

    Enfin, et c'est très important, au moins dans mon IUT, les profs avaient une succession de cours avec une machine très bien huilée : les profs avaient réglés leurs sujets dans les cours de façon à ce que les matières correspondent. Ainsi, si en maths on apprenait la logique formelle, en communication on abordait cela du point de vue inter-personnel. Si en algo/programmation on voyait les pointeurs, c'est parce qu'en archi on avait fini d'apprendre le fonctionnement de la mémoire dans un ordinateur et l'utilisation des registres; etc.

    Du côté de l'école d'ingénieur ou de la fac, une telle communication est au mieux partielle, au pire inexistante. Il y a un projet pédagogique, et ensuite chaque prof enseigne comme il veut, au rythme qu'il veut (dans les sujets sur lesquelles les profs se sont mis d'accord bien sûr). Cependant en école d'ingénieur, j'ai appris quelques trucs aussi :

    • Les cours d'algorithmique (recherche opérationnelle) étaient plus formels, et j'ai découvert les notions de complexité en école (en IUT, on nous disait en gros « z'avez vu ? une recherche dichotomique va bien plus vite qu'une recherche linéaire dans un tableau trié ! »)2 .
    • J'ai découvert l'algorithmique et les systèmes distribués.
    • Les cours de programmation système étaient plus poussés et rigoureux (enfin, j'ai suivi 2 UV de prog système & distribuée : le premier était équivalent à ce que j'avais fait en IUT, alors que le deuxième allait beaucoup plus loin : programmation C avec threads et RPC, Java et C++ avec CORBA, Java RMI)
    • J'ai découvert les rudiments de programmation fonctionnelle en intro à l'intelligence artificielle (LISP), puis plus tard les rudiments de programmation déclarative et « logique », toujours en IA, avec Prolog.
    • Lors de mon premier semestre en école, j'avais suivi une UV qui avait poussé à prendre contact avec un/des ingénieurs expérimentés pour discuter de certaines technologies, de la faisabilité de les intégrer pour d'autres projets ou utilisations, etc.
    • Les autres matières techniques étaient des redites de l'IUT, souvent en moins bien enseignées.

    Du point de vue des matières non info:

    • J'ai vaguement rattrapé mon retard en maths vis à vis des prépas/DEUG (presque tout oublié depuis, et clairement pas aussi approfondi que quelqu'un qui a fait un vrai premier cycle en maths/physique).
    • J'ai fait pas mal de sciences cognitives (et c'était très bien)
    • J'ai fait de la philo (et c'était très bien aussi)
    • L'enseignement des langues vivantes était mieux fichu qu'en IUT (c'était pas trop mal en IUT, mais malgré tout trop « scolaire » : pas assez d'opportunités de pratiquer l'oral, etc.)
    • Les camarades qui avaient choisi des options différentes étaient assez contents des cours de gestion de projet et d'économie qu'ils avaient suivis.

    En règle générale, il me semble que les écoles d'ingénieur poussent beaucoup leurs élèves à prendre des initiatives, que ce soit par l'intermédiaire de la participation à diverses associations, ou via les UV (les élèves qui suivaient l'UV de gestion de projet devaient réaliser un projet dans la « vie réelle », et prendre contact avec de vraies boites/fournisseurs, potentiellement lever des fonds, etc.).

    En IUT on m'a donné une excellente méthodologie, et on m'a clairement indiqué qu'il y avait beaucoup plus de choses à apprendre (d'ailleurs, le « on vous apprend à apprendre » si cher aux formations de 2nd / 3è cycle nous a aussi été dit en IUT), mais on ne nous poussait pas forcément à prendre des initiatives (ceci dit, avec ~35 heures de cours par semaine, et en moyenne 2 à 3 projets à livrer en parallèle dès le 2è trimestre de la première année, il n'y avait pas forcément beaucoup de temps pour faire quelque chose en plus que faire la fête à l'époque. Et puis, il y a aussi sans doute une question de maturité.

    Du coup, pour avoir suivi deux formations professionalisantes, je peux dire que (1) les gens qui viennent d'IUT ont en général été bien formés et sont parfaitement capables d'occuper des postes de développeur souvent réservés à des ingés en pratique, et (2) malgré tout dans les formations de 2nd cycle, il me semble qu'on pousse plus les élèves à être indépendants et à prendre des initiatives, car on les destine à devenir chefs au final (alors que les techniciens, pas forcément).

    Pour info, mon IUT avait reçu 3000 dossiers de candidatures pour 190 places en 1è année (j'ai ensuite appris que l'année suivante ils avaient reçu 4000 dossiers). Autant dire que les gens qui étaient acceptés étaient tous capables d'apprendre, même s'ils ne savaient pas forcément ce qu'était l'informatique au sortir du lycée.


    1. À noter que beaucoup de ces choses ont été bien entendu améliorées par mes diverses expériences pro en stage ou pour mes boulots successifs, mais je ne pense pas mal me remémorer.

    2. Bon en fait vu qu'en fin d'IUT j'avais acheté le très bon « Maîtrise des algorithmes en C » de Kyle Loudon, j'avais déjà eu une initiation à la notation O, etc., mais avoir un cours dessus c'est quand même pas plus mal.