Bonjour,

Je suis développeur Front-End depuis un certain temps et je m'intéresse de plus en plus au Back-End.
Pour le moment je n'ai pas les ressources nécessaires pour une vrai formation. Je suis entrain de m'auto-former en suivant divers tutos vidéos sur les framework PHP, la POO, JQUERY, AJAX, etc... Mais j'ai remarqué quelque-chose. Lorsque je suis face à un débuguage de code (JS ou PHP), je me sens bloqué. Certes je n'ai pas encore assez d'expérience, mais je pense qu'il doit y avoir une méthode de réflexion "rapide" (plus ou moins répétitive) pour débuguer le code d'un autre ou installer un module dans lequel il faut modifier du code pour qu'il marche comme on le veut.

J'essai de connaître les "réflexes" à avoir dans ce cas.
Ce genre de chose, on l'apprend quand on fait une école de DEV et qu'on a le temps de s'éxercer.

Est-ce que quelqu'un connaîtrait une méthode de réflexion lorsque l'on est face au code (surtout quand ce n'est pas le sien et qu'il n'est pas commenté) ?
Est-ce que quelqu'un connaitrait également un site qui met à disposition des exercices de différents niveau avec leurs réponses, pour que je puisse m'entraîner ? j'en est trouvé sur Google, mais je ne sais pas ce qu'ils valent. Je cherche des exercices de qualité et diversifiés.

Merci par avance pour votre aide,
Bien cordialement,

9 réponses


Bonsoir,

Ca semble un peu stupide a dire mais pour savoir débuggé un code dans un langage il faut connaître ce langage (ça me semble logique)

Ensuite je dirais qu'il n'y a pas dethode général couvrant tout les cas, vu que chaque bug est différent. Donc tu dois utiliser les outils mis a ta disposition par le langage, Console.log en JS, var dump en PHP par exemple...

C'est une question assez compliqué vu que je dirais que c'est un automatisme que l'on prend tous au bout d'un moment en codant.
Mais pour t'aider je dirais que tu pourrais aller voir l'article de Grafikart sur l'art du débugage.

Merci Mika445 pour ta remarque. Effectivement ça tombe sous le sens. Si on connais bien le code, on sait le débuguer. Néanmoins, j'avais l'impression en regardant mes collègues résoudrent des bugs qu'il y avait une sorte d'automatisme de travail. Du genre : en premier, je regarde ça, en deuxième j'essai ça, en troisième... etc. Merci pour le lien, je ne l'avais pas encore vu malgré mes nombreux passages sur sur super site :) Aurais-tu une idée sur des ressources en éxercices JS et PHP ? Des exercices d'écoles ou autre.

Merci encore pour ta réponse.

Salut,

Tu peux déjà regarder les différents tutos qui sont présent sur le site, ils sont franchement super et c'est également avec le site grafikart que j'ai pu apprendre beaucoup.
Ensuite je peux te conseiller ce site: https://www.codecademy.com/fr
la version gratuite est pas mal et il te permettra de faire des exercices etc..

Ce que tu appel automatisme chez tes collègue c'est sans doute le fait qu'ils savent où regarder grâce aux erreurs retourné par le code.

