Renuncia
Soy el co-fundador de Dev Bootcamp y mientras estuve allí, fui responsable de la creación y edición de prácticamente todo nuestro plan de estudios, incluido nuestro material de preparación personalizado. Sin embargo, dejé DBC en agosto de 2013 y ya no tengo ninguna afiliación formal o informal con la empresa. Absolutamente, positivamente, no asumas que lo que he escrito a continuación sigue siendo exacto, ¡asegúrate de preguntar directamente a DBC y a cualquier otro programa en el que estés interesado! Asistir a un campo de entrenamiento de programación es un compromiso demasiado grande para no ser diligente con su investigación.
Dicho esto, todo lo que sigue a continuación aún refleja mis ideales personales como educador y empresario, y estoy trabajando arduamente para encarnarlos en mi nuevo proyecto (http://codeunion.io) tan bien como los incorporé en Dev Bootcamp. Si tiene alguna pregunta sobre esta nota o algo a continuación, no dude en enviarme un correo electrónico a [email protected] y estaré encantado de hablar más. 🙂
Respuesta original
Tampoco puedo hablar de otros programas que pueden tener diferentes opiniones sobre cómo prepararse mejor para sus cursos. Creo que lo que voy a decir se aplica al aprendizaje en general y no solo al aprendizaje en un Campo de entrenamiento de programación, y mucho menos a un Campo de entrenamiento de programación en particular. Aún así, no quiero poner palabras en la boca de otra persona.
Si alguna vez tiene alguna pregunta, no dude en enviarme un correo electrónico a [email protected].
- Cómo aprender el canto khoomei
- ¿Cuál es la mejor manera de comenzar a aprender a crear música electrónica?
- ¿Es factible pedir a los alumnos que diseñen su propio aprendizaje?
- ¿La creatividad o la resolución de problemas son más susceptibles de enseñar en las escuelas?
- ¿Cómo puede usarse el concepto de ‘aprendizaje situado’ para mejorar la enseñanza y el aprendizaje del inglés como lengua extranjera?
Respuesta corta
Su objetivo general debe ser comenzar a “pensar como un programador”. Concéntrese menos en tecnologías particulares y tome más conciencia de cómo está abordando los problemas y por qué. Esto te hará un mejor programador y un aprendiz.
Concéntrese en mejorar en la depuración. Desarrolle un conjunto de estrategias y tácticas de depuración y comience a refinarlas. Para ello deberás escribir mucho código. Tómelo con calma y no se obsesione con “pasar a la siguiente cosa”. Esto no es una carrera.
Encuentre formas de compartir su código con otras personas que ingresan a su programa. Discútalo regularmente. Si desea mejorar en “pensar como un programador”, debería dedicar tiempo a hablar sobre cómo piensa con otros estudiantes entrantes y viceversa.
Siga leyendo para más pensamientos.
¿Qué es el aprendizaje?
Un principiante es como un explorador que se aventura a vivir en una isla volcánica tropical sin un mapa. Esta isla es peligrosa y cambia continuamente debido a la actividad volcánica. Aprender es el proceso de completar los detalles de este mapa.
Su objetivo en la preparación debe ser doble: uno, conviértase en el mejor cartógrafo consciente de sí mismo que pueda; dos, complete solo los detalles del mapa que es poco probable que cambien y maximice sus posibilidades de supervivencia a largo plazo en la isla.
Si alguna vez has leído Into the Wild, sabes que Christopher McCandless murió en el desierto de Alaska porque no sabía lo que no sabía. Él no sabía cómo curar la carne ni sabía que curar la carne era algo que debía saber. Desde luego, nunca intentó hacerlo en un entorno seguro antes de que tuviera que hacerlo en una situación de vida o muerte.
Como programador principiante, estás peor que Christopher McCandless en algunos aspectos. Como eres humano (espero) tienes un sentido general de los aspectos más importantes de sobrevivir en un terreno desconocido: comida, agua y refugio. Como programador principiante, no tiene ni idea de cuáles son los aspectos más importantes de la programación.
Chupa para ser tú. Jajaja. 🙂
Ser un aprendiz auto-consciente
Un principiante no sabe qué es importante y qué no. Esto es verdad de todos. Sería cierto de mí, por ejemplo, si decidiera aprender a jugar tenis o correr un maratón.
También es cierto que la mayoría de las personas no lo saben . Ellos no piensan en aprender así. Imaginan que el aprendizaje es un proceso de recopilación y memorización de un montón de hechos y una vez que han recopilado lo suficiente, se gradúan de novatos a aficionados a expertos. Volviendo a la isla volcánica, ¿qué es más importante, saber dónde y cómo obtener agua dulce o conocer los nombres nativos de los veinte tipos de hormigas en la isla?
En cambio, puede ser útil pensar en él más como un territorio subdividido: en el norte tenemos el Campo de la Muerte Prohibido (¡aléjate!) Y en el sur tenemos el Bosque de Frutas Deliciosas (¡come!). De hecho, si le preguntas a un experto: “Si hay una cosa en la que tengo que ser increíble para ser un buen programador, ¿cuál sería?” es casi seguro que tendrán una respuesta. También apostaría que el 80% del tiempo la respuesta a esa pregunta es “depurar”.
Saber que como principiante apesta a discernir entre lo que es importante y lo que no es importante es el primer paso para ser un aprendiz efectivo. Significa que te centrarás en encontrar y refinar distinciones en lugar de recopilar datos aleatorios. Podrá evaluar más conscientemente la información nueva a la luz de su comprensión actual del mundo y revisar esa comprensión cuando esa información la contradice.
Esto solo funciona cuando su comprensión del mundo, su mapa, se ha elevado a una preocupación de primer orden en su proceso de aprendizaje.
Refinando el Mapa
Una vez que vea el aprendizaje como un proceso de creación de mapas, su trabajo es construirlo y refinarlo. Aquí es donde entra el método científico. No estoy bromeando. Aquí está la esencia de la mentalidad científica: “Esa es una historia encantadora. ¿Cómo lo verificas? ”Por ejemplo…
- Oh, ¿crees que tu programa está roto? ¿Cómo se verifica?
- Oh, ¿crees que hay un error en esta biblioteca que estás usando? ¿Cómo se verifica?
- Oh, ¿crees que sabes cómo funcionan las cadenas en JavaScript? ¿Cómo se verifica?
- Oh, ¿crees que sabes cómo funcionan los métodos en Ruby? ¿Cómo se verifica?
- Oh, ¿crees que parte de tu código no podría ser la causa de tu error porque “no lo tocaste?” ¿Cómo se verifica?
No hay ninguna declaración de hecho que haga cuando esté aprendiendo a programar (sobre su código, sobre su entorno, sobre lo que sabe) que no debería estar sujeto a verificación. Aplicar este proceso a su propio aprendizaje es la forma más segura de aprender cómo aprender más rápidamente. No se trata solo de crear un gran mapa para la programación, sino de convertirse en un mejor cartógrafo mental en general.
Distinciones importantes
Recuerda que tu isla es volcánica y cambia constantemente, ¿verdad? Eso significa que un mapa con muchos detalles no solo es inexacto sino peligroso. Puede y te engañará. Vas a creer cosas que no son ciertas.
Hay, sin embargo, aspectos de la isla que permanecen inmutables en su mayor parte. Esos son los aspectos a los que quieres dedicar tu energía.
En la programación, estas son cosas como depuración, estado, flujo de control y modularidad. No necesitas saber la diferencia entre bloques, procs y lambdas en Ruby. Especialmente no necesita saber si no puede nombrar dos o tres formas comunes de iterar sobre una matriz de objetos Ruby.
También sabe que la primera vez que pase por un terreno, su mapa será bastante difícil. Te habrás perdido algunos detalles importantes, has completado algunos detalles irrelevantes y has cometido un montón de errores, tanto pequeños como grandes. La forma más fácil de mejorar ese mapa es volver a recorrer el terreno con el objetivo de mejorar ese mapa en la parte superior de tu mente.
Esto se aplica a cualquier cosa. Oh, ¿repasaste el material una vez? Bueno, ¿qué crees que sabes? ¿Cómo se verifica? Revise el material nuevamente, vea lo que se perdió y vea si lo que cree que sabe se revisa.
Después de eso, repásalo de nuevo. Compara tu trabajo con el de otros estudiantes. ¿Vieron cosas que tú no viste? Hacer distinciones que no hiciste? ¿Por qué? Habla con ellos; Mira cómo están pensando en el mismo problema de manera diferente.
¿Estás harto de hacerlo? Bien, ahora hazlo de nuevo.
Si se enfoca en eso constantemente en la preparación y no se enfoca demasiado en “todas las tecnologías”, debe saber que se pondrá en marcha cuando se inicie el programa.