La programación requiere algunas habilidades cognitivas que generalmente no se enseñan en la escuela. Es algo en lo que un tutor personal o un entrenador puede ayudarte. Las personas que tienen estas habilidades cognitivas naturalmente podrían trabajar a través de un curso por su cuenta, pero las personas que no las necesitan, necesitan instrucciones más personalizadas.
Aquí es sólo uno:
Uno de los más básicos es poder visualizar, o construir en tu mente, cómo funciona algo, incluso cuando no puedes verlo o tocarlo.
Usemos ejemplos más concretos. Normalmente, si tú y yo estuviéramos hablando, escogería una metáfora o un ejemplo con el que tengas experiencia, y luego iría desde allí. Sin embargo, como estoy escribiendo una respuesta genérica, estoy escogiendo algunos ejemplos genéricos.
- ¿Cuáles son algunos hábitos que pueden fortalecer nuestra memoria?
- Me siento miserable en la vida ahora y lamento todas las oportunidades que he abandonado. Tengo tantos remordimientos y miedo al futuro. ¿Qué tengo que hacer?
- ¿Cómo desarrollar las 15 cualidades tipo oficial para recomendarlas a la SSB? ¿Puedo desarrollar todo esto o las OLQ deben estar presentes en la naturaleza de un individuo desde la infancia?
- ¿Puede la dilación ser productiva?
- ¿Cuál es la mejor manera de medir su progreso hacia sus metas?
Los juegos de video y juegos como Chess o Go son excelentes para aprender esta habilidad. En Chess or Go, primero debes descubrir qué es lo que estás tratando de lograr, a dónde vas a ir. Una vez que tienes eso en tu cabeza, encuentras los movimientos que podrían llevarte allí, aunque el oponente podría hacer un movimiento contrario que no esperabas, y tienes que seguir adelante con este proceso nuevamente. Final Fantasy Tactics juega como el ajedrez, y tienes que mover tus unidades para llegar a lo que quieres.
En los videojuegos, dos lugares donde puedes hacer esto son los juegos de rol y los juegos de estrategia. En los juegos de rol, como Final Fantasy, Dragon Quest o MMO como World of Warcraft, Diablo, League of Legends, Skyrim, tienes una idea de qué tipo de poderes quieres que tengan los personajes. Hay un camino para lograr eso. Tal vez quieras un tipo de habilidad contra otro. Tal vez usted quiera trabajar con una estadística en particular, u otro tipo de estadística. Los juegos de estrategia como Starcraft, Warcraft, Total Annihilation, Age of Empires, Moonbase Commander tienen algo similar. A algunas personas les gusta correr o ir por un conjunto específico de unidades. Planeas donde quieres que vayan las cosas. Esas cosas no existen ahora y tienes recursos limitados. Por lo tanto, debe tener cuidado con el orden de construcción (qué unidades y edificios desea construir primero antes que otra cosa). La colocación de los edificios importa. Es posible que desee utilizar algo en un punto de estrangulamiento, puede que desee explorar, etc.
SimCity, Sims, Cities: Skylines son otros ejemplos. Estás construyendo un modelo en tu mente sobre cómo funciona el mundo, y en base a eso, eliges las acciones para guiar todo hacia allí. A veces funciona, a veces no funciona.
Esta habilidad se usa con deportes, artesanía, diseño, jardinería, composición musical, etc.
Este tipo de pensamiento se relaciona con tomar decisiones sobre cosas cuando no lo sabes todo y no puedes verlo todo. Estás trabajando con múltiples formas de lograr el objetivo, elegir algo y luego juntar las cosas. Tienes que ser flexible cuando algo no funciona. Lo importante es que, a diferencia de lo que estás acostumbrado en un aula, no estás tratando de averiguar qué tipo de respuesta está buscando el profesor. Hay mucha experimentación y pruebas diferentes.
Al principio, el modelo en tu mente será muy simple. Al probar cosas, cometer errores, aprender de ellos, probar más cosas, el modelo en su cabeza se vuelve más profundo, más complejo.
La programación es así. Estás tomando decisiones sobre cosas que no puedes ver, que no son concretas. También estás construyendo un modelo en tu cabeza. Al principio, ese modelo usa conceptos bastante simples, algo en programación que llamamos “primitivos”. ¿Qué es una cuerda? ¿Qué es un número? ¿Qué es una matriz? ¿Qué es esta abstracción llamada una “estructura de datos”? ¿Qué es una función llamada? ¿Cómo puedes organizarlos en abstracciones más grandes como módulos y clases?
Te invito a ti (oa cualquier otra persona que lea esto) a enviarme un mensaje privado. Es posible que pueda encontrar algo dentro de su experiencia de vida que pueda vincularse con el tipo de habilidades básicas para la programación.
También estoy reclutando activamente para una startup, y estoy abierto a alguien sin experiencia que quiera aprender. Normalmente, prefiero a alguien que haya terminado un bootcamp y tenga un proyecto en marcha, es decir, que tenga estas habilidades cognitivas básicas en su lugar. Quizás ya lo hayas hecho, y aún no se ha vinculado.