¿Cómo te preparas mentalmente para un bootcamp de programación al estilo Dev Bootcamp? ¿Cuál es la mejor manera de conectar tu cerebro para estar listo para aceptar una serie de temas nuevos en tan poco tiempo?

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].

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.

TL; DR: esto es algo en lo que los estudiantes se enfocan antes de llegar al campus como parte del trabajo previo de Launch Academy. Lea Optimización de su cerebro , su cerebro en el trabajo y cómo hacer las cosas ,

A continuación, he resumido las principales cosas en las que debería concentrarse en conectar su cerebro para un campo de entrenamiento.

Sé realmente bueno cerrando tus bucles mentales abiertos. Los bucles mentales son los elementos en su lista de tareas pendientes. Cuando deambulan por tu cabeza, te distraen y te estresan. De modo que cuanto mejor pueda gestionar su lista de tareas, más relajado estará su cerebro. La práctica que hemos encontrado más efectiva es un proceso de creación y gestión de listas bien pensadas. Si puede entrenar su cerebro para pensar de esta manera, se preparará para el éxito. Aquí hay una lista de cómo hacer eso:

  1. Escríbelo. Lo que sea que tenga que hacer, incluso si no está relacionado con la codificación, escríbalo. Esto te ayuda a relajarte, sabiendo que no hay ninguna lista de monstruos al acecho a la vuelta de la esquina. En realidad, tenemos una práctica diaria por la mañana aquí en el lanzamiento, donde escribimos nuestros objetivos para el día y luego hablamos de ellos como grupo. Ni siquiera puedo comenzar a describir lo útil que es esto para centrar nuestra atención y ayudarnos a hacer las cosas. Tenga en cuenta que puede sentirse tentado a comenzar a hacer cosas, pero debe esperar hasta que haya escrito todo. De lo contrario, las cosas aparecerán en tu conciencia que te distraerán. Revise su correo electrónico, correo de voz, listas de tareas antiguas, cualquier cosa que se le ocurra para encontrar todas las cosas que necesita hacer.
  2. Una vez que tenga su lista, averigüe qué es accionable y qué tiene que hacer personalmente. Si no puede actuar sobre algo, configure un recordatorio para volver a comprobarlo cuando pueda hacerlo o simplemente táchelo de la lista. Si no puedes hacer nada al respecto, ¿qué hay que tener en cuenta? A continuación, averiguar su próxima acción. Me refiero a la acción física. No “lluvia de ideas” o “hablar con tal y tal”. Dicho de otra manera, ¿qué es lo que va a cambiar o el resultado de su próxima acción? “Haga una lista de 10 sitios web para publicar anuncios de trabajo” o “descargue las versiones más recientes de Javascript, Ruby y Sublime Text”. Cuando se trata de decidir si necesita hacerlo personalmente, ¿hay alguien más que pueda hacer este trabajo y entregar la calidad y la velocidad que necesita? Si es así, delegadlo.
  3. Aprende a priorizar y programar. ¿Qué es absolutamente necesario que suceda primero y qué puede esperar hasta más tarde? Una vez que establezcas tu horario, apégate a él.

La meditación consciente también es una excelente manera de refrescar tu cerebro. Este no es el tipo de meditación popularizada en películas y TV. De hecho, está científicamente comprobado para ayudarlo a encontrar mejores soluciones a los problemas y también a reducir el estrés. Bueno, un bootcamp se trata de resolver problemas y no puedes evitar sentirte estresado a veces. Si eres nuevo en esto, echa un vistazo a »Cómo comenzar a meditar – World of Psychology

