informatique théorique

26 views
Skip to first unread message

Gregory Salvan

unread,
Jan 30, 2014, 1:20:44 PM1/30/14
to software-crafts...@googlegroups.com
Salut,
on ne parle pas souvent théorie.

Comme je n'ai pas fait d'études post bac, je me demande si lorsque vous codez, que vous utilisez des patterns ou lisez des code smell vous pensez à la théories des ensembles de Von Neuman ou à la théorie des catégories et si ça vous aide à mieux comprendre votre code en vue de l'améliorer ?

Xavier Mouton-Dubosc

unread,
Jan 30, 2014, 1:41:53 PM1/30/14
to software-crafts...@googlegroups.com

La théorie de base : ca marche ou ca marche pas.

Je me suis récemment rendu compte que quand je faisais du Pascal au lycée en 92, je programmais en objet. Or en discutant avec le copain qui prend ma suite, lors de son BTS Info en 2003, il n'a eu de cours sur les classes que sur deux après midi...
Heureusement qu'il a eu sa passion pour en apprendre plus .

--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Software Craftsmanship Toulouse.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse software-craftsmanshi...@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .

Anthony Cassaigne

unread,
Jan 30, 2014, 2:49:56 PM1/30/14
to software-crafts...@googlegroups.com
De ce que j'ai appris sur le niveau théorique aujourd'hui quasiment
rien ne me sert.

C'est parfois un bagage utile sur quelques points vraiment
particuliers : tel que le choix d'un algorithme choix qui peut se
réaliser au niveau de sa complexité (du moins en partie, si j'ai le
choix entre une complexité en log(n) ou n au carré, voir linéaire et
si l'implémentation, la maintenabilité n'en pâti il est évident que je
vais retenir celui en log(n) ) mais ce genre de cas sont très très
rare.

Une fois j'ai pu me servir de bagages théorique sur l'équilibrage de
charge pour des algorithme de traitement en parallèle en 15 années de
métier c'est quand même fort rare.

Ce que l'on devrait nous enseigner c'est l'art du clean code, SOLID,
TDD... mais peut-on l'enseigner ? C'est un autre débat.


2014-01-30 Gregory Salvan <api...@gmail.com>:
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> Software Craftsmanship Toulouse.
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> software-craftsmanshi...@googlegroups.com.
> Pour plus d'options, visitez le site
> https://groups.google.com/groups/opt_out .



--
Cordialement,
A. Cassaigne

Gregory Salvan

unread,
Jan 30, 2014, 3:00:00 PM1/30/14
to software-crafts...@googlegroups.com
justement SOLID, TDD... s'explique et se démontre très bien avec les catégories et je me demandais si ça faisais parti des cursus classiques, vu qu'on en parle pas souvent.

Igor Laborie

unread,
Jan 31, 2014, 2:26:39 AM1/31/14
to software-crafts...@googlegroups.com
Je pense que l'on peut devenir un bon développeur sans avoir un grand background théorique. car avec l'experience tu utilisera des designs patterns sans le savoir (cf Mr Jourdain et la prose).
Par contre tu gagnera du temps à t'informer sur le sujet.

