Des cartes d'offres se relient, par un codebook de termes, à une grille de comparaison.
Comptez les termes avec une seule règle énoncée.

Un contexte pertinent signifie que les mots autour du terme montrent que le texte porte sur cette compétence. Une lettre isolée n'est pas un contexte pertinent. Un Actor est un programme hébergé de collecte de données. Une Task est un préréglage d'entrée enregistré. L'Actor collecte les lignes sources. Vous marquez les termes de compétence.

1. Définir le panel d'abord

Écrivez les règles du panel avant de marquer une compétence. Un panel est le groupe d'offres pour un rôle, un marché et une règle de date. Écrivez la règle de date dans la note du panel. Une règle de date est la fenêtre de temps que vous acceptez.

Nommez le nombre que vous allez rapporter avant de coder. Vous pouvez rapporter combien d'offres ont un usage de la compétence. Vous pouvez rapporter combien d'employeurs ont cet usage. Vous pouvez rapporter combien de fois les mots apparaissent. Ce sont trois nombres différents. Ne les mélangez pas.

Une part est un compte divisé par un nombre du bas. Le dénominateur est ce nombre du bas. Vous le fixerez après avoir su quelles offres ont un texte complet. Ne codez pas les termes avant d'avoir nommé la part.

Pour un mois ancien, utilisez les instantanés de description que vous avez déjà enregistrés. L'Actor ne peut pas collecter les descriptions de 2020 ou de 2021. Une nouvelle exécution peut seulement ouvrir un nouveau panel. Elle ne peut pas reconstruire un ancien panel.

2. Collecter et enregistrer les lignes sources

Utilisez l'Actor Indeed Jobs Scraper. La version publique 1.2.14 prend ces champs : searchTerm, country, location, maxItems, maxPagesPerSearch, postedWithinDays, sortBy et saveOnlyUniqueItems. La Task enregistrée a été vérifiée le 13 octobre 2026. Une Task est seulement une entrée de départ. Elle ne fait pas ce compte à votre place.

L'entrée de la Task enregistrée est :

json
{
  "country": "us",
  "searchTerm": "software engineer",
  "maxItems": 100,
  "postedWithinDays": "7",
  "sortBy": "date",
  "maxPagesPerSearch": 2,
  "saveOnlyUniqueItems": true
}
2. Collecter et enregistrer les lignes sources

Cette Task fixe le pays à us et le terme de recherche à software engineer. Elle ne fixe pas de ville. Ajoutez location seulement lorsque votre marché est plus petit que le pays. Remplacez le rôle et le marché lorsque vous étudiez autre chose. Gardez un seul rôle et un seul marché dans l'exécution.

Le plafond est la limite maxItems. Cette Task fixe le plafond à 100 lignes et lit jusqu'à 2 pages de recherche. Ce plafond large n'est pas le premier contrôle du texte. Pour le premier contrôle, gardez un seul rôle et un seul marché. Fixez maxItems à 2. Fixez maxPagesPerSearch à 1. Une entrée de premier contrôle est :

json
{
  "country": "us",
  "searchTerm": "software engineer",
  "maxItems": 2,
  "postedWithinDays": "7",
  "sortBy": "date",
  "maxPagesPerSearch": 1,
  "saveOnlyUniqueItems": true
}
2. Collecter et enregistrer les lignes sources

Une exécution plafonnée sur cette version a renvoyé deux lignes. Chaque ligne avait un identifiant d'offre source et une URL source. Chaque ligne avait le texte complet de la description. L'exécution a atteint maxItems. Copiez les identifiants et les URL depuis votre propre sortie. Ne saisissez pas de nouveaux identifiants. Cette exécution montre que la collecte du texte fonctionne. Ce n'est pas un résultat de compétence. Ce n'est pas le panel fictif plus bas.

La Task enregistrée fixe saveOnlyUniqueItems à true. Ce réglage peut réduire les répétitions lorsque l'Actor collecte des lignes. Il ne termine pas une revue des doublons. Une republication est le même poste vacant publié de nouveau. Avant de coder, retirez les lignes en double déjà revues et les lignes de republication déjà revues. Utilisez le guide des doublons et des republications pour cette revue. Gardez le nombre retiré dans vos notes.

Chaque ligne source est un enregistrement collecté. Une offre retenue est une ligne que vous gardez pour le compte. Stockez jobId comme texte. Ne laissez pas un tableur changer jobId en nombre.

