Le pregunté a un grupo de desarrolladores que respeto mucho:
—¿Qué necesito para aprender a programar?
Uno de ellos, el más experimentado, contestó rápido:
—Una máquina del tiempo.
Ouch.
Estudié Derecho, y después de varios años metido en el mundo de las startups, decidí hacer un bootcamp de programación. Son cursos que se inspiran en la intensidad de los servicios militares y que han generado bastante polémica en el mundo techie.
Aquí les cuento mi experiencia.
Los bootcamp son cursos de 9 a 24 semanas que prometen transformar a personas con escaso conocimiento de tecnología en programadores.
Cuando aparecieron, la industria del software brincó de alegría. Pero al poco andar, Google y otras compañías declararon que el nivel de los egresados era insuficiente para contratarlos. Hubo escándalos con estudiantes que no pudieron conseguir trabajo una vez egresados, los cuales demandaron a los lugares donde estudiaron. Las cosas escalaron hasta el regulador en California, quien ordenó cerrar Coding House, un bootcamp emblemático, por publicidad engañosa.
Varios años después, los bootcamp no solo siguen existiendo, sino que están en un momento de bonanza. Esta industria el año pasado generó aproximadamente 345 mil millones de pesos solo en Estados Unidos, con casi 40.000 egresados. Google fue la empresa que más graduados de estos cursos contrató y es un inversionista importante de Lambda School, un bootcamp famoso.
¿Es posible transformar a alguien que no cacha nada de código en un buen programador en semanas?
A pesar de que tenía ganas de aprender programación hace tiempo, estaba paralizado con escepticismo. Pero todo cambió cuando entró una persona a Fintual que me impulsó a la acción.
Raphael, el segundo belga en Fintual
En Fintual trabajan varios personajes y quizás te has topado con Valentin, nuestro belga en guayabera, que te grita “Nooooo poo” si se entera que tienes tus ahorros pudriéndose en tu cuenta corriente.
Hace poco, su mejor amigo Raphael hizo algo que yo pensaba imposible: pasó la entrevista técnica de Fintual habiendo aprendido a programar hace solo meses.
¿Pero cómo? —me pregunté—. Si a un montón de desarrolladores seniors los guillotinan cuando llegan a esa parte del proceso. Debe ser medio genio... o hizo trampa.
Decidí ponerme en contacto con Raphael y descubrí que tenía una bazuca bajo la manga. Hizo un bootcamp de 9 semanas en Le Wagon, donde aprendió a programar con las mismas tecnologías que usamos en Fintual (Ruby on Rails, HTML, CSS, JS, Github y Heroku). O sea, la forma en la que desarrollamos le fue muy familiar.
Al enterarme que ese curso existía, no aguanté más, me inscribí y hablé en Fintual para tomarme las semanas para hacerlo.
Aunque aún mantenía dudas sobre qué tanto me iba a servir.
El día a día en un bootcamp
Fiel a su inspiración militar, el ritmo del curso es intenso. La idea es llegar preparado y te piden un trabajo previo de 60 horas aprendiendo código.
El primer día del bootcamp conoces a tus profesores y compañeros.
Armamos, junto con varios jóvenes de distintos países latinos, la típica ronda donde todos cuentan quiénes son. La mayoría de los alumnos eran profesionales que no estaban conformes con sus carreras. Su idea era buscar trabajo como desarrolladores después del curso. Se las estaban jugando con todo.
Se sentían los nervios, pero había buena onda. Y todos, impulsados por la costumbre argentina, ya nos tratábamos con sobrenombres. Incluso me decían “Gon”. Hasta ese momento, solo mi mamá me había dicho así.
Durante el bootcamp hay mucho trabajo en equipo y fue tranquilizador ver que todos se lo estaban tomando en serio. Creo que la entrevista y el trabajo previo obligatorio ayuda a lograr eso.
El resto del día lo pasas configurando tu entorno de desarrollo. Sería la única jornada tranquila de todo el bootcamp. Muy pronto la sensación del grupo pasaría de “¿me irá a servir este curso?” a “¿me la iré a poder?”.
Las tres primeras semanas son famosas por hacer que a más de un estudiante le caigan lágrimas de frustración. Los temas: Ruby y Programación Orientada a Objetos. En lo teórico no parecen tan difíciles. Es cuando tratas de darles una aplicación práctica que te sientes medio idiota.
“Se ve tan fácil cuando lo muestra el profe, ¿por qué no soy capaz de hacerlo por mi cuenta?”, “Aaah! De nuevo el mismo error”, “Mi código funcionó! No tengo idea por qué”, “Solo alcancé a hacer 3 de los 5 desafíos que tenía que hacer hoy”.
El día parte a las 9 a.m., con una clase de 1-2 horas, para luego dedicarte a resolver la mayor cantidad de desafíos relacionados a la materia. Cuando te atascas (y te vas a atascar), creas un ticket y un profesor te ayuda.
Yo almorzaba rápido para aprovechar el tiempo, porque a las 5 p.m. terminas los ejercicios y te unes a una sesión de Live Code. Ahí, un profesor resuelve en vivo un desafío similar a los que hiciste durante el día (pero más difícil).
Los Live Code también son oportunidades para conversar con el grupo y no pocas veces terminaron como sesiones de terapia grupal, con las inseguridades de todos saliendo a flote y los profes consolándonos.
Después de un par de semanas sin ver que la cosa mejorara y al ser preguntados por nuestros profesores sobre cómo estábamos, un compañero argentino contestó con un dramatismo propio de un tango: “Y, de confianza ya no tengo nada, apenas me queda la dignidad ”.
Las jornadas terminan al responder unas flashcards, que son como una mini prueba sobre la materia del día. Se recomienda hacerlas para asentar el conocimiento, pero la verdad me gustaba contestarlas porque puedes repetir las preguntas hasta tenerlas todas correctas. Así sentía que terminaba el día con buena nota. Hay que aprender a motivarse con pequeñas victorias.
Tengo 2 niños, por lo que terminando eso me transportaba al reino de las tinas, cuentos y lavados de dientes. Pero varias veces me quedé con las ganas de seguir y resolver los ejercicios que no alcancé a hacer.
Era tal la intensidad, que muchas personas seguían estudiando los fines de semana para terminar lo de la semana. Incluso había profes que se ofrecían para resolver dudas.
Y poco a poco vas mejorando.
Es que si bien el desarrollo de software puede ser muy frustrante, es más gratificante aún ir viendo cómo vas creando máquinas que hacen cosas.
Además, el curso está bien estructurado, de tal forma todos los días aprendes algo nuevo, que está construido sobre lo que estudiaste el día anterior.
Creo que fue en las últimas semanas del bootcamp que realmente empecé a disfrutar la programación. En esa etapa solo se ve Rails, un framework para desarrollar en Ruby, que elimina un montón de fricción para el programador y sirve para aterrizar todo lo que aprendiste en las semanas previas.
Además, esa etapa también coincidió con que mi señora y niños salieron de vacaciones, por lo que me quedé solo en la casa, libre para ser un trabajólico.
Pero lo que más me gustó es que esas últimas semanas están destinadas a algo más realista: trabajar en equipo para crear una app propia.
Hace años fundé una agencia de viajes especializada en safaris y me quedé con la idea de que gran parte de la pega se podía automatizar, pero en ese minuto no tenía las herramientas para hacerlo.
Aproveché el bootcamp para probar el concepto. El resultado fue Abiona, una plataforma para diseñar tu safari online, customizándolo tú mismo y evitando el pinponeo latero con un agente de viajes.
La pointe de l'iceberg
¿Entonces ahora que hice el bootcamp soy un buen programador?
No exactamente.
Supongamos que no sabes hablar francés. Hacer un bootcamp es como meterte a un intensivo para aprender ese idioma. Te despiertas y empiezas a parler à toi-meme, estudias todo tipo de conjugaisons durante el día y sueñas intranquilo con les verbes irréguliers.
Después de tres meses, el esfuerzo rinde frutos y estás listo para tener una conversación relativamente fluida, escribir mails e irte a vivir a París sin morir en el intento. Si tienes otras habilidades, podrás conseguir un trabajo y seguir aprendiendo, inmerso entre francoparlantes.
Pero sería iluso pensar que te van a contratar para escribir la última película de los hermanos Dardenne. Todavía falta mucho para eso.
Estás en la punta de un iceberg complejo y profundo. Un bootcamp te da las herramientas necesarias para comenzar a bucear y recorrerlo.
Eso sí, me parece que hay una gran diferencia entre el francés y la programación.
La escasez.
Los expertos calculan que este año habrá una falta de 1,4 millones de desarrolladores de software y solo 400.000 graduados en programación.
Esta escasez hace que muchas empresas estén dispuestas a invertir en una persona junior, enseñarle varios meses hasta que programe competentemente, y mantenerla contenta para que se quede años, que es lo que realmente se demora alguien en desarrollar bien.
Cuando pregunté en Le Wagon me dijeron que, a nivel mundial, el 80% de sus egresados encuentra trabajo dentro de 3 meses de haber salido del programa.
¿Y sirve si no quiero trabajar de programador?
Esta pregunta me sigue intrigando, porque es mi caso. Yo trabajo en Producto/Growth y me encanta. ¿Vale la pena los meses y 5.000 dólares destinados al bootcamp?
Al menos puedo decir que, después de años trabajando en startups, se siente muy bien entender de forma concreta conceptos que antes solamente manejaba en la imaginación.
Hace rato que sé que es más práctico usar una API que crear un scraper, pero hasta que no pasas una mañana inspeccionando los selectores de CSS de los elementos que quieres captar, no entiendes lo latero y frágil que puede llegar a ser armar (y mantener!) un scraper.
Aprender a programar también me hizo más consciente de lo que no sé, lo que también es un conocimiento valioso.
Por ejemplo, se siente bacán entender cómo obtener el valor cuota de un fondo usando la API de Fintual y usarlo en un programa sencillo.
Pero si me encargaran replicar esta maravilla que hizo Oscarín, uno de nuestros programadores más antiguos, usando esa misma API, no sabría por dónde empezar.
Saber que no sabes te da sentido de realidad, un aspecto clave para trabajar en equipo, opinar de forma ubicada y seguir aprendiendo. Y si aceptamos la existencia del efecto Dunning-Kruger, tengo esperanzas que puedo mejorar como programador.
Mirando a futuro, estoy apostando a que estos conocimientos técnicos van a ser cada vez más relevantes a nivel profesional.
Se me ocurren pocos casos de equipos que no se beneficiarían de tener a alguien que sepa programar. Da lo mismo la industria o el área, el porcentaje de trabajo automatizable que las personas siguen haciendo de forma manual es ridículo.
Las órdenes de compra que ponen los category managers en retail: automatizable.
Las revisiones de definiciones en contratos que hacen los abogados juniors: automatizable.
El manejo de pabellones en una clínica: también automatizable.
Es difícil que esos procesos mejoren cuando el desarrollo está externalizado en un departamento TI o en un software factory. El cambio ocurre cuando alguien del mismo equipo, que vive el tedio de repetir cosas una y otra vez, tiene la capacidad de solucionarlos.
Aunque aún no seas un buen programador, manejar los conceptos básicos puede abrir tu imaginación y, a la vez, agudizar tu perspectiva. Y, al estar involucrado en una solución tecnológica, irás mejorando, aunque el ejecutor principal sea un desarrollador de verdad.
Puede pasar que con el tiempo no se junte mi camino de Producto con el de la Programación. Pero por último miraré este período de aprendizaje desde una de las máximas que tenemos en Fintual. “Todos moriremos. Pasémoslo bien ”.
Costó, pero encontré entretenido aprender a programar.
Y por suerte no necesité el DeLorean.
Si te gustó este artículo y tienes un comentario o algo para complementarlo, escríbenos a cartas@fintual.com. Todas las semanas publicamos las cartas destacadas de nuestros lectores.