Les travers du recrutement en informatique en France analysés à coup de #BigData

Attention dyslexie inside.

En introduction, et c'est de l'impertinence que j'assume d'après toutes les offres de big data (analyse de données) je ne suis pas suffisamment qualifié pour en parler.

Mon tort ? Mon titre de Maître es Science Physique (appliquées) qui ne vaut pas tripette contre une école de commerce option marketing et bullshit.

Je vais me permettre de mettre mes génitaux sur la table : quand on a travaillé en labo et été cité dans des publications scientifiques pour avoir permis de réduire le résultats de milliers d'expériences contenant des milliers de points à une valeur physique unique alors on est compétente en Big Data.

Maintenant que c'est fait, il est temps de l'étayer en démontrant par les faits que c'est le cas.

Qu'est ce que le Big Data ?


Un mot vide de sens supposé indiquer la capacité à traité de gros corpus de données et à en retirer des informations pertinentes. 2, 3 au max compréhensibles dans la langue de tous.


Derrière toute analyses de situation il y a une motivation à trouver une solution, à quoi ?

A la suite du suicide par overdose d'un ami connu en web agency, je suis dans une quête depuis 6 ans pour trouver un emploi loin de la culture informatique que je soupçonnais d'être toxique (sans pouvoir mettre le doigt dessus). J'ai fait un burnout à mon dernier boulot (GIP FUN-MOOC) suite à du cyber-harcèlement sur le github publique de l'entreprise.

La chose que j'ai donc recherché consistait à filtrer les offres de Pole Emploi afin d'éliminer tout ce qui pouvait être toxique sans savoir ce qui l'était.

J'avais un autre soucis : aider ma femme à m'aider or le plus gros problème rencontré avant même de qualifier les milliers d'offres par jour consistait à :
  • éliminer celles déjà vues ;
  • éliminer celles dont les contenus ne correspondait pas aux mots clés voulus ;
  • éliminer les intermédiaires postant sur pole emploi en faisant croire à un contrat final.
Si au départ je pensais faire une analyse textuelle, il se trouve que la plus grosse partie de mon travail  a consisté à dédoublonner les offres.

Imaginons que je me connecte à pole emploi, que je recherche un boulot de "data scientist" ou développeur python.

  • Je vais avoir très souvent des offres PHP, java ou autres sans rapport avec mes compétences ;
  • Je vais me voir reproposer très souvent des offres déjà vues.
Peut on quantifier très souvent ? 99.9%

Peut on quantifier impertinent ? 99%

On a un facteur de signal/bruit de 1/1000000

Est-ce terminé pour autant ?

Non la plupart des offres sont mal qualifiées.

Pour ajouter l'humiliation à l'injure le site de pole emploi est très peu ergonomique.

Certains vont me dire : il y a une API. Je vais être brutalement honnête : cette API est à chier pour 3 raisons.
  1. Elle ne dédoublonne pas ;
  2. par expérience de 15 ans de programmation toute documentation mal écrites dans la langue du pays est à chier. La documentation de l'API pole emploi est en franglais. Je parle bien anglais et français, je conchie le franglais ;
  3. la partie récupération d'une clé d'API est d'une lourdeur bureaucratique crasse.
Donc, j'ai fait ce que j'ai toujours fait ; ce qu'on appelle un aspirateur à site web : un programme qui récupère les pages de pole emploi et les offres associées si besoin.

Code source du script python

Il est moche ; j'ai pas l'intention de chercher du turbin toute ma vie, c'est un script jetable en mode chez moi ça marche.

Au fur et à mesure de son utilisation je me suis aperçu que la fonction principale du script consistait à ne plus me remontrer les offres que j'ai déjà vu. C'est comme ça que je peux estimer le ratio de bruit sur le site de pole emploi.

Ce qui veut aussi dire, sachant que je stocke localement les offres et les résultats de mes recherches que mon aspirateur d'offre économise à PE (pole emploi) énormément de bande passante.