Ca dépend évidemment du langage (je ne connais pas tout les cas), mais dans le cas de PHP, il te retourne la ligne où il y a un problème (le problème vient donc de cette ligne où d'au dessus) et il te dit ce qu'il ne lui plait pas. Un argument qui manque dans une fonction, un ; qui manque etc..

Donc c'est aussi dans ce cas où il faut connaître le langage, pour apréhender un peu tout ça.

Salut,
Clairement pour avoir ses automatismes il faut exercer. Comment tu vas réussir à trouver "rapidement"les bugs? Tout simplement car tu es déjà tombé dessus.
Après, des erreurs sont basiques.. Les erreurs de syntaxes ect sont très simples à trouver.. Il faut savoir lire les erreurs.
Il y a catégorie de bugs, ceux que tu vois (exception envoyée) et ceux que tu ne vois pas.
Ceux que tu ne vois pas sont extrêmements difficile à trouver parfois.. Et il n'y a pas de méthode miracle, soit avoir une chance énorme et de suite le trouver par x ou y raison.. Ou alors tu le cherches, et là il faut très bien maîtriser ce que tu fais.
Pour donner un exemple, l'autre fois sur le tchat une personne n'arrivait pas à utiliser correctement les fonctions password_hash et password_verify de php.. Pourtant sa syntaxe ect était bonne, aucune exception mais il s'inscrivait avec un mot de passe (exemple 123) lorsqu'il voulait se connecter avec le même mdp... ça ne fonctionnait pas!
Et là.. Ca peut venir un peu de partout, c'était du code maison. L'étape à faire était : (une parmi tant d'autres, ici il n'y a aucune règles!)

  • peut-être un mauvais traitement des données arrivées en POST? -> vérification de la variable global POST -> ce n'était pas ça.
  • Le mot de passe lors de l'enregistrement est bien sauvegardé?
  • Enregistrer un user en affichant le mot de passe qui est envoyé en base de données
    Et là.. le mot de passe n'était pas le même!
    Son champ était un varchar(40) hors password_hash retourne une chaîne de caractères de 60.. Le mdp était tronqué.

Bonjour et merci pour vos réponses.
Je suis désolé de répondre aussi tardivement.

Pour répondre à Mika445 :
Oui, je vais prendre du temps sur ce site et j'ai déjà essayé CodeAcademy, mais ce sont plus les bases des bases du code. J'ai besoin de trouver des exercices avec des cas concrets (ou d'école) ou même des exercices de debugage si cela existe. En gros, je cherche des exercices qui font suite aux cours que l'on trouve sur Code Academy. Après avoir apris comment était constitué le code, on fait des exercices pour ancrer les connaissances :)

Pour répondre à Emix :
J'ai bien compris le context du debugage et je redoutais votre réponse :)
Effectivement, il faut s'entrainer, s'entrainer, encore et toujours.
J'essai déjà d'appliquer des points d'arrêts en mettant une note personnel à chaque étape du code, néanmoins, ça ne suffit pas pour appréender la logique global de chaque script. Mais je vais persévérer...
Avez-vous une idée sur des ressources en exercices pratiques ?

Merci encore à vous deux pour votre aide :)
Bien cordialement,

Hello !

Débuter dans le dev n'est jamais facile. (Et j'en sais quelque chose, je suis en reconversion depuis 2 ans).

La seule et unique façon de progresser, c'est de coder. Prend un sujet qui te tiens à coeur et code. Ou fais toi un site perso. Tu aimes le sport? Faire un site qui en parle. Tu aime un jeu en particulier? Code un truc dessus ! Par exemple si tu aime clash of clan, crée toi une appli qui te calcule combien coûte la création de tes troupes, ainsi tu verras si utiliser 100 troupes (peut importe) pour attaquer qui te coûte X de ressources, est rentable pour piller X ressources du village.

Après c'est en fonction des feelings de chacun. Mais du coup tu rentrera en conflit avec certains problèmes, tu chercheras des solutions. Tu progressera dans ta connaissance générale etc...

Après les formations sur grafikart permettent d'avoir une bonne vision de base des choses.

Suivre la formation php te donnera une architecture MVC pour faire des projets dessus par la suite. Faut juste être patient, coder, encore coder. Car de toute façon c'est la voie que tu as choisi que de faire des lignes à longueurs de journée, de soirée, de nuit.... :-p

C'est un tout. Bien réfléchir au code que tu fais te permettra de mieux le débugguer. Connaitre le langage que tu utilises, te permettra de mieux débugguer. Voir du code, voir des problèmes que d'autres ont, te permettra aussi de mieux débugguer. Reste curieux, patient.

Hésite pas au départ à écrire sur papier ce que doit faire ton code, par quel chemin il doit passer. Et surtout utilise les outils de débuggage. (Le var_dump en php, console.log en javascript etc etc)
Regarde tout ce que te donne tes variables, cherches si c'est la valeur que tu attends etc. Si tu as un doute sur ce que peux contenir une variable, regarde ce qu'elle contient.

Je ne connais aucune recette miracle mais j'espère avoir réussi à t'aider un petit peu ^^

Je suis totalement d'accord avec le post de Kaelyscius, le meilleur prof c'est Mr Expérience. Coder n'importe quoi tant que tu codes un truc, même si le projet n'aboutie pas ou que le projet a été fait 50 fois (Blog, Livre d'or etc...) Et une fois que tu as ta base de projet tu peux faire une v2, v3 etc... pour ajouter des nouveux trucs.

Merci beaucoup pour vos remarques :)