Non sono nemmeno sicuro di come definire questa difficoltà. Mi ricorda il test che un paio di potenziali impiegati mi hanno fatto prima di trovare un lavoro. Avrebbero scelto un oggetto nella stanza e poi mi sarebbe stato permesso di porre domande per aiutarmi a determinare quale fosse quell'oggetto (proprio come 20 domande). Sono stato ridicolmente bravo in questo (no, non ho mai ottenuto punti alti per l'umiltà), quindi ho pensato che sarei davvero bravo a risolvere i bug ...
Ma ecco la cosa che ho capito di recente. Sono davvero bravo in quella situazione perché è davvero facile vedere tutto ciò che è nella stanza, quindi posso affrontare il mio problema con un concetto dei suoi componenti. In sostanza "so cosa non so". Ma con la programmazione mi imbatto in molte situazioni in cui il problema è completamente sconosciuto per me. So che è rotto, ma non ho idea di come potrebbe essere rotto. Ho seguito tutte le istruzioni, conosco abbastanza bene la tecnologia ...
Se sono onesto, mi sento come se stessi facendo fatica a immaginare cose che potrebbero essere sbagliate in modo da poterle testare e, si spera, trovare una soluzione.
Come posso sviluppare questa abilità? Cosa devo fare per aiutare la mia, apparentemente, immaginazione limitata a trovare modi in cui il mio progetto potrebbe essere rotto? Ci sono esercizi (forse puzzle?) Che possono rendermi migliore in questo? Sono consapevole che probabilmente la cura più grande è solo l'esperienza ... ma spero di aiutare ad accelerare il processo se posso. Fissare lo schermo del mio computer in bianco per alcune ore alla volta non è nemmeno divertente ...
printf
o println
qualsiasi altra cosa che usi sotto ogni riga di codice per essere sicuro al 100% che tutto funzioni come vuoi che funzioni ahah. Quindi eseguire l'applicazione console con App > out.txt
poi arriva la parte difficile visualizzare l'enorme file .. a volte i miei file di registro sono oltre alcuni milioni di righe e potrebbe richiedere del tempo ahah. Ovviamente il modo giusto sarebbe usare un debugger e punti di interruzione, ma a volte non è possibile farlo.