Aprende algunas técnicas generales para resolver problemas que te ayudarán con la programación.
Como señala el primer artículo que aparece aquí, resolver problemas es una meta-habilidad.
Vemos que, a menudo, la sintaxis o la estructura de un lenguaje de programación no es la parte más difícil de resolver un reto: lo más difícil es descubrir qué programar o por dónde empezar.
Desarrollar estrategias y un sistema para descomponer los problemas en pasos que se puedan convertir en código es una gran habilidad que vale la pena cultivar.
A continuación encontrarás algunos artículos, videos 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 de resolución de problemas.
- Jeremy Howard, el fundador de fast.ai, tiene un buen resumen de las técnicas de resolución de problemas de G. Polya.
- Escrito originalmente en 1945 como guía para abordar problemas matemáticos complicados, How To Solve It, de G. Polya (el 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, el 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 enfoca más en cómo las personas aprenden el arte de programar y en cómo eso se relaciona con el aprendizaje en general.
Ha escrito The Programmer's Brian, con estrategias para leer mejor el código, pensar con claridad sobre el código, escribir mejor código y ser un mejor colaborador de 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 en soluciones de código.
-
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.
Algunos de estos libros también se pueden consultar 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.