Aller au contenu

Je raconte ma life 8, petits suisses & lapidations


Cugieran

Messages recommandés

7 hours ago, Neomatix said:

Faudrait, un jour, que les profs se mettent d'accord sur un langage.

En 2 ans j'ai suivi des cours dans 3 écoles (undergrad, échange, master). D'abord sur Matlab, puis Python, puis R et maintenant Julia. Je dois avoir 6 IDE différents sur mon PC.

Et là potentiellement tu n'as pas fait tous les langages qui pourront t'être utiles dans ton domaine de compétence (SAS, Haskell,...)

 

En ce moment c'est Python qui tend à être le plus populaire.

  • Yea 1
Lien vers le commentaire
il y a 5 minutes, Mathieu_D a dit :

En ce moment c'est Python qui tend à être le plus populaire.

Ce qui, en pratique, se traduit par beaucoup (un max) de librairies disponibles pour plein de choses.

ie, selon ce qu'on veut faire, on a souvent la chance de trouver directos une librairie dispo qui fait le job.

  • Yea 1
Lien vers le commentaire
Il y a 3 heures, Rübezahl a dit :

par hasard, tu connaîtrais/recommanderais un outil de "stress test" ou site(s) pour tester un site internet ?

https://validator.w3.org/#validate_by_uri oui comme cité par @cedric.org.

Et aussi, https://webhint.io/scanner/

Pour le ssl, https://www.ssllabs.com/ssltest/

Pour la charge, Apache JMeter.

Pour le code source, SonarQube.

 

 

  • Yea 1
Lien vers le commentaire
9 hours ago, Neomatix said:

Faudrait, un jour, que les profs se mettent d'accord sur un langage.

En 2 ans j'ai suivi des cours dans 3 écoles (undergrad, échange, master). D'abord sur Matlab, puis Python, puis R et maintenant Julia. Je dois avoir 6 IDE différents sur mon PC.

C'est bien de connaitre plusieurs langages, ça permet d'abstraire et d'élargir le raisonnement. Bon après Julia j'avoue que je n'ai jamais bien vu l'intérêt à part se la péter qu'on maîtrise le Next Big Thing.

Lien vers le commentaire

Connaître à fond quelques langages / environnements histoire d'être très productif c'est bien aussi. Et pour les autres en connaître assez pour blablater en entretien d'embauche. Pour la finance se concentrer sur Excel (VBA), Python et C++ c'est déjà très diversifié comme talents et pas évident

Lien vers le commentaire
Il y a 8 heures, cedric.org a dit :

J'avoue que j'ai commencé à vraiment voir les pièges d'architecture au bout de 5 ans d'école puis facilement 2 ans d'ingénieur logiciel à temps plein...

Archi de quoi ?

 

Il y a 8 heures, cedric.org a dit :

Donc d'un côté je continue à dire que connaître un langage de programmation tendance est un énorme plus pour sa carrière, autant vouloir en faire sa carrière sans avoir de background software engineering, je pense qu'il faut s'accrocher et être humble au début... (et au moins se faire un mooc sur la complexité algorithmique genre https://fr.coursera.org/learn/algorithms-part1 ). Je suis sûr que si maintenant tu relisais ton code, tu ne garderais pas grand chose!

Ce sont des bonnes curiosités intellectuelles mais faut pas se voiler la face on en a rarement besoin quand on débute. Il faut trouver des tâches / boulots à son niveau au début comme partout

Lien vers le commentaire
34 minutes ago, ttoinou said:

Archi de quoi ?

Quels sont tes besoins de scalabilité? Quelle est la complexité de ton composant? Comment il s'intègre aux autres? Comment le rendre résilient? Peut-on faire du circuit breaking? Quels sont les limites et la complexité de l'arbre de décision de ton code? Quelle est la maintenabilité et l'estimation du cout de maintenance du composant? Le type de variable de ce machin est-il immutable, comment c'est représenté en mémoire, et donc quelles sont les conséquences en terme d'utilisation mémoire? As-tu vraiment besoin de ton triple pointeur à cet endroit? La mémoire est-elle bien libérée pour ne pas avoir de fuite dans tous les cas? Comment tu fais ta gestion d'exception?

 

C'est juste quelques questions parmi des centaines que je peux poser quand tu designes quelque chose. Ingénieur logiciel c'est pas juste "je connais un langage de programmation", sinon en effet n'importe qui peut le faire au bout de 3 semaines de bootcamp.

 