Utilisez ces champs de sortie. Un compteur d'exécution est un seul nombre pour toute l'exécution. Ce n'est pas une ligne d'offre.

2. Collecter et enregistrer les lignes sources
Nom de sortieTypeComment l'utiliser
jobIdChamp de ligneStockez-le comme texte.
titleChamp de ligneGardez-le. Ne traitez pas le titre comme l'exigence complète.
companyNameChamp de ligneGardez-le pour le compte des employeurs.
locationRawChamp de ligneGardez le texte de lieu de la source.
descriptionTextChamp de ligneCodez les compétences à partir de ce texte.
descriptionStatusChamp de ligneUtilisez seulement full ou missing.
jobUrlChamp de ligneGardez l'URL source.
queryChamp de ligneGardez le texte de recherche de la ligne.
searchLocationChamp de ligneGardez le lieu de recherche de la ligne.
scrapedAtChamp de ligneC'est le moment de la collecte.
seniorityChamp de ligne facultatifIl peut être absent. Ce n'est pas l'exigence complète.
employmentTypeChamp de ligne facultatifIl peut être absent.
salaryRawChamp de ligne facultatifIl peut être absent. Une absence n'est pas un salaire de zéro.
postedAtChamp de ligne facultatifIl peut être absent. N'inventez pas un mois de publication.
postedAtRawChamp de ligne facultatifIl peut être absent.
rowsExcludedByCompanyCompteur d'exécutionGardez ce compte à part.
rowsExcludedByDateCompteur d'exécutionGardez ce compte à part.
rowsExcludedBySalaryCompteur d'exécutionGardez ce compte à part.

descriptionStatus vaut full lorsque descriptionText est présent. Il vaut missing lorsque le texte est absent. N'ajoutez pas un statut d'extrait. Le texte complet ici est le texte que la source a donné. Ce n'est pas une promesse du document entier de l'employeur.

scrapedAt est le moment où l'Actor a collecté la ligne. Ce n'est pas le mois où l'employeur a publié l'offre. Si postedAt est absent, laissez le mois de publication inconnu.

rowsExcludedByCompany est le compte d'exécution des lignes écartées pour une raison d'entreprise. rowsExcludedByDate est le compte d'exécution des lignes écartées pour une raison de date. rowsExcludedBySalary est le compte d'exécution des lignes écartées pour une raison de salaire. N'additionnez pas ces trois comptes en un seul total. Ne transformez pas les compteurs en lignes d'offre. Ce contrôle donne chaque compte. Aucun des trois n'est omis. rowsExcludedByCompany vaut 0. rowsExcludedByDate vaut 0. rowsExcludedBySalary vaut 0. N'écrivez pas zéro pour un compteur omis. Ces trois compteurs sont présents, donc chaque zéro est le compte. La carte de l'exécution liste chaque champ et sa valeur. Un champ que ce contrôle ne donne pas est inconnu. Un champ futur qui est absent est inconnu. Le contrôle Indeed actuel, plafonné à deux lignes, a ces valeurs de sortie : requestedMaxItems: 2, candidateItemsSeen: 100, jobsSaved: 2, pagesParsed: 1, blockedPages: 0, failedRequests: 0, stopReason: "max_items_reached", rowsExcludedByCompany: 0, rowsExcludedByDate: 0, rowsExcludedBySalary: 0. Cette exécution n'est pas inconnue. Les champs futurs absents restent inconnus.

Enregistrez l'entrée qui a tourné, les lignes brutes et la sortie. Écrivez le maxItems que vous avez fixé et le nombre de lignes renvoyées. Si les deux nombres sont égaux, l'exécution a atteint le plafond. Une exécution qui atteint le plafond ne constitue pas l'ensemble complet des offres correspondantes. Si l'exécution ne renvoie aucune ligne, écrivez que l'exécution était vide. Une exécution vide ne prouve pas qu'aucune offre n'existe. Si l'exécution échoue, enregistrez la note d'échec. Ne remplissez pas une exécution échouée avec des zéros de compétence.

Gardez une ligne dont descriptionText est absent hors de l'ensemble codé. Ajoutez 1 au compte de lacunes pour chaque ligne de ce type. Une lacune n'est pas une offre où la compétence est absente.

L'Actor donne les lignes publiques actuelles. Il ne donne pas d'ancien texte de description. Il ne donne pas les heures de modification de l'employeur. Il ne donne pas le statut des candidats. Il ne donne pas un plan d'apprentissage. Il n'étiquette pas les termes de compétence. Vous les étiquetez avec les règles ci-dessous.

