Estrategias para resolver problemas

Nicolás Quiroz / @_nhsz

#1: Leer y entender el problema.


Hacernos preguntas: ¿Qué datos tenemos? ¿Input/output? ¿Restricciones? Etc.

#1.1: Asegurarnos de haber entendido.


¿Podemos explicárselo a otra persona?

#2: Lápiz y papel.


Objetivo: resolver problemas.

#3: Escribir ejemplos.


Buscar casos borde. ¿Qué pasa si la entrada es vacía/inválida?

#4: Descomponer en subproblemas más simples.

#4.1: Resolver una versión más simple.


Relajar las condiciones.


No sobresimplificar.

#5: Generalizar.

#6: Explicar la solución propuesta.


Muy útil para testear y encontrar fallas en nuestro razonamiento.

#7: No optimizar antes de que sea necesario.

"Premature optimization is the root of all evil."

Donald Knuth

"Make it work. Make it right. Make it fast."

Kent Beck

#Bonus: ¿Puedo mejorar la solución?


Refactorizar. Código más simple, legible, elegante, reutilizable, etc.

¡Practicar mucho!


Con el tiempo, vamos descubriendo diferentes patrones en los problemas y automatizamos este proceso.

Algoritmo para hacer consultas: RSA

1. Read the documentation or error.
2. Search Google.
3. Ask your friends for help.

How To Get Help When You Are Stuck