Dans toutes les offres bigData la maîtrise de base de données permettant de gérer des milliards d'entrées est exigée. J'utilise mon disque dur et ma mémoire : en dédoublonnant, pour un mois de recherche, je n'ai que 3000 entrées sur disque pour la moitié de la France malgré supputativement d'après le site PE largement plus d'offres disponibles. Évidemment que je pourrais les utiliser, mais j'ai autre chose à faire qu'installer une grappe de 5 serveurs de base de données quand les 8Go de mon PC suffisente et que j'ai pas la maille pour me payer 5 serveurs et le temps pour faire sysadmin en même temps, je dois aussi jouer avec ma fille !

Voilà ça c'est pour la partie criblage : en retirant le bruit du signal (redites) on peut transformer un problème de big data en medium data avec 2 ordres de grandeurs (/1000).

Ensuite, attaquons la pertinence.

J'en avais ras le cul d'expliquer à ma femme que non quand les offres étaient "BAC+5 ou école de commerce ou niveau équivalent" ça voulait dire "universitaires allez vous faire voir". Elle me disait, mais à ton âge que ce soit au Québec (où nous avons vécu) ou en Pologne, tout le monde s'en câlisse, en estie de ton diplôme, kurwa de tabernâk !

Donc après avoir infructueusement tenté l'indexation textuelle (les universités françaises partagent le code source, mais pas les corpus permettant la lemmisation catégorisation alors que ce travail est fait avec de l'argent publique) qui nécessitent de bons outils indisponibles pour la langue française, je me suis rabattu sur la technique de brutalité propre aux scientifiques : parfois moins précis, mais plus simple si ça peut marcher. J'ai utilisé des expressions rationnelles (regexp en mauvais franglais informatique).

Une mauvaise odeur dans une offre d'emploi stable en informatique c'est (SPOILER) :
  • des qualifications non adaptées ;
  • "pour le compte d'un grand client", "SSII", "INTERIM" ;
  • gestion du stress ;
  • l'utilisation de framework
  • plus de 15 compétences éxigées ....
Pourquoi je dis spoiler (divulgâcher en français) ? Car je l'ai découvert non avant de faire l'outil, mais en l'utilisant.

A quoi ressemble mon outil ? C'est un outil en ligne de commande, qu'on peut qualifier de DSL (Domain Specific Language ou Langage Dédié) mais qui m'affiche des pages webs kikoo lol.

voilà ce que je peux y voir :


L'offre déroulée en un clic me permet de voir en surligné ce qui est exigé (et le nombre d’exigences) et en caca d'oie les choses que je juge non pertinente en rapport avec la recherche (ici python)

En général je ne regarde que les offres pour valider si j'ai des faux positifs, et j'ai rajouté les mots clés au fil de l'eau.

J'ai corrélé les offres auxquelles on ne me répondait pas avec certaines marqueurs (le niveau de diplôme) par exemple.

Le nombre de petites crottes correspond au nombre de mots clés non pertinents.

J'ai mis une fonte que j'aime lire, et du monospace avec un colonnage à 80 caractère car ça augmente la vitesse de lecture. Je n'ai mis que les informations qui m'intéressait.

Et puis j'ai mis un camaïeu de mauvais goût ainsi que de la rondeur partout parce que j'aime la couleur. Dans une version future, je mettras un arc en ciel pour que ce soit plus gai.

L'intérêt d'avoir une ligne de commande, et des données facilement accessibles sans interfaces de requêtage, c'est qu'il devient facile de faire des pivots sur les données pour obtenir des informations telles que :
  • quelle est la fréquence de crottes par titres ?
  • quelle est la fréquence de crottes par titres en fonction de la fréquence du titre ?


 Et ensuite :

On en déduit facilement des choses simples telle que plus un titre est unique, plus il y a de chance que ce soit du BullShit (de la merde de chameau).