3. Écrire la liste de compétences avant la correspondance

Écrivez une liste de compétences avant de chercher dans le texte. La clé de compétence est le seul nom que vous stockez pour une compétence. Un alias est une autre façon d'écrire cette même compétence. Un jeton est un mot entier ou un symbole autonome. Ce n'est pas un fragment d'un mot plus long. Une exclusion est une correspondance que vous refusez.

Ignorez la casse des lettres lorsque vous faites correspondre SQL, Structured Query Language et les autres clés ci-dessous. Laissez SQL et Structured Query Language partager une seule clé lorsque les mots désignent ce langage. Gardez Java séparé de JavaScript. Faites correspondre R seulement comme un jeton de compétence entier dans un texte pertinent. Ne faites pas correspondre la lettre R à l'intérieur d'un autre mot.

Une étiquette de version, par exemple une version de langage, exige une règle écrite. Un nom de produit exige une règle écrite. Décidez la règle avant de coder. Ne devinez pas pendant la lecture.

Cette liste de compétences sert au panel fictif de cet article. Ce n'est pas une liste fournie par l'Actor. Votre propre panel exige vos propres clés.

3. Écrire la liste de compétences avant la correspondance
Clé de compétenceAlias admisRègle de jetonExclusions
SQLSQL; Structured Query LanguageLes deux alias partagent cette clé lorsque le texte désigne le langage.N'utilisez pas cette clé pour une autre expression.
PythonPythonFaites correspondre le mot entier.Ne codez pas une expression non requise comme requise.
RRFaites correspondre un jeton entier dans un texte de compétence pertinent.Ne faites pas correspondre la lettre à l'intérieur d'un mot.
JavaJavaFaites correspondre le mot entier.Ne faites pas correspondre JavaScript.
JavaScriptJavaScriptFaites correspondre le mot entier.Ne comptez pas Java comme JavaScript.

Cette liste n'a pas de règle de version et pas de règle de nom de produit. Les textes fictifs n'ont pas de version et pas de nom de produit. Si votre texte a l'un ou l'autre, ajoutez d'abord la règle à la liste.

4. Coder chaque passage

Trouvez le passage qui contient le nom de la compétence. Lisez ensuite les mots autour. Une classe est le type de mention. Utilisez ces classes :

  • Requis signifie que le texte dit que le candidat doit avoir la compétence.
  • Souhaité signifie que le texte demande la compétence, mais ne dit pas que le candidat doit l'avoir.
  • Contexte signifie que le texte dit que le travail utilise la compétence, mais ne l'exige pas du candidat.
  • Explicitement non requis signifie que le texte dit que le candidat n'a pas besoin de la compétence.
  • Indéterminé signifie que vous ne pouvez pas dire la classe à partir des mots.

Une mention lexicale signifie que le nom de la compétence apparaît dans le texte. Gardez la mention lexicale même lorsque la classe n'est pas « requis ». Ne supprimez pas la phrase.

Le panel fictif plus loin contient les mots « no Python experience required. ». Ces mots sont une mention lexicale de Python. La classe est « explicitement non requis ». La classe n'est pas « requis ».

Le même panel contient les mots « we use R for reports. ». Ces mots sont une mention lexicale de R. La classe est « contexte ». Ne marquez pas R dans la classe « requis », sauf si le texte dit aussi que le candidat doit avoir R.

La lettre r à l'intérieur de « reports » n'est pas la compétence R. La lettre r à l'intérieur de « required » n'est pas la compétence R.

Si une offre a deux classes pour une compétence, marquez chaque classe. Si la même classe se répète dans une offre, marquez cette classe une seule fois.

5. Construire la matrice des offres

Une matrice terme par offre est une table avec une ligne pour chaque offre codée. Chaque classe de compétence a sa propre colonne. Mettez 1 lorsque le texte complet a cette classe. Mettez 0 lorsque vous avez lu le texte complet et que cette classe est absente. Un 0 signifie que vous avez lu le texte. Il ne signifie pas que le texte était absent.

Des mentions répétées d'une même clé dans une offre font encore une seule marque d'offre dans cette classe. La présence dans l'offre signifie ce 1. Gardez un compte brut d'occurrences dans une table séparée lorsque vous en avez besoin. Une occurrence brute est une apparition de la clé. N'ajoutez pas les occurrences brutes dans la colonne des offres.

