Sotto l'intestazione di " ecc. " Arriva qualcosa che può facilmente richiedere il 50% o più del tuo tempo.
Scopri come eseguire il debug.
Ciò significa apprendere il metodo scientifico . Intendo davvero impararlo. E poi applicandolo con brutale onestà . Impara come affermare esattamente ciò che sai essere vero, ciò che sai non è vero e quelle cose che non conosci. Ogni volta che assegni sciatto un oggetto alla categoria sbagliata, hai appena reso la tua vita molto più dura.
Impara a dire "Penso" invece di "Lo so". Devi solo dire "Lo so" quando "pensi" qualcosa di vero (o falso), e poi lo provi!
Molti bug sono banali, ma possono essere difficili da vedere perché "sai" quale dovrebbe essere il codice ... tranne che non lo è. Trova un amico a cui spiegarlo. Chiedi loro di essere un "esperto idiota": qualcuno che non conosce il tuo codice, ma che sai di non poter superare BS. Non sorprenderti se nel mezzo di una descrizione per loro improvvisamente ti fermi e dici "e così puoi ... vedere ... vedere che ... sh * t. Grazie."
I bug non banali richiedono un arsenale di tecniche. Un classico che può rapidamente mettere in luce la maggior parte dei bug relativi al non tempismo è Wolf Fence in Alaska. C'è un lupo da qualche parte in Alaska; costruire una recinzione tagliando lo stato a metà. Da che parte sta il lupo? Tagliare quel lato a metà. Raccogliere, sciacquare, ripetere. Fare questo 20 volte in punti ben scelti nel codice riduce l'area in cui il bug (lupo) può essere a 1/1048576. Uccidi quel lupo.
Suggerimento: cerca le onde manuali: fisiche, mentali o di altro tipo. Non appena tu (o il tuo collega) sussultate / deviate / minimizzate l'attenzione prestata a una parte del codice, diventate totalmente rabbiosi . Perché l'area in cui conosci solo il bug non può essere, anche se hai passato ore / giorni a cercare l'oggetto d * mn e non riesci ancora a trovarlo ... questa è la posizione con la probabilità più alta per il bug. Nessuno riceve un "ciao" , nessuno (incluso il computer, il sistema operativo, il compilatore o te ) ottiene alcun tipo di "dovuto rispetto". C'è un bug. Periodo. Fine della frase Ora vai a uccidere la cosa d * mn.
Non conosco nessuna scuola che insegna il debug come materia a se stessa. IMNSHO, questa potrebbe essere la singola prova più evidente che loro (università / professori) non ti stanno insegnando a essere un programmatore, ti stanno invece insegnando a essere ... come loro? Harsh? Forse. Vero? Fatti un'idea. Ora dimostralo.