Scopri alcune tecniche generali di risoluzione dei problemi che ti aiuteranno a programmare.
Come dice il primo articolo di questa pagina, il problem solving è una meta-competenza.
Spesso ci accorgiamo che la sintassi o la struttura di un linguaggio di programmazione non è la parte più difficile di una sfida: la difficoltà sta nel capire cosa programmare o da dove iniziare.
Sviluppare strategie e un sistema per scomporre i problemi in passi trasformabili in codice è una competenza fantastica da coltivare.
Qui sotto trovi articoli, video e libri suggeriti dalla community che possono aiutarti a sviluppare questa super-competenza.
- Free Code Camp offre un buon articolo introduttivo su How to Think Like a Programmer - Lessons in Problem-Solving.
- Jeremy Howard, fondatore di fast.ai, ha scritto un bel riassunto di G. Polya's Problem Solving Techniques.
- Scritto originariamente nel 1945 come guida per affrontare problemi di matematica complicati, G. Polya's How To Solve It (il libro completo) resta un consiglio eccellente per il problem solving in generale.
- Kurtis Pykes, su Towards Data Science, ha scritto un bel tutorial pratico sul problem solving.
- Menzionato nell'articolo di Free Code Camp, Think Like a Programmer: An Introduction to Creative Problem Solving di V. Anton Spraul è una versione più moderna e orientata alla programmazione degli stessi metodi generali che Polya delinea per la matematica.
-
Felienne Hermans si concentra maggiormente su come le persone imparano l'arte della programmazione e su come questo si collega all'apprendimento in generale.
Ha scritto The Programmer's Brian, con strategie per leggere meglio il codice, ragionare con chiarezza sul codice, scrivere codice migliore e diventare un collaboratore migliore quando si lavora sul codice.
-
Algorithmic Thinking (Daniel Zingaro) di No Starch Press e How to think like a programmer (Paul Vickers) trattano anch'essi il problem solving applicato alla programmazione.
-
Computational Thinking: A beginner's guide to problem-solving and programming (Karl Beecher) e Computational Thinking for the Modern Problem-Solver (Riley and Hunt) offrono anch'essi strategie per ragionare sui problemi e scomporli in vista di soluzioni di programmazione.
-
From Computing to Computational Thinking (Paul S. Wang) è un po' più generalista e accademico, ma offre strategie e strutture di problem solving che si applicano anche al di là della programmazione e non richiede conoscenze di programmazione pregresse.
Alcuni di questi libri si possono leggere anche tramite la biblioteca della Association of Computing Machinery (ACM).
Le informazioni sull'iscrizione (a pagamento) sono disponibili su acm(dot)org.