Une offre peut avoir 1 pour la classe « souhaité » et 0 pour la classe « requis ». Une offre peut avoir 1 pour la classe « explicitement non requis » et 0 pour la classe « requis ». Une offre peut avoir 1 pour la classe « contexte » et 0 pour la classe « requis ». Ne fusionnez pas ces colonnes.

Ne mettez pas une description absente dans la matrice comme une ligne de zéros. Gardez-la dans le compte de lacunes.

6. Fixer le dénominateur

Le dénominateur est le nombre d'offres distinctes à texte complet dans le même panel. Distinct signifie que vous comptez la même offre une fois. Comptez seulement les offres qui restent après la revue des doublons. Comptez seulement les offres dont descriptionStatus vaut full.

La part des offres est égale au compte de la classe divisé par le dénominateur. Écrivez la part comme un compte sur le dénominateur. Rapportez le compte de lacunes à côté. Rapportez le compte d'identifiants incertains à côté. Un identifiant incertain est vide, modifié, ou en conflit avec une autre ligne. Gardez un identifiant incertain hors du dénominateur.

Rapportez aussi l'incertitude de codage. L'incertitude de codage signifie que les relecteurs ne s'accordent pas sur la classe. Gardez une offre contestée hors du compte de la classe « requis » jusqu'à ce que le dossier indique la classe convenue. Ne transformez pas un désaccord en un zéro silencieux.

L'étendue des employeurs est le nombre d'employeurs différents qui ont cette classe. Divisez ce compte d'employeurs par le nombre d'employeurs différents dans le dénominateur. Un employeur peut écrire beaucoup d'offres. Une part d'offres élevée peut quand même coexister avec une faible part d'employeurs distincts. Rapportez les deux parts.

Ces parts décrivent seulement votre panel. Elles ne sont pas la demande nationale de compétences. Elles ne mesurent pas ce que les candidats savent faire.

7. Comparer des panels avec les mêmes règles

Comparez deux mois seulement lorsque les règles du panel correspondent. Gardez le même rôle, le même marché, la même requête, la même fenêtre de date, le même plafond et la même version de la liste de compétences. Une version de liste de compétences est le nom que vous donnez à une liste de compétences enregistrée.

Si vous changez un alias ou une règle de classe, la part peut changer alors que le texte de l'offre reste le même. Ce changement est un changement de codage. Rapportez-le avant de lire la nouvelle part.

Si le plafond, la requête, le marché ou la fenêtre de date change, l'échantillon a changé. Un texte source absent est aussi un changement de couverture. Rapportez le changement d'échantillon avant de lire le changement de part. Ne traitez pas un changement de codage comme un changement d'échantillon.

Un échantillon de recherche ne montre pas la cause d'un changement. Il ne montre pas que tout le marché a grandi. Un changement de part de compétence n'est pas un changement du nombre d'offres. Pour les comptes d'offres dans le temps, utilisez le guide des tendances d'embauche.

8. Enregistrer le dossier

Enregistrez la liste de compétences et le nom de sa version. Enregistrez chaque passage que vous avez codé, avec l'identifiant de l'offre, la clé de compétence et la classe. Enregistrez la matrice. Enregistrez le dossier du dénominateur.

Le dossier du dénominateur doit comprendre :

  • Le rôle, le marché, la requête, la fenêtre de date et le plafond.
  • L'entrée qui a tourné et la version de l'Actor.
  • Le nombre de lignes renvoyées, et si l'exécution a atteint maxItems.
  • Toute note d'échec.
  • rowsExcludedByCompany, rowsExcludedByDate et rowsExcludedBySalary, ou inconnu pour chaque compteur omis.
  • Les lignes en double que vous avez retirées.
  • Le compte de lacunes.
  • Le compte d'identifiants incertains.
  • Le compte d'incertitude de codage.
  • Le dénominateur.
  • Le compte d'employeurs dans ce dénominateur.

Une deuxième personne doit pouvoir partir du passage enregistré et arriver à la même cellule de la matrice. Si elle ne le peut pas, le dossier n'est pas complet.

Arrêtez-vous au compte des termes. Une mission répétée peut guider un choix d'apprentissage ultérieur. Ce choix n'est pas ce compte. Ce compte n'est pas non plus un score personnel de préparation.

Compter un panel fictif