Imagine su resultado: tendrá que recordarse de vez en cuando por qué va a ir a un campo de entrenamiento porque, bueno, a veces se preguntará por qué diablos se inscribió para esto. Esto no es sólo una idea de pelusa. Conocido como el Sistema de activación reticular , la idea aquí es que al imaginarte a ti mismo como un programador y hacer las cosas que hacen los programadores, tu cerebro aprende a concentrarse en los detalles importantes y filtrar cualquier ruido que no te lleve a tu objetivo. No podrá hacer algo hasta que se imagine a sí mismo haciéndolo, por lo que, mientras más pueda imaginar cómo será el éxito, con todas las características, pasos, aspectos y otras cualidades significativas, mejor podrá lograr tu meta

Administre su Conciencia – Los humanos se distraen fácilmente. Las llamadas telefónicas, mensajes instantáneos, correos electrónicos, mensajes de texto, tweets, y esas son solo distracciones digitales. La programación requiere mucho pensamiento y enfoque profundos y, a menudo, es incompatible con la multitarea (una idea de BS en sí misma, pero una discusión para otro momento). Ser bueno en la prevención activa de distracciones. Inicialmente, puede sentirse incómodo al poner su teléfono en el cajón, cerrar su correo electrónico y twitter, y cerrar su puerta. Por eso es una buena práctica entrar antes de ir al campo de entrenamiento. Tienes tiempo para entrar lentamente. Cortar a Facebook de tu vida podría ser difícil, considerando lo adictivo que es (en serio, esto es una cosa).

Dé un paso atrás: animamos a nuestros estudiantes a escribir sobre sus experiencias aquí en el lanzamiento cada semana, y le animo a que haga lo mismo ahora, aunque no necesariamente tiene que publicar sus escritos. Tómese el tiempo para retroceder, analizar lo que está sucediendo y desarrollar una meta-perspectiva sobre lo que está haciendo.

Concéntrese en las soluciones, no en los problemas. Si te atascas en algo, ¿cómo lo resuelves? Bueno, si estamos hablando de objetos físicos, buscamos descubrir qué es lo que está mal y lo arreglamos. Pero cuando se trata de aprender a codificar, y su cerebro en general, es mejor centrarse en la solución. Si se enfoca en soluciones, e incluso en soluciones que han funcionado para otros problemas, prepara a su cerebro para que sea creativo y esté orientado hacia los resultados. Es fácil detenerse en el fracaso y el dolor, por lo que la mejor manera de tener éxito es centrarse en el resultado en lugar del dolor. Estoy simplificando en gran medida y realmente recomendaría que revises Your Brain At Work para una mejor explicación.

Siéntete cómodo con no saber. Esto es especialmente cierto cuando estás aprendiendo a codificar. Hay una idea en Filosofía llamada Paradoja de Meno que dice que no puedes hacer preguntas sobre algo si en primer lugar ni siquiera sabes nada sobre eso. Pero una vez que experimentas algo, tienes alguna base para hacer preguntas. Esto requiere que participes en el material sin saber realmente qué diablos está sucediendo. Eso puede ser incómodo para mucha gente. Siempre habrá nuevos lenguajes, tecnologías y métodos para resolver problemas de programación. Lo que significa que vas a tener que sentarte, no saber qué está pasando y observar los patrones y las cosas sobre las que puedes hacer preguntas.

Cállate tu ego: es fácil sentirse estúpido si estás haciendo una pregunta a la que todos los demás parecen saber la respuesta, o al menos no levanta la mano y pregunta. Bueno, solo tienes 10 o más semanas en un campo de entrenamiento, así que no habrá mucho tiempo en el camino para resolverlo por tu cuenta. Encuentre esa parte de su ego que siempre quiere estar en lo cierto y dígale que se vaya de vacaciones por 10 semanas (aunque lo recomendaría por más tiempo, especialmente cuando obtenga su primer trabajo de desarrollo).

Estoy más que feliz de agregar más a esta respuesta si hace un seguimiento con más detalles a su pregunta. O siéntase libre de enviarme un correo electrónico a evan [punto] charles [at] launchacademy [punto] com.