Les mecs de chez nous qui se sont reconvertis commencent à comprendre ce qu'ils font au bout de 18 mois pour du "bête" développement d'app web sur une architecture archi guidée. Au début en effet ils ont l'impression d'être super intelligents quand ils demande des review de code, alors que les erreurs absolument évidentes à moyen terme sont la et visibles mais techniquement ça marche si jamais on met en prod maintenant tout de suite.

 

34 minutes ago, ttoinou said:

Ce sont des bonnes curiosités intellectuelles mais faut pas se voiler la face on en a rarement besoin quand on débute. Il faut trouver des tâches / boulots à son niveau au début comme partout

D'un côté je dis "oui, go, vas-y, fonce et apprends un langage et au bout de quelques semaines tu peux commencer à t'amuser"

De l'autre, avant de vraiment avoir de la valeur intrinsèque (en soi, pas par rapport au niveau global du marché qui est très bas), il faut beaucoup, beaucoup de temps pour réellement comprendre comment ça marche. Je considère ce temps a à peu près deux ans à temps plein, avec de la curiosité personnelle (et pas juste faire comme on te dit). En fait l'ingénieur "10x" est juste un mec qui sait à peu près de quoi il parle.

 

Donc je suis partagé. Ce qui ne doit jamais empêcher quiconque de se mettre à un langage de programmation ASAP.

  • Yea 1
Lien vers le commentaire
il y a 43 minutes, ttoinou a dit :

Connaître à fond quelques langages / environnements histoire d'être très productif c'est bien aussi. Et pour les autres en connaître assez pour blablater en entretien d'embauche. Pour la finance se concentrer sur Excel (VBA), Python et C++ c'est déjà très diversifié comme talents et pas évident

C++ ? Sérieusement ? Dans quels domaines développe-t-on encore largement en C++, au juste ?

 

il y a 9 minutes, cedric.org a dit :

Quels sont tes besoins de scalabilité? Quelle est la complexité de ton composant? Comment il s'intègre aux autres? Comment le rendre résilient? Peut-on faire du circuit breaking? Quels sont les limites et la complexité de l'arbre de décision de ton code? Quelle est la maintenabilité et l'estimation du cout de maintenance du composant? Le type de variable de ce machin est-il immutable, comment c'est représenté en mémoire, et donc quelles sont les conséquences en terme d'utilisation mémoire? As-tu vraiment besoin de ton triple pointeur à cet endroit? La mémoire est-elle bien libérée pour ne pas avoir de fuite dans tous les cas? Comment tu fais ta gestion d'exception?

Concrètement, la moitié de ces questions ne se posent pas en Cobol (au moins dans les domaines où il est légitime/usuel de développer en Cobol). ;)

Lien vers le commentaire

@cedric.org

 

Je suis d'accord. Perso tous mes hobbies j'ai mis minimum ~7 ans avant de me dire "c'est bon je maîtrise" : programmation, maths / algorithmique, photographie, art génératif 2D, vidéos etc. Et j'ai une longue liste de hobbies où je sais que je ne maîtrise pas encore et dans 5 ans ça sera peut être potable. Du coup 7 ans en hobby je dirais minimum 3 ans à temps vraiment plein.


D'un autre côté ça ne veut pas dire que tout ce que l'on fait avant l'étape "c'est bon je maîtrise" est inutile, et il y a aussi des gens qui se prennent la tête pour rien. Tu n'as pas tout le temps besoin de rendre un projet scalable dès le début, fais ton MVP c'est déjà pas mal.

Autre exemple : je vends mes propres logiciels depuis quelques années et je n'ai toujours pas de système de tests automatiques ou de tests unitaires. Je teste encore à la main toutes mes procédures et l'intégration finale. J'ai bien envie de m'y mettre, mais ça prends du temps et si j'avais du faire ça dès le début ça m'aurait découragé ou beaucoup retardé

Lien vers le commentaire
il y a 3 minutes, Rincevent a dit :

C++ ? Sérieusement ? Dans quels domaines développe-t-on encore largement en C++, au juste ?

On parle de la finance là (enfin je crois) et oui en finance c'est encore utilisé

Lien vers le commentaire
il y a 9 minutes, ttoinou a dit :

On parle de la finance là (enfin je crois) et oui en finance c'est encore utilisé