Chaque graph en ligne de commande me permet une productivité d'analyse supérieur à l'utilisation d'Excel, MS-Access, Hadoop, Spark, Cassandra, Grafana qui sont pourtant un des pré-requis justement en big-data.

Une fois armé de cet outil voyons ce que l'on peut tirer comme résultats

Les Ressources Humaines (en Technologie de l'Information) ne comprennent pas les métiers de l'informatique


Mon grand père maçon quand on lui demandait quel était son métier (il était compagnon) il répondait, un maçon c'est quelqu'un qui sait monter un mur droit.

Si on applique à l'informatique et qu'on regarde la manière de formuler les offres on voit tout de suite le problème.

Un maçon doit il être jugé sur sa connaissance des outils ?

Non, si vous connaissez des Compagnons du tour de France, des MOFs, vous saurez qu'ils entraînent leurs petits lapins  (apprentis) à savoir se démerder avec les moyens du bord quand ils ont pas les meilleurs outils. Ce qui inclut de laisser les pious pious improviser des palans qui pourraient les tuer pour lever des blocs de plusieurs centaines de kilos.

Les outils en informatiques sont une difficulté accidentelle. N'importe quel idiot peu apprendre un langage, un cadriciel (framework) en un tiers du temps d'une période d'essai. Et c'est justement une bonne manière de juger un informaticien.

RH arrêtez d'éxigez la connaissance d'outil pointus pour une offre d'emploi, vous augmentez vos coûts de recrutement et créez une barrière qui favorise les bras cassés incapables de s'adapter

La convivialité, le fun, le challenge (défi en anglais) sont un mauvais signe. Orienté valeur, écoute ...

Ce qui évite la toxicité culturelle en informatique n'est pas d'être gentil et inclusif ou de vivre dans la bromance mais la neutralité émotionnelle.

Une expérience qui s'est répétée pour moi, c'est que trouver un trou de sécurité dans des grandes entreprises fait qu'une personne va le prendre très mal.

D'une part il est à noter que se focaliser sur la valeur incite à ignorer les cas asymptotiques, qui sont justement ceux où les trous de sécurité apparaissent, d'autre part on fait tous des erreurs. Factuellement, si vous analysés statiquement mon script, vous allez voir des erreurs (ainsi que moult fautes d'orthographes et d'accords en lisant ceci)

Avec la mise en œuvre du GRDP vous n'avez plus le luxe d'ignorer la question de la sécurité des données, et ça commence par avoir une culture de neutralité émotionnelle permettant de gérer les non conformités comme des adultes.

RH arrêtez de dire que votre boîte est fun/convivial seul les codeurs qui n'ont pas de vie et qui sont toxiques seront attirés par votre entreprise : on ne vit pas pour travailler, on travaille pour vivre

Quand on dit que la France rayonne à l'international du fait de ses grandes écoles. Par expérience, à part quand les français huppés colonisent une place (au hasard le plateau mont royal)  les polytechniciens et autres sont vus comme inférieur à des universitaires, car ce ne sont pas des titres ayant une forte résonance à l'international.

Les métiers reconnus sont nos métiers artisanaux et ouvriers : ébénistes, chefs de cuisine, tailleurs de pierre, maçon traditionnel .... Ceux où la reconnaissance est le fait de savoir faire, où il y a des concours de Meilleurs Ouvriers de France. Le faire savoir est le propre des grandes gueules le savoir faire des bons ouvriers.


RH, arrêtez de refuser les CV fournit sous la forme d'une page web pour un métier de l'informatique. Ils prouvent un savoir faire. Valorisez les projets libres innovants, les participations aux conférences ...


Point spécial : les entreprises ayant des taux de retour frisant les 0% une offre masquée derrière pole emploi on y répond pas.


Je tiens à souligner que les offres issus de l'industrie sont bien mieux rédigées que celle du secteur tertiaires et ironie spécialement des domaines des technologies de l'information.

Je pense que si déjà ces 3 points étaient validés ce serait bien. J'ai une détestation spéciale pour le mot digital (qui réfère au doigt) en lieu et place de numérique car quand les gens ignorent que le mot français est numérique cela implique que l'organisation aura du mal à communiquer, et donc que ce sera la tour de Babel. En fait, chaque mot de franglais me hérisse (et une crotte de plus). Une plateforme digitale, c'est un clavier car on y pose ses doigts.


Pole Emploi est un repère de cave



Ca risque de me coûter ma candidature pour leur API, mais maintenant je connais vachement bien leur API.


Beaucoup de données c'est le contraire de beaucoup d'information

L'information se distingue de la donnée par sa pertinence.

Si je suis obligé de créer mon outil qui accessoirement évite de tabasser vos serveurs en filtrant 99.99% de vos offres c'est que votre site remonte beaucoup de données peu d'information.

En tant que Joe la Science je vous donne la définition de bordel informationelle

H = k x ln(données_présentées_pertinentes/ensemble_donnée)

Imaginez que je suis informaticien, mais pour parcourir vos bases en long en large et en travers et m'amuser à regarder les offres manquant de candidat, ces offres sont des métiers non intellectuels. Les gens qui ont le plus besoin qu'on répondent à leurs offres n'ont pas des chercheurs motivés ou sachant rechercher une aiguille dans une meule de foin. Si vous devez vous focaliser sur une et une seule chose, c'est pas votre API/dev store, c'est la pertinence des recherches sur le site web.

Votre API est à chier, et vous n'en avez pas besoin

Une page web bien structurée c'est la même chose qu'une API REST. Le truc, c'est que votre page pour présenter les offres est écrite dans un HTML ignoble dont la sémantique des classes CSS contredit le HTML et la hiérarchie, au final, ça va plus vite de l'analyser en la transformant en texte sans balise. Ajout : L'ironie est d'autant plus forte, qu'une partie de l'application des règles d'accessibilité diminue l'accessibilité au site (lol).

Et même malgré tout ça, quand j'ai vu la doc en franglais de votre API et sa complexité inutile, j'ai refusé de l'utiliser et j'en suis content.


J'ai du corriger quelques une de vos ruses de sioux ridicules pour empêcher l'aspiration (ou peut être de l'incompétence) et ai sauté au plafond en voyant que vous ne respectiez pas certains standards de sanité du passage des arguments.


Abandonnez vos API, faites juste du HTML simple et propre facile à analyser, respectez le protocole HTTP.

Tout ce temps gâché par les chercheuses d'emplois à rechercher une aiguille dans une meule de foin, c'est du temps qui coûte à la collectivité, aux entreprises aux organisme sociaux. C'est aussi du découragement. C'est écoeurant. Vous pouvez m'embaucher pour corriger ça ou pas, je m'en câlisse, en tout cas j'ai vu un problème, j'ai vu une solution, j'ai postulé chez vous.

Pole Emploi, vous qui êtes un agent publique au titre de la Déclaration des Droits de l'Homme est du Citoyen qui est toujours en vigueur, je vous demande des comptes pour cette gabegie, cette incapacité à bien réaliser le coeur de votre mission : permettre à la demande de rencontrer l'offre sans barrières inutiles.

Ajout : Les points positifis de pole emploi

Pourquoi avoir choisi pole emploi pour scrapper des offres en info et pas indeed, monster, chooseyourboss ? 

Les autres sites sont soit pire en déviance vers la bromance, soit quand on appelle pour savoir si l'offre est encore dispo on se voit répondre souvent que non (ce qui est pas très différent de pole emploi).
Sauf que chez les autres c'est pire. Pole Emploi a selon mon expérience beaucoup moins d'offres affichées déjà pourvues. Et c'est déjà très bien.


PS : EDIT : j'ai beau être dyslexique et assumer, n'hésitez pas à remonter les fautes d'orthographes ponctuations, redites ... 

No comments: