Ingénieur logiciel : fondamentaux, Git et premier projet pour décrocher un poste
Formation gratuite en ligne d'ingénieur logiciel : apprends Python, Git et GitHub, livre un premier projet testé et prépare ta candidature junior.
Ce que tu vas apprendre
- Cartographier les métiers du logiciel et choisir un poste d'entrée réaliste à partir d'offres juniors
- Écrire des scripts Python avec variables, conditions, boucles et fonctions
- Choisir la bonne structure de données (liste, dictionnaire, set) et lire ou sauvegarder des fichiers CSV et JSON
- Déboguer avec méthode en lisant une traceback et sécuriser son code avec des tests pytest
- Utiliser Git et GitHub au quotidien avec commits, branches et Pull Request
- Appliquer les patterns d'entretien (dictionnaire, deux pointeurs) et formuler la complexité d'un algorithme
- Construire un portfolio GitHub, un CV technique et un plan de candidatures ciblées
À propos de cette formation
Cette formation t'aide à devenir candidatable à un poste d'ingénieur logiciel junior. Tu choisis un poste cible réaliste, écris tes premiers scripts Python, apprends à déboguer avec méthode et à utiliser Git et GitHub. Tu construis ensuite un outil en ligne de commande avec tests, README et dépôt public, puis tu prépares ton CV technique, ton profil LinkedIn et ton pitch. Le parcours se déroule en quatre modules de leçons courtes que tu écoutes ou lis, avec des exercices pratiques et un quiz par module. Tu passes un examen final et obtiens une attestation. Un coach IA répond à tes questions tout au long de la formation.
Programme de la formation
5 modules · 30 leçons00Bienvenue
1 leçon
- Introduction : Ingénieur logicielCe que tu vas apprendre, et comment ton parcours va se dérouler.5 min
01Module 1 : Comprendre le métier, première routine et premiers scripts Python
7 leçons
Choisir un poste d'entrée réaliste, ouvrir le dépôt GitHub du mois et écrire ses premiers scripts (variables, conditions, boucles) sur des cas de Mobile Money simulés.
- Cartographier les métiers du logiciel et choisir un poste cible avec 5 offresTu sauras distinguer développeur, testeur, front et back, extraire les critères de 3 à 5 offres juniors et fixer un objectif réaliste de mois : être candidatable. Sert directement ton objectif d'emploi.30 min
- Ouvrir le dépôt 30-jours-code et faire son premier commit depuis l'interface web GitHubTu sauras créer un dépôt public, un README minimal et un commit avec un message clair, sans rien installer. Le commit quotidien devient ta preuve de régularité pour les recruteurs.30 min
- Variables, types et f-strings : calculer des frais de transfert fictifs en FCFATu sauras choisir int, float ou str, lire une saisie avec input() et afficher un résultat avec une f-string. Premier script concret pour construire tes bases de programmation.30 min
- Conditions if/elif/else : coder un barème de frais par tranche en écrivant 4 cas de test avantTu sauras écrire un barème par tranches et définir 4 cas de test d'abord, pour raisonner avant de coder. Une habitude attendue en entretien.30 min
- Exercice : boucles for et while sur un relevé Mobile Money simuléTu sauras parcourir une liste de transactions pour calculer le total, le maximum et le nombre d'opérations au-dessus d'un seuil. Compétence de base de presque tous les exercices techniques.40 min
- Quiz : bases de Python et premiers réflexes GitVérifie que tu sais prédire la sortie d'un script (types, conditions, boucles) et décrire un commit. Repère tes lacunes avant d'aborder les fonctions.20 min
- Bilan de semaine 1 : tableau de bord de progression et plan de la semaine 2Tu sauras mesurer ton avancée avec des critères observables (jours avec commit, exercices réussis) et ajuster ton plan. Cela t'aide à tenir 30 minutes par jour jusqu'à l'embauche.30 min
02Module 2 : Fonctions, données, débogage et tests
8 leçons
Structurer son code en fonctions, manipuler listes, dictionnaires et fichiers, déboguer avec méthode et écrire ses premiers tests pytest.
- Fonctions avec return : découper un script de frais en calculer_frais, total et maximumTu sauras transformer un script en fonctions qui font une seule chose, sans print dans le calcul. Étape clé pour tester ton futur projet.30 min
- Listes, tuples, dictionnaires et sets : choisir la bonne structure pour regrouper des transactionsTu sauras décider entre liste, tuple, dict et set selon le besoin, et compter les opérations par catégorie avec un dict. Base du pattern dictionnaire en entretien.30 min
- Exercice : lire un CSV de dépenses simulé et sauvegarder un bilan en JSONTu sauras lire un fichier CSV et écrire un JSON pour que ton programme garde ses données entre deux exécutions. Prérequis du mini-projet.40 min
- Exceptions : intercepter ValueError et FileNotFoundError sans masquer le vrai problèmeTu sauras gérer une saisie invalide ou un fichier absent avec un message actionnable, et éviter le try/except qui cache la cause. Rend ton outil fiable.30 min
- Méthode de débogage en 6 étapes : traceback, plus petite entrée et breakpoint()Tu sauras lire une traceback de bas en haut, reproduire un bug avec l'entrée minimale, inspecter avec breakpoint() et pdb, puis ajouter un test de non-régression. Fini le tâtonnement.30 min
- Exercice : corriger 3 bugs semés et tenir un journal de débogageTu sauras appliquer la méthode sur 3 scripts cassés et documenter symptôme, hypothèse, test et correctif. Les recruteurs apprécient un raisonnement explicite.40 min
- Tests pytest et PEP 8 : écrire 3 tests verts et nettoyer ses noms de variablesTu sauras écrire test_total_vide, test_total_normal et un test pytest.raises, puis renommer tes variables selon PEP 8. Ton code devient vérifiable et lisible.30 min
- Quiz : fonctions, structures de données, exceptions, débogage et testsVérifie que tu sais choisir une structure, lire une traceback et reconnaître un bon test avant de lancer ton projet.20 min
03Module 3 : Mini-projet CLI, Git collaboratif et algorithmes d'entretien
8 leçons
Concevoir, tester et publier un outil en ligne de commande avec branches et Pull Request, tout en apprenant les trois patterns d'entretien du mois.
- Découper un projet CLI en 5 étapes : user stories, exemples d'entrée/sortie et pseudo-codeTu sauras choisir un sujet local (boutique, tontine ou carnet de dettes), écrire 5 user stories et un pseudo-code avant de coder. La méthode de décomposition attendue en entretien.30 min
- Branches et Pull Request : développer une fonctionnalité sur une branche et la fusionnerTu sauras utiliser git switch -c, pousser une branche, ouvrir et fusionner une PR sur ton dépôt, comme en équipe. Un flux demandé dans les offres juniors.30 min
- Exercice : construire la fonctionnalité 1 avec persistance JSONTu sauras ajouter une opération (vente, dette ou cotisation) et la sauvegarder en JSON pour que ton outil garde ses données. Cela donne de la crédibilité au projet.40 min
- Pattern dictionnaire : compter des fréquences et trouver deux montants dont la somme égale une cibleTu sauras passer de O(n²) à O(n) avec un dict sur les exercices anagramme et deux sommes, et formuler la complexité. Un classique des entretiens juniors.30 min
- Pattern deux pointeurs et méthode en 5 temps : vérifier un palindrome et trouver une paire dans une liste triéeTu sauras appliquer la méthode (reformuler, exemples, approche, code, complexité) et le pattern deux pointeurs. Ton raisonnement algorithmique sera visible en entretien.30 min
- Exercice : écrire 3 tests pytest pour ton projet CLI et corriger un bug avec le journalTu sauras sécuriser ton projet avec 3 tests verts dont un cas limite, et documenter un bug réel. Un projet testé se distingue des tutoriels copiés.40 min
- Lire une documentation officielle et vérifier le code d'une IA par des testsTu sauras remplir une fiche doc de 5 lignes (usage, signature, exemple, exceptions) et contrôler un code proposé par une IA avec tes tests. Tu gagnes en autonomie sans copier-coller aveuglément.30 min
- Quiz : Git collaboratif, patterns d'entretien et complexitéContrôle ta maîtrise du flux branche/PR, du pattern dictionnaire, des deux pointeurs et de la formulation Big-O.20 min
04Module 4 : Livrer la v1.0 et lancer sa candidature
6 leçons
Finaliser le projet avec README et tests, bâtir un portfolio GitHub, un CV technique, un profil LinkedIn et un pitch, puis préparer 5 à 10 candidatures ciblées.
- Rédiger un README professionnel et épingler 3 dépôts : transformer ton GitHub en vitrineTu sauras écrire un README (objectif, installation, commandes copiables, statut, contact) et épingler tes meilleurs dépôts. Premier élément qu'un recruteur regarde.30 min
- Leçon pont : adapter ses acquis Python au langage des offres (PHP/Laravel ou JavaScript/React)Tu sauras repérer les concepts transférables (variables, boucles, fonctions, structures de données) et planifier 90 jours pour combler SQL, API REST et POO. Cela élargit les offres auxquelles tu postules.30 min
- Construire un CV technique d'une page et un profil LinkedIn orientés développeur juniorTu sauras rédiger un CV centré sur tes preuves (projet testé, GitHub, PR fusionnée) et un titre LinkedIn avec mots-clés issus des offres. Ils te rendent visible pour les recruteurs.30 min
- Exercice : préparer un pitch de 2 minutes et un tableau de suivi de 5 à 10 candidaturesTu sauras présenter ton projet en 2 minutes (problème, solution, démonstration, apprentissage) et suivre tes candidatures. Ils transforment ton travail en entretiens.40 min
- Quiz : portfolio, CV et stratégie de candidatureVérifie que tu sais ce qui rend un GitHub, un CV et une candidature convaincants pour un poste junior.20 min
- Projet final : livrer la v1.0 de ton outil CLI avec tests, README et dépôt public prêt à présenterTu livreras une application en ligne de commande (menu, persistance JSON, au moins 3 tests pytest verts, README complet) publiée sur GitHub. C'est la preuve centrale pour ta candidature.30 min
Aperçu gratuit · Module 1 : Comprendre le métier, première routine et premiers scripts Python
Le premier module est en accès libre. Commence le parcours pour débloquer la suite.
Cartographier les métiers du logiciel et choisir un poste cible avec 5 offres
À la fin de cette leçon, tu auras une fiche Poste cible : 3 offres de développeur junior analysées dans un tableau, 5 critères récurrents, et une…
Objectifs pratiques
À la fin de cette leçon, tu auras une fiche Poste cible : 3 offres de développeur junior analysées dans un tableau, 5 critères récurrents, et une preuve à produire pour chacun. Cette fiche sert de boussole pour tout le mois. Elle t'évite d'apprendre au hasard et te rapproche de ton objectif d'emploi.
Pourquoi c'est utile pour votre objectif
Tu disposes d'environ 14 heures réelles sur le mois (28 séances de 30 minutes). Ce n'est pas assez pour être embauché en 30 jours, mais c'est assez pour être candidatable. Cela veut dire : 1 projet livré et testé, un GitHub propre, un CV et un LinkedIn orientés développement, puis 5 à 10 candidatures ciblées. Pour y arriver, il faut savoir quel poste viser. Sinon, tu risques de te disperser entre plusieurs langages et plusieurs métiers.
Cartographier les métiers
Dans les offres, les intitulés se chevauchent. Voici les repères utiles pour un débutant.
- Développeur back-end : écrit la logique côté serveur, les bases de données et les API. Python, PHP/Laravel ou Java sont fréquents.
- Développeur front-end : construit ce que l'utilisateur voit (HTML, CSS, JavaScript, React).
- Développeur full stack : fait les deux, à un niveau souvent moins profond.
- Testeur / QA : vérifie que le logiciel marche, écrit des scénarios et des tests automatisés. C'est une porte d'entrée possible.
- Ingénieur logiciel : intitulé plus large. Il peut insister sur la conception, la qualité et le travail en équipe.
À noter : le détail des rôles QA, DevOps et mobile n'a pas été vérifié en profondeur. Fie-toi donc à ce que disent les offres réelles que tu lis.
Méthode pas à pas
- Choisis 3 à 5 offres juniors sur LinkedIn, sur un site d'emploi local ou sur la page carrières d'une entreprise de ton pays. Cherche « développeur junior », « stagiaire développeur » et « testeur logiciel ».
- Crée un tableau avec les colonnes : intitulé, entreprise, langage, outils (Git, SQL, API REST), niveau demandé, lieu ou télétravail.
- Surligne les mots qui reviennent dans au moins 2 offres sur 3. Retiens-en 5 : par exemple Git, base de données, API REST, POO, un langage précis.
- Pour chaque critère, note une preuve réalisable ce mois-ci. Exemple : Git donne un dépôt avec un commit par jour. Base de données donne un fichier de données lu par le programme. POO donne une classe dans le projet.
- Sépare ce qui est faisable en 14 h de ce qui ne l'est pas. Mets le reste dans une colonne « plus tard ».
- Choisis un poste cible et justifie-le en 3 lignes : ce que le poste demande, ce que tu sais déjà faire, ce que tu prouveras ce mois-ci.
- Ouvre ton dépôt GitHub du mois et dépose la fiche dans un fichier
poste-cible.md. Ce sera ton premier commit.
Exemple concret
Tu trouves trois offres juniors. L'une demande Python et Git. La deuxième demande PHP/Laravel et MySQL. La troisième demande Python, une API REST et des tests. Git apparaît 3 fois, Python 2 fois, API REST 2 fois, base de données 2 fois, tests 1 fois. Tes 5 critères deviennent : Git, Python, base de données, API REST, tests. Pour le mois, tu choisis « développeur Python junior ». Ta preuve sera un petit outil en ligne de commande qui analyse un relevé Mobile Money simulé, avec des tests et un README clair.
Erreurs à éviter
- Viser trop large : « je veux faire tout le développement ». Choisis un seul poste.
- Lire les offres sans les noter : sans tableau, tu ne vois pas les récurrences.
- Copier une liste de technologies sans te demander comment tu les prouves.
- Se fixer « être embauché ce mois-ci » : l'objectif réaliste est d'être candidatable.
- Croire les salaires des blogs : ce sont des chiffres indicatifs, jamais des promesses.
À faire maintenant
Crée ta fiche Poste cible (tableau + 5 critères + preuves + justification en 3 lignes) et commite-la dans ton dépôt GitHub. Garde-la sous les yeux : elle guidera le choix de ton projet, de ton CV et de tes candidatures.
Ouvrir le dépôt 30-jours-code et faire son premier commit depuis l'interface web GitHub
À la fin de cette leçon (environ 30 minutes), vous aurez un dépôt public nommé 30-jours-code , un README qui contient votre objectif du mois et votre…
Objectifs pratiques
À la fin de cette leçon (environ 30 minutes), vous aurez un dépôt public nommé 30-jours-code, un README qui contient votre objectif du mois et votre planning de 30 minutes par jour, et un premier commit au message clair. Vous n'installez rien : tout se fait depuis le navigateur, même sur un téléphone ou un PC partagé. Ce dépôt est la base de votre portfolio. Il prouve aussi aux recruteurs que vous codez régulièrement.
Pourquoi c'est utile pour votre objectif
Votre objectif est de décrocher un poste d'entrée. En 30 minutes par jour sur un mois, vous disposez d'environ 14 heures de pratique. Le but réaliste est donc d'être « candidatable » : un projet livré, un GitHub propre, un CV orienté développement et quelques candidatures ciblées. Un recruteur ouvre souvent votre profil GitHub avant de vous répondre. Un dépôt avec un README clair et des commits réguliers vaut mieux qu'un profil vide. Commencer dès aujourd'hui crée aussi l'habitude d'un commit par jour.
Les trois idées à retenir
Git suit le cycle suivant : un fichier est modifié, puis indexé (on choisit ce qui part dans le commit), puis validé (le commit enregistre une photo de l'état du projet). Depuis l'interface web, GitHub fait l'indexation et la validation en un seul clic sur « Commit changes ». Le cycle existe quand même, et vous le retrouverez en ligne de commande en semaine 2.
Un message de commit clair décrit ce qui change, à l'impératif et en une ligne. Exemple : « Ajoute le planning hebdomadaire au README ». À éviter : « maj », « test », « truc ».
Un dépôt public est visible par tous. Il sert de preuve de régularité : la grille de contributions se remplit jour après jour.
Méthode pas à pas
- Créez un compte sur github.com si ce n'est pas fait. Choisissez un nom d'utilisateur sobre et professionnel, car il apparaîtra sur votre CV.
- Cliquez sur « New repository ». Nommez-le exactement
30-jours-code. - Ajoutez une description courte, par exemple « Mon mois de pratique Python pour devenir candidatable ».
- Choisissez Public.
- Cochez « Add a README file », puis cliquez sur « Create repository ». GitHub crée déjà un premier commit automatique, mais vous allez faire le vôtre.
- Ouvrez
README.md, cliquez sur l'icône crayon (Edit) et remplacez le contenu par les sections décrites ci-dessous. - Cliquez sur « Commit changes ». Écrivez un message explicite, par exemple « Ajoute objectif du mois et planning hebdomadaire ». Laissez l'option de commit directement sur la branche principale.
- Rechargez la page du dépôt. Vérifiez que le README s'affiche bien et que le commit apparaît dans l'historique (icône horloge « History »).
Contenu minimal du README
Utilisez le format Markdown. Le README contient un titre # 30 jours de code, une section `
Objectif du mois, une section
Planning (30 min/jour) et une section
Suivi`.
- Objectif du mois : une phrase mesurable, par exemple « Livrer un outil en ligne de commande Python testé, avec un README, et envoyer 5 candidatures ciblées ».
- Planning : un tableau ou une liste par jour. Exemple : lundi, variables et conditions ; mardi, boucles ; mercredi, fonctions ; jeudi, projet ; vendredi, débogage ; samedi, Git et README ; dimanche, révision et auto-évaluation.
- Suivi : une ligne par jour avec la date et ce que vous avez fait. Vous la complèterez par un commit quotidien.
Exemple concret
Une apprenante travaille le soir sur son téléphone, avec une connexion limitée. Elle crée le dépôt en 5 minutes. Elle écrit comme objectif : « Écrire un script Python qui analyse un relevé Mobile Money simulé ». Son planning prévoit 30 minutes à 20 h chaque jour. Son premier commit s'intitule « Ajoute objectif et planning de la semaine 1 ». Le lendemain, elle ajoute une ligne de suivi avec le message « Ajoute suivi du jour 2 ». En quelques jours, son historique montre une pratique régulière et lisible.
Erreurs à éviter
- Laisser le README vide ou avec le texte par défaut : c'est la première chose qu'un recruteur lit.
- Écrire des messages de commit vagues (« maj », « fichier »).
- Mettre le dépôt en privé : il ne prouve alors rien.
- Planifier trop grand (2 heures par jour). Gardez 30 minutes, c'est tenable.
- Publier des données personnelles réelles. Utilisez uniquement des données simulées.
- Attendre d'avoir « du bon code » pour commencer. Un commit minuscule vaut mieux que zéro commit.
À faire maintenant
Créez le dépôt public 30-jours-code. Rédigez le README avec votre objectif du mois et votre planning hebdomadaire de 30 minutes par jour. Faites au moins 1 commit au message explicite. Livrable : copiez l'URL du dépôt et vérifiez que vous pouvez l'ouvrir en navigation privée. Demain, vous ferez un deuxième commit pour lancer la série.
Variables, types et f-strings : calculer des frais de transfert fictifs en FCFA
Dans cette leçon, tu écris ton premier vrai script Python : frais.py . Il demande un montant fictif en FCFA, calcule des frais de transfert et…
Objectifs pratiques
Dans cette leçon, tu écris ton premier vrai script Python : frais.py. Il demande un montant fictif en FCFA, calcule des frais de transfert et affiche un récapitulatif propre. Tu apprends à choisir le bon type (int, float, str), à convertir une saisie et à utiliser une f-string. Ce script sera ton premier fichier commité dans exercices/, une preuve visible de régularité pour un recruteur.
Pourquoi c'est utile pour ton objectif
Ton but est d'être « candidatable » en un mois, avec environ 14 h de pratique au total. Un recruteur qui ouvre ton GitHub veut voir du code qui tourne, lisible, avec des commits réguliers. Les variables, les types et l'affichage sont la base de tout ce qui suit : conditions, boucles, fonctions, puis ton mini-projet en ligne de commande. Toutes les données sont simulées (aucun vrai compte Mobile Money).
Les notions à retenir
- Variable : un nom qui garde une valeur. Exemple :
montant = 15000. - int : nombre entier. C'est le bon choix pour le FCFA, qui n'a pas de centimes en pratique, et il évite les erreurs d'arrondi des décimaux.
- float : nombre à virgule. Utile pour un taux comme
0.015, mais à éviter pour stocker un montant. - str : texte, comme
"Transfert fictif". - bool :
TrueouFalse. - input() : lit ce que l'utilisateur tape. Il renvoie toujours un str, donc il faut convertir avec
int(...). - f-string : une chaîne préfixée par
foù l'on insère des variables entre accolades :f"Total : {total} FCFA".
Méthode pas à pas
- Crée le dossier
exercices/dans ton dépôt GitHub du mois, puis le fichierfrais.py(via l'interface web de GitHub ou ton éditeur). - Déclare les constantes en haut du fichier :
TAUX_FRAIS = 0.015(float) etdevise = "FCFA"(str). - Lis la saisie et convertis-la tout de suite :
montant = int(input("Montant à envoyer (FCFA) : ")). - Calcule les frais, puis arrondis en entier :
frais = round(montant * TAUX_FRAIS). - Calcule le total :
total = montant + frais. - Affiche avec des f-strings :
print(f"Montant : {montant} {devise}"), puis les lignes des frais et du total. - Lance le script avec
python frais.py, teste avec 10000, 25000 et 0, puis commite avec un message clair :Ajoute frais.py : calcul de frais fictifs.
Exemple concret
``python TAUX_FRAIS = 0.015 # float : taux fictif de 1,5 % devise = "FCFA" # str montant = int(input("Montant à envoyer (FCFA) : ")) # int frais = round(montant * TAUX_FRAIS) # round renvoie un int total = montant + frais envoi_valide = montant > 0 # bool print(f"Montant : {montant} {devise}") print(f"Frais : {frais} {devise}") print(f"Total : {total} {devise}") print(f"Envoi valide : {envoi_valide}") ``
Avec 20000, le script affiche des frais de 300 FCFA et un total de 20300 FCFA. Ce script utilise quatre types différents, ce qui couvre le critère des trois types minimum.
Erreurs à éviter
- Oublier
int():"20000" * 0.015provoque unTypeError. Lis la traceback de bas en haut : la dernière ligne te dit quoi, la ligne au-dessus te dit où. - Oublier le
fdevant la chaîne : tu verras{montant}affiché tel quel. - Stocker un montant en float : on risque des résultats comme 300.00000000000006. Garde des int.
- Copier-coller sans comprendre : change le taux, relance, et prédis le résultat avant de lancer.
- Taper du texte à la place d'un nombre :
int("abc")plante avec unValueError. Ne masque pas l'erreur avec untry/exceptà ce stade. Nous gérerons ce cas proprement dans une prochaine leçon.
À faire maintenant
Crée exercices/frais.py selon la méthode, teste-le avec 3 montants et commite-le. Livrable : le lien vers ton fichier sur GitHub, plus une mini-checklist de 3 lignes (« s'exécute sans erreur », « 3 types différents », « saisie convertie en int »). Va plus loin : fais varier le taux, ajoute une variable nom_destinataire (str) et affiche-la dans le récapitulatif.
Conditions if/elif/else : coder un barème de frais par tranche en écrivant 4 cas de test avant
Dans cette leçon, tu vas écrire un barème de frais par tranches avec if/elif/else , mais surtout définir 4 cas de test AVANT de coder. C'est un…
Objectifs pratiques
Dans cette leçon, tu vas écrire un barème de frais par tranches avec if/elif/else, mais surtout définir 4 cas de test AVANT de coder. C'est un réflexe très attendu en entretien technique et il te rapproche directement de ton objectif : être « candidatable » ce mois-ci avec un dépôt GitHub qui montre une démarche professionnelle. Durée prévue : 30 minutes.
Pourquoi c'est utile pour votre objectif
Un recruteur ne regarde pas seulement si ton code marche. Il regarde si tu sais raisonner : quelles entrées, quelles sorties, quels cas limites. Écrire les tests d'abord, c'est prouver que tu as compris le problème avant d'écrire la solution. Ce sera aussi la base du mini-projet CLI du mois et de ton README de portfolio (un tableau de cas est très lisible).
Le ccadre : un barème fictif
On utilise un barème de frais de transfert Mobile Money entièrement fictif (aucune donnée réelle) :
- Montant de 1 à 5 000 : frais de 100
- Montant de 5 001 à 20 000 : frais de 250
- Montant au-dessus de 20 000 : frais de 500
- Montant de 0 ou négatif : invalide (on renvoie un message d'erreur)
Méthode pas à pas
- Écris le barème en français dans ton README, tranche par tranche, en précisant si les bornes sont incluses (« 5 000 inclus dans la première tranche »). Une borne floue est la première source de bug.
- Liste 4 cas de test (entrée → sortie attendue) avant tout code. Choisis-les pour couvrir chaque comportement, dont au moins une valeur limite :
- 3 000 → 100 (milieu de tranche 1)
- 5 000 → 100 (valeur limite : borne haute de la tranche 1)
- 5 001 → 250 (juste après la borne)
- 0 → « invalide » (cas d'erreur)
- Crée
bareme.pyet écris une fonctioncalculer_frais(montant). Ordre des conditions : d'abord le cas invalide, puis les tranches de la plus petite à la plus grande. - Utilise
if / elif / else: une seule branche s'exécute, doncelif montant <= 20000est déjà sûr que montant > 5000. - Vérifie chaque cas avec des
assert(ou desprint) en bas du fichier. - Si un cas échoue, ne modifie qu'une seule chose à la fois, relance, observe. Ne change jamais le résultat attendu pour « faire passer » le test sans te demander si le barème était mal compris.
- Commit avec un message clair, par exemple « Ajoute bareme.py avec 4 cas de test ».
Exemple concret
```python def calculer_frais(montant): if montant <= 0: return "invalide" elif montant <= 5000: return 100 elif montant <= 20000: return 250 else: return 500
assert calculer_frais(3000) == 100 assert calculer_frais(5000) == 100 assert calculer_frais(5001) == 250 assert calculer_frais(0) == "invalide" print("Tous les cas passent") ```
Si tu avais écrit < 5000 au lieu de <= 5000, le test sur 5 000 aurait échoué immédiatement : c'est exactement le rôle de la valeur limite.
Erreurs à éviter
- Écrire le code puis inventer des tests qui lui donnent raison : tu ne détectes plus rien.
- Oublier les bornes :
<et<=ne sont pas interchangeables. - Mauvais ordre des
elif: si tu testesmontant > 0en premier, le cas invalide disparaît ou les tranches se mélangent. - Remplacer
elifpar plusieursifsans comprendre : plusieurs branches peuvent s'exécuter. - Copier-coller une solution IA sans la tester : lance tes 4 cas pour la vérifier.
À faire maintenant
Livrable : un fichier bareme.py et un tableau de cas dans le README de ton dépôt du mois.
- Invente ton propre barème fictif (3 tranches + cas invalide).
- Écris dans le README un tableau à 4 lignes : entrée / sortie attendue / résultat obtenu.
- Code
bareme.py, lance-le, coche chaque ligne. - Fais un commit.
Exercice : boucles for et while sur un relevé Mobile Money simulé
Parcourir une liste pour calculer un total, un maximum et un compte est le geste de base de presque tous les exercices techniques d'entretien. C'est…
Pourquoi cet exercice t'aide à décrocher un poste
Parcourir une liste pour calculer un total, un maximum et un compte est le geste de base de presque tous les exercices techniques d'entretien. C'est aussi le cœur des vrais outils : relevés, stocks, tontines. Avec 30 minutes par jour, ce script est ton 3e commit du dépôt du mois. Il prouve que tu sais écrire, tester et versionner un programme simple. Un recruteur peut le vérifier sur ton GitHub.
Durée estimée : 30 à 40 minutes. Le script fait moins de 40 lignes.
Contexte
Tu disposes d'un relevé Mobile Money simulé. Aucune donnée réelle n'est utilisée. Voici les 10 montants en FCFA :
[12500, 75000, 3000, 52000, 150000, 800, 49999, 60000, 25000, 98000]
Tu dois produire releve.py, qui analyse cette liste.
Étapes pas à pas
Étape 1 : préparer les données et le seuil
En haut du fichier, crée la liste montants. Crée aussi une variable SEUIL = 50000. Le seuil doit être modifiable en changeant une seule ligne.
Étape 2 : boucle for avec accumulateurs
Initialise total = 0, maximum = montants[0] et nb_au_dessus = 0. Parcours la liste avec for montant in montants:. À chaque tour, ajoute le montant au total. Si le montant dépasse maximum, mets à jour maximum. S'il est strictement supérieur à SEUIL, incrémente nb_au_dessus.
Étape 3 : afficher les résultats
Affiche avec print : le total, le maximum, le nombre d'opérations au-dessus du seuil, et le nombre total d'opérations.
Étape 4 : version while (bonus)
Réécris le parcours avec une boucle while et un index i. La condition d'arrêt est i < len(montants). Vérifie que tu obtiens les mêmes résultats. Pense à incrémenter i, sinon la boucle ne s'arrête jamais.
Étape 5 : vérifier à la main
Calcule le total sur papier ou à la calculatrice, puis compare avec ton script. Résultat attendu : total = 526 299, maximum = 150 000, 5 montants strictement au-dessus de 50 000. Si ton résultat diffère, ajoute un print(montant) dans la boucle. Lis la traceback de bas en haut et change une seule chose à la fois.
Étape 6 : commiter
Ajoute releve.py au dépôt, via l'interface web de GitHub ou en local. Utilise un message clair, par exemple : Ajoute releve.py : total, maximum et seuil sur relevé simulé.
Erreurs à éviter
- Initialiser
maximum = 0: cela casse si tous les montants sont négatifs. Préfère le premier élément. - Écrire
>=au lieu de>: 50 000 exact ne doit pas être compté. - Coder le seuil en dur à plusieurs endroits.
- Copier-coller une solution sans pouvoir expliquer chaque ligne.
- Un message de commit vague comme « update ».
Livrables attendus
- Le fichier
releve.pyfonctionnel. - Une capture ou un copier-coller de la sortie du script.
- Le lien vers ton commit sur GitHub.
Critères de réussite
- Total et maximum corrects sur la liste fournie.
- Seuil modifiable en une seule ligne.
- Script commité avec un message clair.
- Tu sais expliquer à voix haute le rôle de chaque accumulateur.
Auto-évaluation
Change SEUIL à 20 000 puis relance. Prédis le résultat avant de lancer : 7 montants doivent dépasser ce seuil. Si ta prédiction est juste, tu as compris la boucle.
Bilan de semaine 1 : tableau de bord de progression et plan de la semaine 2
Tu viens de terminer la semaine 1. Avec 30 minutes par jour sur un mois, tu disposes d'environ 14 h au total. Chaque séance compte, et sans mesure tu…
Pourquoi cet exercice
Tu viens de terminer la semaine 1. Avec 30 minutes par jour sur un mois, tu disposes d'environ 14 h au total. Chaque séance compte, et sans mesure tu ne sais pas si tu avances ou si tu tournes en rond. Le tutoriel sans pratique est l'erreur classique du débutant. Un tableau de bord de progression te montre des faits : jours codés, commits, scripts réussis. Il te permet aussi de corriger ton plan avant que le retard ne s'installe. Cela te rapproche de ton objectif : être « candidatable » à la fin du mois, avec un GitHub régulier, un projet livré et des candidatures ciblées.
Objectif pratique
Créer un fichier SUIVI.md à la racine de ton dépôt GitHub du mois. Il contient le bilan chiffré de la semaine 1 et un plan d'ajustement pour la semaine 2. Tu le commites avec un message clair.
Durée estimée
30 minutes, en une seule séance.
Méthode pas à pas
Étape 1 : relever tes chiffres (10 min)
Ouvre l'onglet « Commits » de ton dépôt et compte les faits, sans les arrondir à ton avantage :
- Nombre de jours codés sur 7 (objectif : au moins 5).
- Nombre de jours avec au moins un commit.
- Nombre de commits au total.
- Nombre de scripts Python qui fonctionnent. Ce sont ceux sur les cas Mobile Money simulés (variables, conditions, boucles) que tu peux relancer sans erreur.
- Minutes de code cumulées, estimées.
Étape 2 : identifier un blocage (5 min)
Choisis le blocage le plus coûteux de la semaine, par exemple une traceback incomprise, une boucle infinie ou une erreur Git. Décris-le en trois lignes : ce que tu voulais faire, ce qui s'est passé, ce que tu as déjà essayé. Écris ensuite une action corrective concrète et mesurable. Exemple : « lire la traceback de bas en haut et tester avec la plus petite entrée possible ». Autre exemple : « relire la section de la doc Python sur les boucles for ».
Étape 3 : écrire un ajustement (5 min)
Choisis un seul changement pour la semaine 2, avec un chiffre. Exemple : « coder à heure fixe, 20h00, 6 jours sur 7 » ou « faire un commit par script terminé ».
Étape 4 : rédiger et commiter (10 min)
Crée SUIVI.md sur GitHub (bouton « Add file ») ou en local. Utilise la structure ci-dessous, puis commite avec un message du type « Ajout du bilan de la semaine 1 ».
Modèle de fichier
Semaine 1, date du jour. Tableau avec les colonnes Indicateur, Valeur et Cible. Ajoute ensuite les rubriques « Blocage » et « Action corrective », puis « Ajustement semaine 2 », et enfin une auto-évaluation de 1 à 5 sur la confiance en Python.
Erreurs à éviter
- Écrire des généralités (« je dois travailler plus ») sans chiffre.
- Cacher un mauvais résultat : 2 jours codés sur 7 est une information utile, pas un échec.
- Choisir plus de trois ajustements : tu n'en tiendras aucun.
- Oublier de commiter : sans commit, le livrable n'existe pas.
Livrables attendus
- Un fichier
SUIVI.mddaté, présent dans ton dépôt. - Un commit visible dans l'historique.
Critères de réussite
- Au moins 4 indicateurs chiffrés renseignés.
- 1 blocage identifié avec une action corrective précise.
- Fichier commité et visible sur GitHub.
4 modules de plus · 23 leçons guidées par l'IA, avec exercices et coach à chaque étape.
Questions fréquentes
Combien de temps dure la formation Ingénieur logiciel ?
30 leçons, environ 14h 55min au total, à suivre à ton rythme. Chaque leçon dure quelques minutes : tu peux l'écouter ou la lire.
Est-ce que cette formation est gratuite ?
Oui. Tu la suis gratuitement, il suffit de créer ton compte Blemama.
Faut-il un niveau particulier pour commencer ?
Elle est prévue pour un niveau débutant. À chaque leçon, un coach IA répond à tes questions et réexplique ce qui n'est pas clair.
Comment se déroule la formation ?
Le parcours compte 4 modules. Chaque leçon est lue à voix haute pendant que le texte avance, avec des exercices pratiques et un quiz à la fin de chaque module.
Est-ce que j'obtiens une attestation à la fin ?
Oui. À la fin du parcours, un examen final valide ce que tu as appris et tu reçois une attestation Blemama.
Sources de la recherche
CoachGPT a construit cette formation à partir d'une recherche approfondie sur le sujet. Quelques sources consultées :
Formations similaires
Tu veux une formation sur un autre sujet ? Demande à CoachGPT de te créer la tienne
Avis des apprenants
Publiés après avoir terminé le parcoursAucun avis pour le moment. Les avis apparaissent ici quand un apprenant termine le parcours.
Discussion
Pose une question ou partage ton retour avec les autres apprenants.
Aucune discussion pour le moment.
Les visiteurs peuvent lire la discussion, les membres peuvent participer.