Oui, la question est quels domaines de la finance au juste ?

Lien vers le commentaire
il y a 5 minutes, ttoinou a dit :

On parle de la finance là (enfin je crois) et oui en finance c'est encore utilisé

Indeed.

C'est utilisé en recherche quant/trading algo. Ce n'est pas ma branche donc je n'y ai jamais touché (Julia est d'ailleurs mon premier langage compilé).

Python peut être utile dans ma branche pour utiliser des gros datasets (genre l'historique des prix des composants d'un indice).

Lien vers le commentaire
22 minutes ago, Rincevent said:

C++ ? Sérieusement ? Dans quels domaines développe-t-on encore largement en C++, au juste ?

Partout ou il est utile de faire du C++, il doit être bien plus judicieux de faire du Rust, sans exception,n sauf legacy.

Lien vers le commentaire
il y a 5 minutes, cedric.org a dit :

sans exception, sauf legacy.

Donc en fait exception partout :D . Il y a partout du legacy code, des librairies utilisées irremplaçables par des lib rust, des outils irremplaçables dans l'immédiat (compilateurs, IDEs etc.).
Heuristique de Taleb : si ça fait 30 ans que le C++ est populaire, on peut supposer qu'il lui reste encore 30 années (50 ans pour le C)

 

Rust prendra le pouvoir par les non-novices qui lancent de nouveaux projets en partant de zéro

 

il y a 9 minutes, cedric.org a dit :

Partout ou il est utile de faire du C++, il doit être bien plus judicieux de faire du Rust

Certaines entreprises n'autorisent pas toutes les fonctionnalités du langage dans leur code review, non ? Par exemple interdiction d'utiliser des pointeurs C, n'utiliser que des smart pointers C++. Avec 3 ou 4 règles de ce type il y a moins de raison de vouloir tout faire basculer sur un autre langage jugé plus safe

Lien vers le commentaire

j'avais essayé d'auto apprendre R mais je n'ai ni patience ni intéret pour ces trucs, je laisse tomber en quelques jours, c'est dommage

  • Nay 1
Lien vers le commentaire
12 minutes ago, ttoinou said:

Donc en fait exception partout :D . Il y a partout du legacy code, des librairies utilisées irremplaçables par des lib rust, des outils irremplaçables dans l'immédiat (compilateurs, IDEs etc.).
Heuristique de Taleb : si ça fait 30 ans que le C++ est populaire, on peut supposer qu'il lui reste encore 30 années (50 ans pour le C)

 

Rust prendra le pouvoir par les non-novices qui lancent de nouveaux projets en partant de zéro

 

Certaines entreprises n'autorisent pas toutes les fonctionnalités du langage dans leur code review, non ? Par exemple interdiction d'utiliser des pointeurs C, n'utiliser que des smart pointers C++. Avec 3 ou 4 règles de ce type il y a moins de raison de vouloir tout faire basculer sur un autre langage jugé plus safe

A mon sens, si tu apprends quelque chose, mieux vaut apprendre quelque chose qui a de l'avenir plutôt que quelque chose qui a du passé , si on veut faire des choses intéressantes...mais c'est vrai qu'on parle de Cobol au départ :D

  • Haha 1
Lien vers le commentaire
Il y a 9 heures, cedric.org a dit :

Donc d'un côté je continue à dire que connaître un langage de programmation tendance est un énorme plus pour sa carrière, autant vouloir en faire sa carrière sans avoir de background software engineering, je pense qu'il faut s'accrocher et être humble au début... (et au moins se faire un mooc sur la complexité algorithmique genre https://fr.coursera.org/learn/algorithms-part1 ). Je suis sûr que si maintenant tu relisais ton code, tu ne garderais pas grand chose!

 

Bof. L'algorithmie ne sert pas à grand chose dans la vie de la plupart des programmeurs. Un peu de bon sens suffit à choisir les bonnes structures de données. Ensuite quand tu écris une requête SQL ou que tu utilises une API de tri de ton langage, ce n'est pas critique de savoir comment c'est implémenté en vrai.

 

Les qualités requises sont plutôt l'organisation et la rigueur. Ces deux qualités n'en forment qu'une seule en fait, et celle-ci s'acquiert avec l'expérience. Ça ressemble à : prendre le temps de bien nommer chaque chose. De ranger les données d'une manière pratique pour le problème à traiter. Faire l'effort de réorganiser les choses au fil du temps. Systématiquement penser au "sinon" lorsqu'on écrit une condition, même si le cas parait improbable ou même impossible.

 