De mon coté l'an dernier je me suis 'amusé' à faire les cours d'algorithmes sur coursera (https://www.coursera.org/course/algs4partI), j'ai trouvé ça passionnant et beaucoup plus pointu que ce que j'avais eu en école d'ingé. Par contre ça ne me sert pas trop au quotidien.

Je pense que l'informatique c'est fait pour les gens curieux qui ont envie d'apprendre sans cesse de nouveaux trucs, donc n'hésites pas à regarder les aspects théorique si tu trouve ça intéressant.

Enguerran Colson

unread,
Jan 31, 2014, 3:17:29 AM1/31/14
to software-crafts...@googlegroups.com
J'ai fait 5 années de fac, les deux premières étaient dans l'électronique, puis cursus full informatique.
En 3e année, donc, j'ai rencontré les "théoriciens" de l'informatique, les DEUG MIAS (je ne sais même pas ce que ça veut dire, mais c'est genre math pour l'informatique). C'est sûr ils connaissaient des noms de patterns, des diagrammes de classes, des formules algorithmiques. Nous étions 10 à venir d'électronique et on n'a jamais été spécialement largué.

Mon plus mauvais souvenir c'est le partiel de "calculabilité et complexité" dans un amphi non chauffé au lendemain des fêtes de fin d'année. Malheureusement je ne me souviens plus du nom du professeur, mais visiblement le cours est toujours donné par de nouveaux enseignants : http://www.lirmm.fr/~rgirou/enseignement/coursm1.pdf.

Comme le dit Anthony, si ça m'a servi une fois, c'est déjà beaucoup. La théorie ça va bien pour les experts, pour les gars sur le terrain, une connaissance globale, logique et gourmande suffit largement à mon sens. Dans la vraie vie, on approximatise, on néglige quelques paramètres non pertinents, on arrondit.

La meilleure leçon apprise au cours de mes 5 années d'étude me fut donnée par Kaput, maitre mountyhall et accessoirement enseignant-chercheur au lirmm : "je ne suis pas là pour vous enseigner l'informatique, je suis là pour vous apprendre à apprendre". Que de bons souvenirs lorsqu'en salle machine, face au codage d'un meta-évaluateur lisp, notre cher Kaput nous lançait un "fuck me ask google" alors qu'il utilisait ses PA sur mh.

http://games.mountyhall.com/mountyhall/View/PJView.php?ai_IDPJ=38205

J'espère que ce petit récit t'a un peu éclairé.



2014-01-31 Igor Laborie <ilab...@gmail.com>:

--

Vincent Ferries

unread,
Jan 31, 2014, 3:30:54 AM1/31/14
to software-crafts...@googlegroups.com
Je suis aussi passé par 5 ans de fac (DEUG Mathématiques et Informatiques Appliquées aux Sciences moi aussi si je ne m'abuse), puis licence d'info et masters 1 et 2.

Je me suis resservi de bon nombre de concepts vus en cours mine de rien, et ça me sert souvent de base pour apprendre d'autres choses. Le moteur principal est en effet la curiosité, et il n'y a rien qu'on voit en faisant de "longues études" qu'une personne avec un brin de curiosité ne puisse combler.

Là où je remercie mes enseignants de l'époque c'est qu'ils ne m'ont pas appris un ou N langages, mais les différents paradigmes de programmation existants. J'ai donc fait de l'assembleur, des langages fonctionnels, objects, de l'AOP, du lambda calcul, de la preuve de programme, des compilateurs...
Apprendre un langage quand on a les différents concepts en tête ne pose aucun problème et on voit un peu mieux les avantages et les inconvénients de chacun.

Je remercie aussi mon professeur de sécurité, qui m'a appris des fondamentaux (types d'attaques possibles, comment les prévenir...) et m'a donné envie d'aller voir un peu plus loin sur la cryptographie et aux sujets connexes.


Après, il est évident qu'au jour le jour, on n'écrit que peu de code qui nécessite des notions théoriques complexes. Et du coup, on préfère du code lisible que performant bien souvent, ce que je cautionne fortement.
Effectivement, apprendre les bases du Clean Code, les principes SOLID, le Lean etc ferait bien plus de bien que des cours sur les fameux cycles en V comme j'ai pu avoir en dernière année...

Anthony Cassaigne

unread,
Jan 31, 2014, 4:12:11 AM1/31/14
to software-crafts...@googlegroups.com
Vincent je te rejoins totalement et j'ai globalement le même parcours
que toi, à l'époque cela se nommé DEA en informatique :
"Là où je remercie mes enseignants de l'époque c'est qu'ils ne m'ont
pas appris un ou N langages, mais les différents paradigmes de
programmation existants. J'ai donc fait de l'assembleur, des langages
fonctionnels, objects, de l'AOP, du lambda calcul, de la preuve de
programme, des compilateurs...

Apprendre un langage quand on a les différents concepts en tête ne
pose aucun problème et on voit un peu mieux les avantages et les
inconvénients de chacun.
"
Je n'aurais pas pu mieux dire, ce que j'ai vraiment retenu se sont les
différents paradigmes et concepts après çà on peut aisément passer
d'un langage à l'autre. Ces concepts sont tout à fait appréhendable
par tout esprit curieux et passionné pas besoin d'aller en fac ou
d'avoir fait une école d'ingénieur.


2014-01-31 Vincent Ferries <vincent...@gmail.com>:
Cordialement,
A. Cassaigne

David Brown

unread,
Feb 1, 2014, 10:18:01 AM2/1/14
to software-crafts...@googlegroups.com
Je suis assez d'accord sur le "apprendre à apprendre" : les technologies évoluent tellement vite que c'est essentiel. Une personne passionnée par l'informatique le fait d'ailleurs en testant naturellement ce qui l'intéresse.

Après en ce qui concerne l'algorithmie, les designs patterns et ce genre de choses, ce n'est pas vraiment de l'informatique théorique de mon point de vue, ce sont des moyens de structurer sa pensée et avoir les bons réflexes pour produire du code simple, robuste et performant. Les avoir "vu en cours" (ou rencontrés sur un projet ou ailleurs) donne une bonne base, mais l'important est de les pratiquer.

Pour les concepts plus théoriques, le fait de les avoir découvert une fois peut aider par la suite. Si demain je commence un projet sur de l'IA, de la théorie des graphes ou n'importe quoi d'autre, je vais devoir tout "ré-apprendre", mais les notions que j'ai vont m'aider à faire ça plus vite. De même si je tombe sur un problème complexe, j'ai une chance de me dire que ça ressemble à quelque chose que je connais.

Pour ma part j'ai une formation très théorique (l'enseeiht), on dit que les gens ne se servent que de 5% de ce qu'ils y ont appris (et encore, le chiffre est gonflé pour ne pas faire peur). Par contre tout le monde ne se sert pas des mêmes 5%... :)
>>> Pour plus d'options, visitez le site
>>> https://groups.google.com/groups/opt_out .
>>
>>
>> --
>> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
>> Software Craftsmanship Toulouse.
>> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
>> concernant, envoyez un e-mail à l'adresse
>> Pour plus d'options, visitez le site
>> https://groups.google.com/groups/opt_out .
>
>
> --
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes
> Software Craftsmanship Toulouse.
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
Reply all
Reply to author
Forward
0 new messages