Les cinq descriptions de cette section sont une fiction. Elles ne sont pas des résultats de l'Actor. Elles ne sont pas un constat réel sur les compétences. J1 à J5 sont des étiquettes. Elles ne sont pas de vrais identifiants sources. La liste de compétences ci-dessus est la règle pour ce panel.

Compter un panel fictif
ÉtiquetteEmployeurdescriptionTextdescriptionStatus
J1ASQL required. SQL reports run daily. Python preferred.full
J2AStructured Query Language required; no Python experience required.full
J3BJavaScript required; we use R for reports.full
J4CJava required; R preferred.full
J5D`""`missing

Ces étiquettes n'ont pas de valeurs scrapedAt et pas de valeurs postedAt. Ne leur attribuez pas de mois de publication.

J1 et J2 utilisent l'employeur A. Leurs textes diffèrent. Cette fiction garde les deux offres. Elle ne dit pas que J2 est une republication de J1. Si une revue réelle retirait J2 comme republication, le dénominateur changerait. Cette fiction ne fait pas ce choix.

J5 a une étiquette connue et pas de texte complet. J5 reste hors de la matrice. Le compte de lacunes est 1. Le compte d'identifiants incertains est 0, parce que l'étiquette est connue et que le texte est la lacune. N'inventez pas de texte pour J5.

Le dossier des passages est :

Compter un panel fictif
OffrePassageClé de compétenceClasse
J1SQL required.SQLrequis
J1SQL reports run daily.SQLcontexte
J1Python preferred.Pythonsouhaité
J2Structured Query Language requiredSQLrequis
J2no Python experience requiredPythonexplicitement non requis
J3JavaScript requiredJavaScriptrequis
J3we use R for reportsRcontexte
J4Java requiredJavarequis
J4R preferredRsouhaité
J5Pas de texte completaucuneNon codé

Une occurrence est une fois où le texte de la compétence apparaît. La présence est une marque d'offre pour une classe. Marquez chaque classe une fois pour une offre. Une deuxième phrase avec la même clé et la même classe ajoute une occurrence brute. Elle n'ajoute pas une deuxième présence. Une deuxième phrase avec la même clé et une classe différente reçoit sa propre présence. Ne supprimez pas cette classe parce que la clé a aussi un texte de la classe « requis ».

La première phrase SQL de J1 relève de la classe « requis ». C'est une occurrence de la classe « requis ». La présence de la classe « requis » pour J1 est 1. La phrase « SQL reports run daily. » relève de la classe « contexte ». C'est une occurrence de la classe « contexte ». La présence de la classe « contexte » pour J1 est 1. J2 compte comme SQL parce que Structured Query Language est un alias admis. Les mots désignent le langage, et la phrase dit que cette compétence est requise. Cet alias est une occurrence de la classe « requis ». La présence de la classe « requis » pour J2 est 1.

La matrice utilise 1 et 0 seulement pour les quatre textes complets. J5 n'est pas une ligne ici.

Compter un panel fictif
OffreEmployeurSQL requisSQL contextePython requisPython souhaitéPython explicitement non requisR requisR contexteR souhaitéJava requisJavaScript requis
J1A1101000000
J2A1000100000
J3B0000001001
J4C0000000110
Nombre d'offres`""`2101101111

Chaque 0 de J1 à J4 signifie que le texte complet a été lu et que cette classe était absente. Aucun passage codé n'est indéterminé, donc indéterminé vaut 0 sur 4. Ce zéro suit une lecture. Ce n'est pas la lacune J5. Aucune classe n'est contestée, donc le compte d'incertitude de codage est 0.

Les comptes bruts restent dans une table séparée.

Compter un panel fictif
OffreClé de compétenceClasseOccurrences brutes
J1SQLrequis1
J1SQLcontexte1
J2SQLrequis1
J2SQLcontexte0
J1Pythonsouhaité1
J2Pythonexplicitement non requis1
J2Pythonrequis0
J3Rcontexte1
J4Rsouhaité1
J3Rrequis0
J4Rrequis0
J3Javarequis0
J4Javarequis1
J3JavaScriptrequis1
J4JavaScriptrequis0

Quatre offres valides à texte complet forment le dénominateur. Les offres sont J1, J2, J3 et J4. Les employeurs dans le dénominateur sont A, B et C. Ce total d'employeurs est 3. L'employeur D est en dehors, parce que J5 n'a pas de texte complet.