il y a 47 minutes, cedric.org a dit :

Partout ou il est utile de faire du C++, il doit être bien plus judicieux de faire du Rust, sans exception,n sauf legacy.

 

La plupart des drivers sont utilisables en C++, pas en Rust. Le C est plus facile à accéder mais la doc est de toute manière toujours pour du C++, jamais pour du Rust, donc Rust ajoute de la difficulté.

Énormément de libs (OpenCV, Tensorflow, …) sont écrites en C++. Et les ponts avec Rust ne sont pas solides.

 

Rust est sûrement très bien pour construire un gros projet autonome depuis zéro, comme Firefox ou j'imagine un serveur web super-performant mais qui interagit peu avec le reste du système. Ce n'est pas vraiment utilisable pour faire du système aujourd'hui. Et je précise que je dis ça avec dépit. Je hais ce que C++ est devenu. Une sorte de tour de Babel de concepts mal intégrés. Aucune convention, nulle part. Du code pourri partout. J'y mets les mains de temps en temps mais j'ai toujours l'impression d'en sortir sali.

 

  • Yea 1
Lien vers le commentaire
Il y a 2 heures, Frenhofer a dit :

https://validator.w3.org/#validate_by_uri oui comme cité par @cedric.org.

Et aussi, https://webhint.io/scanner/

Pour le ssl, https://www.ssllabs.com/ssltest/

Pour la charge, Apache JMeter.

Pour le code source, SonarQube.

 

 

 

Et aussi Page Insight pour la validation du Dieu Google

Owasp pour tout ce qui est sécu.

Me contacter pour ce genre de presta :gaulois:

Lien vers le commentaire
il y a 21 minutes, cedric.org a dit :

A mon sens, si tu apprends quelque chose, mieux vaut apprendre quelque chose qui a de l'avenir plutôt que quelque chose qui a du passé , si on veut faire des choses intéressantes...mais c'est vrai qu'on parle de Cobol au départ :D

Avec la même heuristique Rust en a pour 10 ans. Donc moins d'avenir que C ou C++ :)

 

Faire des choses intéressantes != langage / environnement intéressant, à part si c'est pour une lubie de geek (envie de me mettre à Red perso ?  https://www.red-lang.org/ )

Lien vers le commentaire
il y a 47 minutes, ttoinou a dit :

Les robots tradeurs par exemple me dit-on. J'avoue je m'y connais moins que beaucoup d'entre vous en finance / banque; Quels langages / environnements recommandes-tu @Rincevent ?

 

Moi, j'ai beaucoup développé en MQL 4 sous MetaTrader. Mais, c'est assez éloigné de ce que l'on fait chez les "gros".

C'est quand même pas mal pour commencer 

Lien vers le commentaire
3 minutes ago, ttoinou said:

Avec la même heuristique Rust en a pour 10 ans. Donc moins d'avenir que C ou C++ :)

 

Faire des choses intéressantes != langage / environnement intéressant, à part si c'est pour une lubie de geek (envie de me mettre à Red perso ?  https://www.red-lang.org/ )

Une bonne partie des boîtes intéressantes s'y mettent très sérieusement. Y compris en finance. Surtout en finance.

Lien vers le commentaire
36 minutes ago, poney said:

j'avais essayé d'auto apprendre R mais je n'ai ni patience ni intéret pour ces trucs, je laisse tomber en quelques jours, c'est dommage

C'est un conseil bateau mais ça aide énormément d'avoir un projet concret sur lequel bosser.

  • Yea 2
Lien vers le commentaire
42 minutes ago, L'affreux said:

 

Bof. L'algorithmie ne sert pas à grand chose dans la vie de la plupart des programmeurs. Un peu de bon sens suffit à choisir les bonnes structures de données. Ensuite quand tu écris une requête SQL ou que tu utilises une API de tri de ton langage, ce n'est pas critique de savoir comment c'est implémenté en vrai.

Jusqu'à ce qu'il y ait un bug grave et incompréhensible et urgent et la il faut comprendre tous ces concepts d'un côté et être capable de tracer l'appel jusqu'au kernel s'il le faut de l'autre.

 

