Las habilidades para resolver problemas son muy importantes para la programación. Tenga en cuenta que las habilidades de resolución de problemas no son las mismas que, por ejemplo, los rompecabezas de Sudoku de trabajo o los enigmas de trabajo. La resolución de problemas es lo que lo lleva a partir de “Algo está mal, pero no estoy seguro de qué” y “OK, todo está funcionando ahora”.
Las habilidades de resolución de problemas son especialmente necesarias cuando se depura. Brian Kernighan señala que la depuración es al menos el doble de difícil que la programación. ¿Y qué haces mientras depuras? Resolución de problemas Pasas de “Mi programa no funciona y no sé por qué” a “Mi programa funciona correctamente”.
Pero aquí está la cuestión: aparte de algunas técnicas específicas de dominio, como el uso de un depurador o aserciones o similares para reducir un error, la resolución de problemas en sí no es una habilidad específica de la programación. Por lo general, aprendes estrategias para resolver problemas haciendo, y ningún curso va a hacer cosas por ti . Tienes que resolver problemas tú mismo.
Ahora, algunos dicen que las habilidades de resolución de problemas no se pueden enseñar. Estoy en desacuerdo. Claro, no se enseñarán en una conferencia con una pizarra y una tarea de un libro de texto. Algunas habilidades, como el razonamiento básico y la deducción, pueden enseñarse de esa manera, seguro. Pero hay mucha sutileza más allá de eso.
- Cómo mejorar mi compostura futbolística.
- Cómo mantenerse motivado y enfocado hasta lograr su objetivo.
- ¿Cómo hacerse hombre? Cual es la definicion de un hombre
- Cómo recuperar el control de mi cerebro
- Soy adicto a los videojuegos y he estado gastando grandes sumas de dinero en ellos. ¿Debo vender todo lo que tengo relacionado con los videojuegos?
Esas sutilezas se pueden recoger a lo largo del tiempo, en contexto. Aquí es donde un buen mentor puede enseñarte bastante. Si estás atascado en un problema, pero tienes un buen mentor, pueden empujar tu proceso de pensamiento en la dirección correcta para que aún puedas resolver el problema. Esa es su señal de prestar atención a (a) cómo se atascó, y (b) qué información le dejó despegado. Si aprendes de eso, felicidades, has aumentado tus habilidades para resolver problemas. Ahora lavar, enjuagar, repetir.
Mi título es en Ingeniería Eléctrica. Al obtener mi licenciatura, tuve un total de 9 semestres de cursos de laboratorio. 5 laboratorios de EE, y 4 laboratorios de ciencias. Los cursos de EE fueron 2 horas de crédito cada uno si recuerdo correctamente; los laboratorios de ciencias contaron con 1 hora de crédito cada uno encima del 3CR para la conferencia. Entonces, más del 10% de mis horas de crédito provino de laboratorios.
¿Y qué te enseñan los laboratorios? Aparentemente, ayudan a reforzar el material al hacer que implementes un experimento o proyecto que emplea los principios. Pero, a menos que tenga una suerte extraordinaria, pasará una cantidad significativa de tiempo descubriendo por qué la teoría no coincide con la práctica. Ahí es donde realmente puede perfeccionar sus habilidades de resolución de problemas, a menudo aprendiendo de los TA en el laboratorio que estaban allí hace poco.
En programación, no es diferente, aparte de más código, menos cables. Necesitas programar. Necesitas pasar por encima de tu cabeza y aprender cómo volver sobre el agua y nadar de regreso a la orilla.