J1 a 2 occurrences SQL brutes. La classe « requis » en a 1. La classe « contexte » en a 1. J2 a 1 occurrence SQL brute, et cette occurrence est de la classe « requis ». Le compte brut pour « SQL requis » est 1 plus 1, ce qui égale 2. Le compte brut pour « SQL contexte » est 1. 2 plus 1 égale 3 occurrences SQL brutes. Le compte lexical SQL total reste 3. Le total brut de la classe « requis » est 2. Le compte d'offres de la classe « requis » est aussi 2. Le même nombre ne fait pas des deux mesures une seule mesure. L'occurrence de la classe « contexte » est hors du total brut de la classe « requis ». Le compte d'offres « SQL requis » est 2. La part « SQL requis » égale 2 divisé par 4. Elle n'égale pas 3 divisé par 4. Elle n'égale pas 2 divisé par 5. La mention brute supplémentaire relève de la classe « contexte ». Ce n'est pas une offre supplémentaire. J5 n'entre pas dans le nombre du bas.

Le compte d'offres « SQL contexte » est 1. La part « SQL contexte » égale 1 divisé par 4. N'ajoutez pas 1 offre de la classe « contexte » aux 2 offres de la classe « requis ». J1 serait compté deux fois. Les classes restent séparées.

Les deux offres de la classe « SQL requis » appartiennent à l'employeur A. La part d'employeurs pour « SQL requis » égale 1 divisé par 3. La seule offre de la classe « SQL contexte » appartient à l'employeur A. La part d'employeurs pour « SQL contexte » égale 1 divisé par 3. L'employeur A a aussi écrit 2 des 4 offres. Rapportez cette étendue à côté de la part des offres. Dans cette fiction, un seul employeur peut faire bouger la part SQL.

Le texte Python apparaît dans J1 et J2. Ce sont deux mentions lexicales, et les deux restent dans le dossier. La part « Python souhaité » égale 1 divisé par 4. La part « Python explicitement non requis » égale 1 divisé par 4. La part « Python requis » égale 0 divisé par 4. N'ajoutez pas la mention de la classe « souhaité » à la mention de la classe « explicitement non requis » pour appeler la somme « requis ». L'expression non requise reste une mention lexicale.

Le texte R apparaît dans J3 et J4. La part « R contexte » égale 1 divisé par 4. La part « R souhaité » égale 1 divisé par 4. La part « R requis » égale 0 divisé par 4. La présence lexicale de R égale 2 divisé par 4. Ne rapportez pas ces deux offres comme relevant de la classe « requis ».

« Java requis » ne concerne que J4. Cette part égale 1 divisé par 4. « JavaScript requis » ne concerne que J3. Cette part égale 1 divisé par 4. Le compte Java dans J3 est 0, parce que JavaScript est une clé différente.

Les parts rapportées sont :

Compter un panel fictif
ClasseOffresPart des offresEmployeursPart des employeurs
SQL requisJ1, J22 sur 4A1 sur 3
SQL contexteJ11 sur 4A1 sur 3
Python requisaucune0 sur 4aucun0 sur 3
Python souhaitéJ11 sur 4A1 sur 3
Python explicitement non requisJ21 sur 4A1 sur 3
R requisaucune0 sur 4aucun0 sur 3
R contexteJ31 sur 4B1 sur 3
R souhaitéJ41 sur 4C1 sur 3
Java requisJ41 sur 4C1 sur 3
JavaScript requisJ31 sur 4B1 sur 3

Un compteur de mots est un outil qui trouve une suite de lettres et ajoute un. Deux résultats de compteur de mots échouent à cette règle fictive. Utilisez-les comme tests de la règle. Ils ne sont pas un score pour un produit logiciel.

Un compteur de mots marque Java lorsqu'il voit JavaScript. Il marquerait J3 comme Java. Cette marque échoue à la règle de jeton. Java reste 1 sur 4, depuis J4 seulement.

Un compteur de mots traite « no Python experience required » comme une demande de Python ou comme la classe « Python requis ». Cette marque échoue à la règle de classe. La part « Python requis » reste 0 sur 4. La phrase de J2 reste dans la classe « explicitement non requis ».

Une recherche des lettres SQL manque aussi J2. La règle d'alias marque quand même J2. Le compte « SQL requis » reste 2 sur 4.

Sources et lectures complémentaires

Par Chronometrica · Mis à jour

Retour en haut ↑