Aller hop, le premier exemple qui me vient en tête lié à un des langages de cette discussion : en python, pourquoi ne faut-il JAMAIS mettre en valeur de paramètre par défaut un type mutable? Pour le comprendre il faut comprendre la gestion de mémoire de python et être capable de descendre dans les concepts de pointeurs/références de C. Et encore, c'est un des plus simples auxquels je pense.

Alors ouais, tu peux très bien t'en foutre mais ça va péter en prod au mauvais moment et il ne faudra pas venir pleurer parce qu'il y a un X00k€ de perdus. (C'est du vécu, j'ai du debug des trucs comme ça dans ma carrière, trop tard malheureusement, et hop le site qui tombe en plein burst de clients, tout ça a cause d'un mauvais review d'un gars qui a laissé passer du code pourri de junior, avant que je mette en place une règle automatique de détection et d'interdiction de ces merdes, mais c'est un cas parmi whatmille).

 

Ou un cas de complexité quadratique flagrant qui ne passe pas du tout l'échelle, ça marche sur les envs de tests et ça pète immédiatement en prod. Encore faut-il savoir ce qu'est une complexité quadratique.

 

Lien vers le commentaire
à l’instant, cedric.org a dit :

Jusqu'à ce qu'il y ait un bug grave et incompréhensible et urgent et la il faut comprendre tous ces concepts d'un côté et être capable de tracer l'appel jusqu'au kernel s'il le faut de l'autre.

 

Aller hop, le premier exemple qui me vient en tête lié à un des langages de cette discussion : en python, pourquoi ne faut-il JAMAIS mettre en valeur de paramètre par défaut un type mutable? Pour le comprendre il faut comprendre la gestion de mémoire de python et être capable de descendre dans les concepts de pointeurs/références de C.

Alors ouais, tu peux très bien t'en foutre mais ça va péter en prod au mauvais moment et il ne faudra pas venir pleurer parce qu'il y a un X00k€ de perdus. (C'est du vécu, j'ai du debug des trucs comme ça dans ma carrière, trop tard malheureusement, et hop le site qui tombe en plein burst de clients).

 

 

J'ai déjà eu à gérer une usine à l'arrêt à cause d'un problème de pointeur en C sous OS2 ... 

Lien vers le commentaire
7 minutes ago, Lancelot said:

C'est un conseil bateau mais ça aide énormément d'avoir un projet concret sur lequel bosser.

Toujours. Sinon c'est du scolaire et ça n'apprend rien.

Le meilleur moyen d'apprendre c'est avec un but concret et en galérant dessus pendant des heures.

Je dis ça mais c'est l'exacte raison pour laquelle je n'ai jamais progressé en musique... J'abandonne toujours AVANT d'avoir galéré suffisamment tout seul.

Lien vers le commentaire
il y a 10 minutes, Lancelot a dit :

C'est un conseil bateau mais ça aide énormément d'avoir un projet concret sur lequel bosser.

 

C'est ce que j'ai fini par réaliser oui ; c'est sans doute pour ça que je n'arrivais pas à y voir de l'intéret au dela de me dire "on est en 2019, t'es au chomage, le language informatique c'est important, vas-y". Ca a du durer 10 jours je crois, et encore.
Peut-être qu'un jour un projet particulier m'y plongera sans l'ennui que ça m'avait apporté.

Lien vers le commentaire

Je précise, ce n'est en aucun cas un message pour décourager de s'y mettre, j'insiste lourdement. Je pense que savoir développer, même superficiellement, est aujourd'hui un énorme plus dans quasiment toutes les carrières intellectuelles un poil techniques existantes. Et est en passe de devenir indispensable, et ne PAS savoir le faire va devenir impactant.

 

Mais ne pas confondre quelqu'un qui sait se débrouiller sur les fonctions de bases d'un langage, et un ingénieur logiciel.

Mettre le premier à la place du second, c'est un peu une des explications de pourquoi l'IT des banques/assurances, rempli de SSIIs qui balancent (balançaient?) des mecs vendus "seniors" qui sont en fait des docteurs en physique reconvertis avec deux mois de bootcamp, est dans un état si mauvais. C'est l'assurance de multiplier par 10 litéralement le cout de maintenance (d'ou le terme, à mon sens, "10x engineer" : il n'est pas 10x plus rapide, il sait juste quels sont les pièges parce qu'il a une connaissance du domaine)

  • Yea 3
Lien vers le commentaire
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...