Aprende algunas técnicas generales de resolución de problemas que te ayudarán con la programación.
Como se dice en el primer artículo de esta página, resolver problemas es una meta-habilidad.
A menudo comprobamos que la sintaxis o la estructura de un lenguaje de programación no es la parte más difícil de resolver un problema: lo complicado es averiguar qué programar o por dónde empezar.
Desarrollar estrategias y un sistema para descomponer los problemas en pasos que puedas programar es una habilidad excelente que cultivar.
A continuación tienes algunos artículos, vídeos y libros aportados por la comunidad que pueden ayudarte a desarrollar esta superhabilidad.
- Free Code Camp ofrece un buen artículo de introducción sobre cómo pensar como un programador: lecciones para resolver problemas.
- Jeremy Howard, fundador de fast.ai, tiene un buen resumen de las técnicas para resolver problemas de G. Polya.
- Escrito originalmente en 1945 como guía para abordar problemas matemáticos complicados, How To Solve It, de G. Polya (libro completo) sigue siendo un consejo excelente para resolver problemas en general.
- Kurtis Pykes, escribiendo para Towards Data Science, tiene un buen tutorial práctico para resolver problemas.
- Mencionado en el artículo de Free Code Camp, Think Like a Programmer: An Introduction to Creative Problem Solving, de V. Anton Spraul, es un enfoque más moderno y centrado en la programación de los mismos métodos generales que Polya describe para las matemáticas.
-
Felienne Hermans se centra más bien en cómo aprende la gente el arte de programar y en cómo eso se relaciona con el aprendizaje en general.
Ha escrito The Programmer's Brain, con estrategias para leer mejor el código, pensar con claridad sobre el código, escribir mejor código y convertirse en un colaborador más eficaz a la hora de trabajar con código.
-
Algorithmic Thinking (Daniel Zingaro), de No Starch Press, y How to think like a programmer (Paul Vickers) también abordan la resolución de problemas a la hora de programar.
-
Computational Thinking: A beginner's guide to problem-solving and programming (Karl Beecher) y Computational Thinking for the Modern Problem-Solver (Riley and Hunt) también ofrecen estrategias para pensar en los problemas y descomponerlos con vistas a encontrar soluciones de programación.
-
From Computing to Computational Thinking (Paul S. Wang) es un poco más general y académico, pero ofrece estrategias y estructuras para resolver problemas que pueden aplicarse más allá de la programación, y no requiere conocimientos previos de programación.
Puede que también puedas leer algunos de estos libros a través de la biblioteca de la Association of Computing Machinery (ACM).
La información sobre la membresía (de pago) está disponible en acm(dot)org.