Comments on: Revue de code publique http://sametmax.com/revue-de-code-publique/ Du code, du cul Mon, 28 Oct 2019 11:54:55 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: Martin http://sametmax.com/revue-de-code-publique/#comment-161088 Thu, 21 May 2015 18:45:01 +0000 http://sametmax.com/?p=16027#comment-161088 Salut Sam, je viens déterrer le post pour apporter des explications : je suis dans la filière (prépas BCPST) où on enseigne cette me*de d’algorithme que tu as déterré. Jusqu’à récemment, c’était une option : résultat peu de gens compétents. Mais avec le changement de programme, l’info est devenue obligatoire, du coup toutes les prépas BCPST ont dû se plonger dans Python (et migrer, car avant l’option info était en MatLab…).

Le programme (de trucs à enseigner) est fait pour des gens qui, déjà, ne sont pas bons en maths, et n’y connaissent rien à l’info. En plus, il stipule qu’il faut connaître des “algorithmes caractéristiques” et savoir les recoder à la main, ce qui est complètement con : style Dijkstra ou Tri à Bulles, justement. A l’épreuve, les examinateurs peuvent potentiellement demander un script pour “trouver le maximum d’une liste”. C’est de ce niveau là.

A titre d’exemple, c’est déjà une hérésie que j’aie codé mon projet en POO, donc il ne faut pas trop en attendre d’un prof de bio. Surtout que le but était vraiment de recoder la fonction, pas de s’en servir. Après… ta solution est très élégante ^_^

]]>
By: Sam http://sametmax.com/revue-de-code-publique/#comment-159413 Tue, 21 Apr 2015 11:06:13 +0000 http://sametmax.com/?p=16027#comment-159413 Si l’algo est important, alors autant se pencher sur des algos métiers. Des trucs pratiques, des cas concrets, pas résoudre des problèmes dont la solution la plus pratique existe depuis toujours. Sinon on peut aussi implémenter son compilateur :) Par exemple, des algo décisionnels ou prévisionnels, analyse de tendances (prix, indices, meteo, etc), des algo pour organiser un process industriel, optimiser des réseaux (canalisation, groupes sociaux, cables, etc)… En plus ça parlent plus aux gens, parce que ça utilise des données concrètes derrière. Et tous les trucs ennuyeux comme le tri, Python s’en charge, les élèves peuvent se concentrer sur le problème à résoudre et non à fabriquer l’outil pour résoudre le problème : c’est plus gratifiant, et surtout plus proche de la réalité du terrain. En informatique, on fait 90% de plomberie.

]]>
By: Seb http://sametmax.com/revue-de-code-publique/#comment-159407 Tue, 21 Apr 2015 09:39:47 +0000 http://sametmax.com/?p=16027#comment-159407 Re Sam (oue, boulet comme je suis, j’ai pas coché la case “follow this fucking comments”, du coup j’avais pas vu ta réponse),

Merci pour ta réponse détaillée.

Je suis d’accord avec ta notion d’objectif, et qu’aujourd’hui, une grande partie des gens développent sans avoir réellement besoin de savoir faire un “sort” ; cependant, pour le cas des élèves en prépa, l’un des buts avoués du programme est quand même de faire de l’algorithmique, notamment du tri (et pas que du bubble, le quick et le merge sont aussi de la partie). Pour ces étudiants là, est-il judicieux de faire code pythonique ? De faire du python ?

]]>
By: Sabcat http://sametmax.com/revue-de-code-publique/#comment-159260 Fri, 17 Apr 2015 12:03:31 +0000 http://sametmax.com/?p=16027#comment-159260 Arf, je voulais vous faire partager cette image avec vous ^^. (même si ça n’a aucun rapport avec l’article) Vaaaaala…

