Sous la rubrique " etc. " se trouve quelque chose qui peut facilement prendre 50% ou plus de votre temps.
Apprenez à déboguer.
Cela signifie apprendre la méthode scientifique . Je veux vraiment l' apprendre. Et puis l'appliquer avec une brutale honnêteté . Apprenez à dire précisément ce que vous savez être vrai, ce que vous savez n'est pas vrai et ces choses que vous ne connaissez pas. Chaque fois que vous attribuez un article à la mauvaise catégorie, vous vous rendez la vie beaucoup plus difficile.
Apprenez à dire «je pense» au lieu de «je sais». Vous ne pouvez dire «je sais» que lorsque vous «pensez» que quelque chose est vrai (ou faux), puis vous le prouvez!
De nombreux bugs sont triviaux, mais ils peuvent être difficiles à voir car vous "savez" ce que le code devrait être ... sauf que ce n'est pas le cas. Trouvez un ami pour l'expliquer. Demandez-leur d'être un "idiot expert": quelqu'un qui ne connaît pas votre code, mais dont vous savez que vous ne pouvez pas faire sauter BS. Ne soyez pas surpris si au milieu d'une description que vous leur faites, vous vous arrêtez soudainement et dites: "et ainsi vous pouvez ... voir ... voir que ... sh * t. Merci."
Les bogues non triviaux nécessitent un arsenal de techniques. Un classique qui peut rapidement mettre en évidence la plupart des bogues non liés au timing est Wolf Fence en Alaska. Il y a un loup quelque part en Alaska; construire une clôture coupant l'État en deux. De quel côté est le loup? Coupez ce côté en deux. Faire mousser, rincer, répéter. Faire cela 20 fois à des endroits bien choisis dans le code réduit la zone où le bug (loup) peut être à 1/1048576. Tuez ce loup.
Astuce: recherchez les ondes manuelles, physiques, mentales ou autres. Dès que vous (ou votre collègue) tressaillez / détournez / minimisez l'attention portée à une partie du code, devenez complètement enragé . Parce que la zone où vous connaissez le bug ne peut pas être, même si vous avez passé des heures / jours à chercher la chose d * mn et que vous ne le trouvez toujours pas ... c'est l'emplacement le plus probable pour le bug. Personne ne reçoit un «bye» , personne (y compris la machine, le système d'exploitation, le compilateur ou vous ) n'obtient une sorte de «respect dû». Il y a un bug. Période. Fin de phrase. Maintenant, allez tuer la chose d * mn.
Je ne connais aucune école qui enseigne le débogage comme un sujet à part entière. IMNSHO, c'est peut-être la preuve la plus flagrante qu'ils (universités / professeurs) ne vous apprennent pas à être programmeur, ils vous apprennent plutôt à être ... comme eux? Dur? Peut-être. Vrai? Forge ta propre opinion. Maintenant, prouve-le.