Haz el trabajo previo que te asigna la escuela, y si lo completas temprano, ¡vuelve y hazlo de nuevo! Una vez que te aceptan en tu programa, el peor error que puedes cometer es sentarte y relajarte hasta que tu cohorte comience. La mayoría de las escuelas asignarán un trabajo de pre-requisito que (en mi opinión) es algo que cada estudiante debe tomar muy en serio. En DigitalCrafts, nuestro plan de estudios se mueve rápidamente a JavaScript nativo, y esta es la primera área donde algunos estudiantes se sentirán abrumados. Por lo tanto, un ejercicio que requerimos de todos nuestros estudiantes es leer A Smarter Way to Learn JavaScript antes de la clase. Si la escuela de programación a la que planea asistir se centra en gran medida en JavaScript o la pila MEAN, realmente no puede aprender suficiente JavaScript antes de la clase.

Como lo menciona Shawn anteriormente, ¡también necesitas divertirte! Cree algunas aplicaciones web interesantes que le apasionen y le gustaría presumir a sus amigos y familiares.

Espero que ayude.

He enseñado a cientos de personas en todo el país cómo crear aplicaciones web en un solo fin de semana en lugares como Harvard Business School, Rhode Island School of Design, Brown University y Babson. Ahora soy un mentor en el aprendizaje virtual de codificación del proyecto de proyecto de mano.

Después de enseñar a tanta gente cómo construir aplicaciones web, sé la diferencia entre las personas que obtienen el mayor valor de experiencias como esta.

La cantidad que podrá aprender tiene que ver con su actitud hacia el aprendizaje, no con lo mucho que sabe entrar.

Al final del día, tendrás un montón de cosas que aprender. Va a ser dificil A veces se sentirá abrumador. Pasar un poco de tiempo extra en codificar mi o hacer algo que te dé un poco de conocimiento no va a cambiar eso.

Siéntase cómodo incómodo y no se dé por vencido : en Firehose podemos enseñar a un ritmo tan acelerado y acumular toneladas de información. Es posible que no siempre entiendas todo a cada momento.

Continúe aunque esté un poco confundido: si lo sigue, probablemente lo obtendrá más tarde.

Hacer preguntas. Si no es un buen momento para hacer la pregunta, escríbala y hágala más tarde. Si haces preguntas, es probable que tengas un par de otros estudiantes que asienten pensando “Me preguntaba lo mismo”.

Averigüe qué quiere obtener de la experiencia: cuanto más específico, mejor . ¿Estás buscando convertirte en un increíble desarrollador de aplicaciones para usuario? Desarrollador back-end? ¿Quieres trabajar para una startup? ¿Empresa? Comience su propia empresa? Trate de llegar al fondo del por qué lo más rápido posible para que pueda avanzar en la dirección.

En theFirehoseProject, nos aseguramos de que tenga la mentalidad correcta, esté listo para hacer preguntas y pueda obtener exactamente lo que desea de la experiencia.

Si desea ver más información sobre cómo lo hacemos, puede verlo aquí:

http://thefirehoseproject.com

Escribe mucho código. Concéntrese en mejorar sus habilidades de resolución de problemas y depuración abordando problemas pequeños como CoderByte. Evita los marcos grandes. Si está mayormente atascado, trabaje en algo diferente / más fácil. Si está harto de los conjuntos de problemas, pruebe aplicaciones pequeñas como el blackjack y las damas. Trabaja con amigos (o compañeros de clase de tu cohorte). Divertirse 🙂

Soy un recién graduado del curso inmersivo en desarrollo web de Brainstation, donde ahora trabajo como asistente de enseñanza. Ya hay muchas respuestas geniales sobre esta pregunta, así que lo mantendré corto y dulce.

Las áreas con las que las personas con las que más luchan son aprender la sintaxis de un idioma y cómo abordar la resolución de problemas a través del código. He encontrado que los estudiantes que tienen una comprensión de estos dos aspectos de la programación tienden a hacerlo bien. Los campamentos de entrenamiento son difíciles, sin duda, pero una onza de preparación puede recorrer un largo camino.

