El que no aprende de la historia está condenado a repetirla. El año anterior tuve la oportunidad de ver cómo funciona la educación moderna, práctica y con enfoque en lo que realmente importa y de la cual me gustaría compartir, reflexionar e interiorizar con ustedes las poderosas lecciones y enseñanzas aprendidas en esta visita, les estoy hablando de la preparación y el entrenamiento inmersivo que reciben los futuros ingenieros de software en uno de los más prestigiosos y populares campos de entrenamiento web en Los Ángeles, si alguno por casualidad no sabe que es un “bootcamp web o campo de entrenamiento”, es el nuevo término usado para describir un modelo educativo inmersivo con enfoque en la práctica logrando resultados muchos más rápidos que la educacion tradicional, por lo general tienen una duración de entre 9 y 16 semanas.
CodeSmith Bootcamp LA es uno de los líderes y populares campos de entrenamiento para aspirantes a ingenierios de software situado en la colorida y bella ciudad de Venice, Los Ángeles, una de las ciudades a la que muchos ahora han bautizado con el nombre de”Silicon Beach” la capital de la tecnología de California del Sur, su nombre es debido al nacimiento y asentamiento de muchas empresas de base tecnológica como Snapchap, SpaceX, Hulu, Entertaiment Arts (EA), Google, Hulu, etc. Puedes leer mas al respecto en aquí.
En este bootcamp es increíble la dinámica que fluye entre el mentor y los estudiantes, más abajo les explico en detalle a que me estoy refiriendo. A pesar que tenemos mucho talento en America Latina podríamos explotar y perfeccionar las habilidades de desarrollo de software si aplicaramos un modelo de enseñanza inmersivo, el que estos bootcamp están utilizando. Su rotundo éxito no solo depende de las empresas de renombre en donde están trabajando sus graduados y bien cotizados “developers”, depende también del hecho que han sido conscientes que su modelo debe ser funcional y super efectivo, la calidad de sus alumnos es su carta de presentación, en efecto, sus alumnos tiene casi garantizado un trabajo super remunerado (muchos dirán pero es que no solo importa el dinero, este es otro tema que lo discutiremos en otro post).
Pero tambien es cierto que la verdadera diferencia de lo bien o mal que somos en lo que hacemos es 90% responsabilidad de cada uno de nosotros como estudiantes, pero sin un método efectivo y un equipo talentoso tampoco sería realizable.
1- Vale más el PORQUÉ en lugar del CÓMO
Los mentores están claros que el mayor problema que enfrentan los aspirantes a “developers” e inclusive muchos de los que ya estamos en esta industria es que la mayoría del tiempo aprendemos a usar el lenguaje de programación es decir, sabemos CÓMO hacer determinada tarea, pero sin tener la claridad del PORQUÉ, lo cual es mucho más importante. Hemos ido a lo largo de la vida aplicando código basado en nuestras experiencias o conocimiento acumulado y eso no esta mal, el problema es que no hemos sido conscientes que eso realmente significa saber usar un determinado lenguaje, descuidando las verdaderas bases de todo programador, lo más importante; ser capaz de identificar porque estoy usando o usare un determinada estructura de datos, un enfoque sobre otro, una técnica, un algoritmo en vez de otro, etc.
Por ejemplo, las personas amantes de Javascript deberíamos comenzar por entender como realmente funciona el motor de Javascript, además de reconocer porque usar una estructura de datos sobre otra, los casos de usos más comunes de cada una de ellas donde conviene aplicarlas, cuando es mejor usar un algoritmo sobre otro, porque aplicar una técnica/enfoque sobre otro son solo algunas de las cosas que marcan la diferencia, y creo que eso impacta en el éxito del futuro developer una vez haya finalizado el campo de entrenamiento.
2- No existe el Trato Preferencial
Nadie es mas que nadie; por que no les interesa el estatus social, raza o religión, ni mucho menos la experiencia previa o la rapidez con la que aprendes, les interesa el alto nivel de compromiso, tu persistencia, tu habilidad de reconocer que te equivocas, todos son aspirantes, todos tienen las mismas posibilidades de convertirse en developers y saben que si estás allí es porque tienen hambre de conocimiento, ganas de alcanzar un sueño.
Por lo general hay de todos los niveles de experiencia pero rápidamente te das cuenta que en verdad la mayoría tiene algún grado de idea de lo que se está explicando, esto quizás, debido a la formación que recibieron en el “college” o la universidad o por ser autodidactas, en realidad a pesar que hay personas de carreras distinta a las ciencias de la computación, de distinto niveles de experiencias pareciera que no es así. Es increible como la mayoría se convierten en depredadores con preguntas y respuesta desde los alumnos hacia el profesor y viceversa, lo cual se convierte en una dinámica formativa fantástica y poderosa para la absorción del conocimiento.
3-Autoconciencia
Es seguro que la mayoría del tiempo los alumnos estarán sentados frente al monitor, pero para el profesor es sumamente importante que regularmente el alumno se desconecte para dedicar tiempo al autoevaluación de sus fortalezas y debilidades, descubrirse y expresar cómo se siente con el proceso, cuál es nivel de progreso, que temas o partes se convierten en desafiantes y qué efectos ha causado en otros.
La idea es que desde la preparación comienzan en el análisis de qué partes del trabajo que están haciendo los hace sentir mas comodo, mas enfocados, esa parte que más disfrutan. Alguien con objetivos profesionale claros, seguramente tendrá muchas más oportunidades laborales una vez finalice el bootcamp, dado que lo mantendrá enfocado, apuntando al mercado al cual desea arribar y con la capacidad de aprender mucho más.
4- Los miedos no son bienvenidos, ¿en serio?
Claro que SI!, los miedos son bienvenidos, de hecho para tener éxito en el bootcamp tendrás que equivocarse repetidamente. Si tu ego es demasiado grande o fragil para manejar tus errores, un campo de entrenamiento ni mucho menos la programación son para ti. Ese miedo va desapareciendo poco a poco, hacer preguntas es el antídoto para ello. Los mentores entienden que es normal que personas con carreras totalmente diferentes a las ciencias de la computación tendrán de alguna forma dificultades pero a medida que se involucran saben que el proceso los envolverá.
Lo que si es cierto es que hay una apertura a que te equivoques pues eso esa es la base fundamental de todo proceso de aprendizaje. Nadie tiene derecho a considerar que lo que dices es algo estúpido, pues todos están allí porque quieren ser mejor, no hay competencia por ser mejor, todos quieren ser una mejor versión de si cada dia. Así que por lo general no existe el miedo a equivocarse es uno de los puntos que hacen crecer y dirigir el proceso.
5. Más vale una pregunta tonta que un tonto que no pregunta
Me atrevo a decir que la mayoría de nosotros nos quedamos con la pregunta porque creemos que puede ser estupida, tonta, novata como quieras llamarla. El problema es que tu mismo te estás condenando a seguir siendo ignorante de ella y a la a vez eliminando la posibilidad que otros aprendan y se enriquezcan también. En CodeSmith me di cuenta cómo las personas preguntan hasta lo más trivial que te puedas imaginar y esto lo hacen no siempre porque no lo saben sino porque quiere tener la suficiente claridad de lo que se está explicando, no juegan a las suposiciones ni creencias, desde el concepto más básico al más complejo intentan tener claridad sobre ello antes de pasar al siguiente,.
Hay una gran diferencia en un proceso de aprendizaje donde el 80% del tiempo el dueño es el profesor, es quien maneja la clase sobre otro proceso en donde hay 60% del lado del profesor y un 40% de los estudiantes en interacción. Este último caso tiene mayores probabilidades de exito.
6- Ninguno de nosotros es más listo que todos nosotros – Pair Programming
Dos cabezas piensan mejor que una decía mi abuela. Y realmente tiene razón, por muy inteligente o talentoso que seas siempre el trabajo en equipo duplica el poder, la capacidad, la creatividad, la calidad y el aprendizaje. El “pair programming” representa uno de los factores claves del éxito de cada uno de los aspirantes, se dedica una buena parte del tiempo a resolver problemas en parejas, mientras uno codea el otro trabaja como observador, revisando cada linea de codigo o realizando búsquedas para dar soporte rápido a su compañero, además frecuentemente se hace cambio de roles entre ellos para igualar la práctica.
Me gustaria hablar mas al respecto, pero el articulo se volvió largo. Si este artículo te resultó útil en cualquier forma, dale me gusta, compartelo y comenta.