https://pod.biloute.org/uploads/images/scaled_full_b09d0230feaa72d3b587.jpg

]]>
By: Mathieu http://sametmax.com/revue-de-code-publique/#comment-158866 Thu, 09 Apr 2015 12:40:40 +0000 http://sametmax.com/?p=16027#comment-158866 De l’art à l’état pur. Un diamant.

]]>
By: Vazywilly http://sametmax.com/revue-de-code-publique/#comment-158839 Thu, 09 Apr 2015 06:32:42 +0000 http://sametmax.com/?p=16027#comment-158839 Merci, ce genre d’explication pas à pas c’est génial pour les bleu-bites comme moi

]]>
By: Luigi http://sametmax.com/revue-de-code-publique/#comment-158802 Wed, 08 Apr 2015 09:01:32 +0000 http://sametmax.com/?p=16027#comment-158802 Tout comme toub, un grand merci pour ce post constructif.

]]>
By: toub http://sametmax.com/revue-de-code-publique/#comment-158795 Wed, 08 Apr 2015 07:23:56 +0000 http://sametmax.com/?p=16027#comment-158795 J’ai pas encore lu le détail de l’article, mais ma 1ère réaction à chaud, c’est d’abord un merci de poster sur twitter autre chose qu’un flinguage en règle ! Le défouloir sur un gars qu’on colle au poteau parce que -sacrilège ! – il code pas pythonic, ça défoule mais ça devient fatigant à la longue.

Je préfère nettement la démarche de proposer et d’expliquer une amélioration, ça me parait plus constructif – comment ça j’enfonce des portes ouvertes ?

]]>
By: thib http://sametmax.com/revue-de-code-publique/#comment-158759 Tue, 07 Apr 2015 17:50:29 +0000 http://sametmax.com/?p=16027#comment-158759 Salut Sam, mes scripts ressemblent en général à l’exemple de départ pour les raisons que tu cites : pas mon job, et des habitudes héritées d’autres langages. Je vais pouvoir leur appliquer le même traitement pour les rendre plus élégants, et avoir moins honte de les partager.

Vraiment parfait cet article, merci !

]]>
By: Sam http://sametmax.com/revue-de-code-publique/#comment-158746 Tue, 07 Apr 2015 13:04:33 +0000 http://sametmax.com/?p=16027#comment-158746 Et bien, cela dépend de l’objectif. Mon objectif n’est pas d’enseigner l’algorithmie.

Il y a 20 ans, cela avait du sens car les langages étaient proches de la machine, et les machines peu puissantes. Il fallait se créer des modèles mentaux très complexes pour tirer parti de son environnement. Aujourd’hui gaspiller 200 Mo de RAM et 1Go pour économiser du temps homme n’est pas rare et les langages de haut niveau ont pour but de masquer la complexité algorithmique.

Ca ne plait pas aux programmeur car on a en face des gens qui programment… sans programmer.

En vérité c’est juste qu’il y a de nouveaux types de profiles de dev, tout aussi utiles, et devenant majoritaires, pour qui ce type de programmation est plus productive. Ils n’auront jamais besoin de savoir coder un bubble sort, ni même que ça existe, et pourront être experts dans leur domaine.

On en revient donc à l’objectif. Pour moi il est celui de permettre à la personne de faire la tâche qu’elle veut effectuer dans un temps qui la satisfait, avec une exécution du programme à la vitesse qui la satisfait, avec les fonctionnalités qui la satisfait. Pour la plupart des gens que je forme : developpeurs Web, géographes, biologistes, sysadmin, hommes à tout faire electroniques et étudiants en prépa, rester très haut niveau atteint cet objectif.

Je vois les ravages de l’inverse : des gens formés à penser en C ou Java, qui codent denses, peu lisibles, avec des optimisations prémturarés et qui mènent souvent à une démotivation car trop long à produire.

Donc pour ma part, j’apprécie énormément Python pour introduire à la programmation, surtout si la personne n’a pas pour vocation de devenir un développeur pro.

Si en revanche il l’a, travailler sur d’autres langages en complément est bénéfique. Compléter la formation avec un langage bas niveau (C ou Rust) et un langage fonctionnel (Lisp ou dans une moindre mesure, JS) me semble important, justement pour former à la rigueur, qui ne doit pas être une priorité, mais qui aide sur le long terme.

Cela ne doit néanmoins pas se faire en priorité : le plaisir de coder, la productivité, la lisibilité du code, la documentation, les tests, le travail collaboratif, l’autonomie… Toutes ces choses sont plus importantes que d’apprendre des algo et gérer les perfs. La logique viendra avec la pratique, les bonnes pratiques pas forcément.

]]>