Sintaxis

Bootcamps cubren una gran cantidad de material. Si está luchando con la sintaxis básica, mucha información pasará por alto su cabeza. Si está familiarizado con el lenguaje con el que está trabajando, podrá comprender conceptos más difíciles con mayor facilidad.

Es muy común sentir una sensación de “sobrecarga de información” cuando se asiste a un campo de entrenamiento. Sentir que te perdiste algo y que tendrás que recuperarte puede agravarse rápidamente. Si tienes un buen entendimiento de dónde están los caracteres como ‘()’ y ‘;’ Pertenece a continuación, puede concentrarse más en el material del curso.

Comenzando desde cero y depurando

Estas son las dos cosas que veo que más desafían a las personas.

Se necesita un poco de esfuerzo para comenzar a pensar en términos de usar la programación para resolver un problema. No, nunca necesitará escribir una función de Javascript que pruebe si una palabra es un palíndromo como parte de una aplicación web de producción. Pero es la mentalidad de resolución de problemas que necesitará para tener éxito como desarrollador.

La programación es toda la resolución de problemas. ¿Cómo puedo hacer que mi imagen aparezca en la página para que ocupe el ancho de la pantalla con el título en la parte superior? ¿Cómo conecto mi aplicación Angular para que capture la entrada del usuario y la transfiera de la Creación de cuenta a su página de perfil? He conectado mi base de datos a mi aplicación web, ¿por qué no funciona?

Completar los desafíos de codificación que lo obligan a formular este tipo de preguntas lo ayudará a obtener más del curso que elija. Siéntase cómodo resolviendo problemas básicos y localizando errores comunes (¡también es la razón por la cual aprender la sintaxis es tan importante!).

Encuentro que estas dos áreas son donde la gente tiende a luchar. Un poco de trabajo de preparación en estas áreas específicas (en lugar de ir en frío) y debería poder mantenerse bien.

¡La mejor de las suertes!

Descubrí que la mejor manera de estar preparado mentalmente para un bootcamp de programación es bastante simple: ser legítimo, honesto y totalmente apasionado por querer aprender el tema. No puedo responder por su programa, pero en Hack Reactor, parte del proceso de la entrevista en realidad tiene en cuenta estar abierto a aprender a mejorar incluso durante la entrevista .

Creo que el problema es que nos entrenamos para aprender de esta manera tan extraña como la de una escuela, y el concepto de sumergirnos de manera tan completa y completa en un solo tema parece aterrador porque no puedes seguir iterando sobre lo básico, siempre necesitas mejorar. . Hay poco espacio para no obtenerlo y necesita mantener el material mucho más tiempo que solo para su próxima prueba. Pero realmente no es nada que nuestras mentes no estén preparadas para manejar.

Necesitas estar abierto para aprender. Necesitas estar abierto al fracaso. Pero, sobre todo, debe ser capaz de ser honesto con sus fracasos, abrazarlos y refinarlos hasta el punto de ser competente incluso en sus déficits. Soy mucho más un UX / UI que de bases de datos y servidores, pero durante mi proyecto de tesis he estado haciendo relativamente poco más que aprender a usar PostgreSQL (una base de datos relativamente difícil), optimizando nuestros esquemas, enrutando servidores, etc. y paso mi “tiempo libre” para jugar con React y hacer pequeños retoques con nuestra UI / UX. Ahora me siento mucho más cómodo con la pila completa de lo que nunca antes hubiera imaginado que fuera posible.

Así que solo sé abierto, sé apasionado y sé honesto contigo mismo. Las cosas buenas vendrán de esa mentalidad.

Para Coding House , el programa es bastante intenso. Lo que puede hacer es practicar la resolución de problemas y las habilidades matemáticas y analíticas, ya que todas son aplicables en la programación. Luego, cuando encuentra un problema en su código, puede comprender más fácilmente por qué está sucediendo y cómo solucionarlo. Esto es parte de pensar como un programador.