Volver a la comunidad

Resolver problemas hasta convertirte en Tech Lead

Gabriel Nelle vive en el sur de Alemania, cerca de Baden-Baden. Comparte piso con su novia y dos gatos. Estudió para ser profesor de matemáticas y alemán en la universidad de Siegen, donde terminó en 2008.

Ver en YouTube
DURACIÓN 52MIN

Jonathan: Bueno, hola a todos. Me llamo Jonathan. Es un placer ser vuestro anfitrión esta noche. Tengo un invitado que es un gran privilegio tener en el programa de hoy. Me gustaría presentaros a Gabriel Nelle. Gabriel es uno de nuestros colaboradores principales en Exercism. Ha estado muy involucrado sobre todo en el track de Go, pero dejaré que se presente él con más detalle en un momento. Pero solo quería decir, Gabriel, que es genial tenerte aquí. Gracias por acompañarnos y esperamos que te diviertas tanto como todos los oyentes del programa de hoy. Así que, Gabriel, ¿por qué no empiezas? Cuéntame un poco de dónde eres y cómo acabaste donde estás ahora.

Gabriel: Sí. Hola. Soy Gabriel. Gracias por invitarme. Soy del sur de Alemania, allí crecí y allí estoy ahora, no en el mismo sitio, pero sigue siendo el sur de Alemania. Sí, crecí en... a ver, empiezo por el principio: soy de principios de los ochenta, nací en el 81. Y creo que mi historia empieza a finales de los ochenta, cuando mi padre trajo a casa su primer ordenador. Así que creo que ahí empieza la historia. Al menos la historia del texto.

Jonathan: Sí.

Gabriel: Llevaba MSOs, no estoy seguro de qué versión exacta era. Creo que era también una versión antigua porque, si no recuerdo mal, mi padre lo trajo a casa porque básicamente lo habían tirado en su empresa y les habían dado ordenadores nuevos, así que pudo llevárselo a casa y sí, esa fue mi primera impresión de los ordenadores. MS. Es interesante y extraño.

Jonathan: ¿las, las líneas, las líneas de colores en la pantalla negra? ¿Era eso bastante

Gabriel: Sí, era simplemente blanco sobre negro. Sí, básicamente. Y básicamente, sobre todo era solo la línea de comandos, que fue lo primero que conocí. Y luego, más tarde, con mi padre, en el 90, hacia 1991, mi padre nos enseñó nuestros primeros bucles for en Q basic. Yo tenía unos 10 años por entonces, y luego también estaba lo de aprender vocabulario. Así que mi padre compró un programa para aprender vocabulario y estaba basado en no sé qué, y creo que tenías que hacer clic con un ratón, pero no estoy del todo seguro. Quizá fue más tarde. En todo caso, fueron sin duda los años en que empecé a trastear con ordenadores y lo rompí un par de veces. Mi padre tuvo que arreglarlo un par de veces. Así que sin duda me interesaba aprender sobre esto. No exactamente de una forma en que me sentara y me dijera: tengo que aprender esto. Me interesaba mucho y entender lo que podías hacer con él me intrigaba.

Jonathan: Y, y tu, tu padre, ¿trabajaba específicamente con ordenadores o estaba simplemente en, en la empresa y resultó que trajo un ordenador a casa, o había alguna razón concreta para traerlo? ¿Razones informáticas o razones técnicas?

Gabriel: Sí, en realidad, es electricista de oficio, eso es lo que estudió. Pero entonces trabajaba en Bosch, en el departamento de electrónica, donde se desarrollaban chips nuevos o cosas nuevas para coches. Y allí había, por supuesto, ordenadores y él fue en realidad responsable muy pronto de todo lo relacionado con ordenadores, impresoras de red y todo ese tipo de cosas. Así que así es como entró en ese mundo. Era básicamente el que hacía todo lo necesario para que las cosas funcionaran allí. Y como no tenía un doctorado, como la mayoría de los demás de su departamento. Así que básicamente se encargaba de ese tipo de cosas y aprendió, aprendió mucho sobre eso, sobre ordenadores. Sí.

Jonathan: Sí. Vale, genial. Perdón, me he metido, me he metido ahí. Entonces decías que estabas trasteando, que lo rompiste un par de veces, esa fue tu introducción a los ordenadores y al hardware y todo ese tipo de cosas. ¿Y luego qué? ¿Qué pasó a partir de ahí? ¿Cómo fue la progresión?

Gabriel: Creo que el siguiente gran paso fue que tuve mi propio ordenador, eso fue, diría, quizá cinco o seis días más tarde, cuando era joven. Adultos. Y me interesaban cada vez más los ordenadores y también tenía algunas asignaturas en el colegio. Empecé a escribir mis deberes en el ordenador y ese tipo de cosas. Y eso fue ya en la época de Word, de Ms. Word y esos años, y diría que empezó un día, mi orde..., mi padre siempre estaba haciendo trabajo de literatura para nuestra iglesia. Crecimos en una iglesia muy pequeña y teníamos esa literatura que usábamos básicamente, y mi padre estaba digitalizando o ayudando a digitalizar esa literatura. Al principio era un proyecto secundario y datos sobre ello. Se convirtió en realidad en mi primer trabajo a tiempo completo, trabajando para... para el, déjame, ¿puedes mirar eso? Trabajando para la editorial en EE. UU. que era responsable de esa literatura.

Jonathan: Mm.

Gabriel: Básicamente mi padre me preguntó: sí, tengo todas estas macros. Las he escrito en un Euro script, que básicamente estaba basado en una versión de Word, por así decirlo. Pre-Word, y ahora quiero pasarme a Word y necesito todas mis macros en Word. Y yo dije algo como: vale. Vale. Y así fue como empecé a programar en Word. Visual Basic para Aplicaciones, podías grabar primero las macros. Podías mirar el código y ver qué hacía, y podías mejorarlo, y básicamente mejorar la macro tanto que llegaban a... Antes era como que ponías el cursor aquí, pulsabas una tecla y hacía algo en las siguientes líneas. Y al final era como que procesaba todo el documento de Word de arriba abajo, completamente automatizado. Y básicamente esa fue la entrada a un montón de macros que escribí para eso, por la causa de... Causó bastante revuelo y la persona, las personas que le dieron a mi padre ese tipo de tarea para hacer en su tiempo libre, dijeron: vaya, esto es genial. Hagamos más y automaticemos esto cada vez más. Sí. Así es como entré en...

Jonathan: ...él, le ahorraste mucho tiempo a tu padre

Gabriel: Sí.

Jonathan: en ese sentido, a una edad temprana,

Gabriel: Eso podría decirse. Y así, escribir macros en Word, luego en Ex Excel, escribí un sistema basado en Ex Excel para, cómo lo llamas, una tienda, para una tienda pequeña. Era una tienda pequeña de alimentos ecológicos y demás, y básicamente apuntaban todos los precios y luego los calculaban de cabeza o en papel. Y así funcionaba al principio. Y escribí un sistema para eso con escaneo de códigos de barras y con una báscula donde podías poner... pesar algo y obtener el tique, y luego escanearlo cuando vas a la caja a pagar y todo ese tipo de cosas. Así que básicamente todo eso estaba basado en Excel. Así que fue... sí, desde luego lo haría de otra manera. Excel era la base de datos y a la vez la impresora. Formateaba todo en Excel, en una hoja de Excel, y luego se imprimía en la impresora de tiques, todo ese tipo de cosas. Claro, sí, diría que aquello fue el principio de mi carrera, por así decirlo.

Jonathan: ¿qué edad tenías cuando, cuando hiciste todo eso y, y, y qué llevó luego desde, desde ahí? ¿Fue antes de la universidad, más o menos durante el instituto, y luego eso marcó tu trayectoria profesional, por así decirlo? Bastante.

Gabriel: Sí, todo eso fue antes de la universidad. El sistema para la tienda fue cuando tenía alrededor de los 20 o 21, hice el servicio civil más o menos por esa época.

Jonathan: ¿Eh?

Gabriel: Lo de escribir macros fue cuando tenía unos 16. Entre medias, también escribí algún sistema basado en Access para imprimir etiquetas para cartas, para que se pudieran enviar. O sea, direcciones y demás. Y luego llegaron los estudios y, sorpresa, no estudié informática.

Jonathan: Vale.

Gabriel: En realidad estudié para ser profesor de matemáticas y alemán para edades... déjame calcularlo. De 10 a 20 y 19 años. Esas son las edades. O sea, de quinto

Jonathan: así que

Gabriel: hasta 13.º curso.

Jonathan: ...trayectoria profesional era tu..., estaba empezando a encaminarse y, y ¿en qué se basó esa decisión, más o menos?

Gabriel: En realidad probablemente habría acabado por el camino de la programación, quizá a menudo. Pero durante el servicio civil aprendí mucho más que solo cosas técnicas, diría. Así que yo... Era responsable, o estaba en un equipo pequeño que se encargaba de una residencia de ancianos. Por así decirlo, había como 5, 5, 6 habitaciones. Y había distintas personas y yo me encargaba sobre todo de una. Tenía quizá 55, 60 años y tenía alzhéimer. Y eso me impresionó mucho porque, si te enfrentas a esa edad a ese tipo de..., por así decirlo, sí, ella tenía 60 y sonaba mayor para alguien de 20 años, pero seguía teniendo claro que eso le podía pasar a cualquiera y que también me podía pasar a mí. Y eso hizo que me interesaran mucho más los ámbitos sociales de la vida y

Jonathan: Fascinante.

Gabriel: ...los caminos profesionales sociales. Y ahí está en realidad. Esa es básicamente la razón por la que elegí ser profesor en aquel momento. Así que quería programar, se me daba muy bien enseñar o ayudar a mis compañeros de clase, sobre todo en el colegio. Y matemáticas. Las matemáticas eran mi punto fuerte y siempre me gustaron. Sí, siempre me gustó ayudar a los demás. A mejorar sus habilidades, o siempre me encantaba cuando de repente lo entendían. Cuando veía ese momento de «ahora lo pillo». Sí. Y así, de hecho, me hice profesor.

Jonathan: Ah, qué bien. Y cuéntame, mencionaste eso del servicio civil, por así decirlo. En Alemania, ¿es obligatorio para todos los estudiantes o jóvenes antes de ir a la universidad? ¿Cómo encaja todo eso en la cultura alemana?

Gabriel: Entonces era la alternativa, la alternativa a ir al ejército. O hacías nueve meses, nueve meses de servicio militar, o hacías 11 meses de servicio civil. Ese era el requisito.

Jonathan: Vale.

Gabriel: Para los hombres, no para las mujeres.

Jonathan: ¿Sigue siendo así en Alemania?

Gabriel: No, ya no es así. No. No.

Jonathan: Vale. Sé que en Suiza sí, que es de donde es mi mujer. Viene de allí. Así que era solo... Ese sistema sigue vigente. Vale. Entonces ahora tú, tú hiciste matemáticas y estudiaste para ser profesor, y obviamente la programación desempeñó un papel bastante importante en tu vida. ¿Cuándo fue, más o menos? ¿Hubo un momento en el que pensaste: en realidad estoy, estoy en la enseñanza? Disfruto con esto, pero no, pero sigue habiendo esa parte de programación que está activa y metida. ¿Cómo, cómo se equilibraban esas dos cosas, la enseñanza y la programación?

Gabriel: ¿Cómo volví a la programación? Sí.

Jonathan: Sí

Gabriel: Sí. Pues durante mi época, durante mi época de estudios, básicamente hacía dos cosas como trabajos secundarios. Una era enseñar. Daba clases en una... una academia de refuerzo. Daba clases en la uni, en la universidad, a los más jóvenes, o sea, de matemáticas, sobre todo en el primer y segundo semestre. Y al mismo tiempo tenía un trabajo en una empresa tecnológica. Casi todo era, o sea, casi todo estaba basado en Access.

Jonathan: mm.

Gabriel: Era una empresa que hacía hardware y software para coche compartido y para empresas que tenían muchos coches que alquilaban a sus empleados. Y sí, allí empecé básicamente como redactor de documentación primero, y luego se dieron cuenta de que yo también sabía programar. Así que pasé rápidamente al área de programación. Sí. Y luego diría que las cosas cambiaron sobre todo durante las últimas partes de..., que eran partes de los estudios en las que tenías que ir, te exigían seis semanas en el colegio y tal, y una vez cuatro semanas y demás. Y creo que se me hizo claro y me llegó al corazón, también hablando con profesores muy experimentados y muy, muy dedicados, profesores realmente dedicados. Que básicamente los tiempos han cambiado mucho. Los alumnos han cambiado mucho. Una profesora me dijo, ella siempre daba quinto y sexto curso, y básicamente me contaba que cinco años atrás tenía un... Alumno en mi clase que era un niño problemático en el sentido de que la escuela no estaba completa, de que había un divorcio o había problemas en casa, y demás. Y ahora tiene más del 50%,

Jonathan: Claro.

Gabriel: Y eso fue hace 10 o 15 años. 2000... seis o siete, debe de haber sido, así que hace 15 años. Y eso mostró cuánto han cambiado las cosas. Y también tenía muy claro que muchos alumnos hoy en día simplemente ya no quieren aprender. Y el profesor siempre es el..., básicamente el profesor siempre es el último. La cola de todo. Sí. Los padres, el director y los alumnos. Básicamente todos son los amos del profesor. Sí. El profesor es siempre el, se podría decir, el último de la fila, o no sé cómo se diría en inglés. Siempre es el que tiene que asumir toda la responsabilidad, pero no tiene derechos, básicamente.

Jonathan: autoridad para, sí. Para actuar. Sí.

Gabriel: Sí.

Jonathan: ¿Entonces tu decisión...? Bueno, perdón, te estoy interrumpiendo. Sigue, sigue

Gabriel: Ese tipo de cosas, al menos me hizo pensar mucho. Y después de acabar la universidad, simplemente volví a la programación porque un amigo mío, él fue quien le dio a mi padre el trabajo de la literatura. Básicamente me preguntó si podía ayudarle con un proyecto. Y ese proyecto, que al principio se pensó como un proyecto de cuatro o seis semanas, se convirtió en dos años y medio o tres años y medio. O tres años y medio. Un proyecto...

Jonathan: ...vaya aumento de alcance. El aumento de alcance fue real

Gabriel: Sí. Primero me pidió que le ayudara con algo. Y luego siempre estaba en contacto con una persona de esa editorial de... Y la editorial siempre decía: quiero una página web pública para esto con la literatura. Quiero que la gente lea los libros enteros en línea.

Jonathan: Ah, vaya.

Gabriel: En un momento dado le dije a mi amigo, él estaba hablando con él por teléfono, y dije que podría imaginarme haciéndolo. La verdad es que ahora mismo no tengo mucho que hacer. Y él dijo: ah, pues lo hace Gabriel. Y así fue como empezó. Así que

Jonathan: Vaya.

Gabriel: Tuve un proyecto, sí, y luego trabajé tres años y medio en ese proyecto. Poniendo miles de libros en línea, toda la biblioteca de contenido.

Jonathan: Vaya.

Gabriel: ...el índice. Distintos idiomas conectados entre sí. Sí, la web sigue en línea. Es e g e gw writings.org. Así que si alguien tiene interés en verlo, tiene un diseño nuevo. Ahora, vi hacia diciembre del año pasado que se pasaron al nuevo diseño, pero el código de debajo es...

Jonathan: El mismo.

Gabriel: En su mayoría mío, porque lo veo, porque estaba basado sobre todo en JavaScript.

Jonathan: Sí.

Gabriel: El código se parece mucho, está organizado de forma distinta en archivos y todos los estilos diferentes siguen siendo los mismos.

Jonathan: Tendrás que enviarme el enlace y lo pondremos en las notas del programa en el momento adecuado. Pero bueno, ahora tú, tú hiciste tres años y medio, qué, tres años de este proyecto. Has puesto, has indexado todo esto. ¿Usabas JavaScript como tu lenguaje principal en ese momento? ¿Cuál era tu, tu especie de configuración técnica? Por así decirlo, ¿en qué te centrabas?

Gabriel: Básicamente ese fue el gran paso de dejar atrás el software basado en Windows, que antes era Visual Basic y Visual Basic .NET. Y ahora era solo jQuery, JavaScript y PHP por detrás.

Jonathan: Vale.

Gabriel: También teníamos un acuerdo: siempre que hacía investigación, tenía una tarifa por hora más baja,

Jonathan: Mm-hmm.

Gabriel: era un tercio de cuando programaba de verdad. Y sí, eso me dio la libertad de aprender básicamente sobre la marcha. Sí.

Jonathan: Genial. Entonces, ¿dónde, dónde...? Exercism. Y ahora tú, tú haces muchas cosas. ¿Es correcto decir que Go es más o menos lo principal de lo que haces? Ejerces mucho de mentor y has estado, bueno, has estado involucrado en Exercism en, en Go y ayudando en esa parte de las cosas. ¿Cuándo, cuándo entró eso en escena y por qué te interesaba? Adelante.

Gabriel: Sí, en 2016, ese fue mi primer trabajo después de aquel gran proyecto. De hecho, hacia el final de aquello empecé a pasarme a Go. En ese trabajo hacía sobre todo algo de PHP y Python. Y ese se convirtió muy rápidamente en mi lenguaje favorito, mi lenguaje favorito porque tiene esa simplicidad. Básicamente intenta. Desde ese mundo loco de cada vez más funcionalidades y lenguajes y hacerlos cada vez más complejos y complicados y con mucha más carga para el desarrollador, porque tiene que elegir. De qué manera hacerlo. Y también tiene que entender todas las otras maneras en que lo hace otra gente. Así que toda esa carga y Go de repente trajo esta tranquilidad y esto. De simplificar otra vez. Y eso se convirtió muy rápidamente en mi cosa número uno, que fue construir un prototipo en esa empresa como medio año antes de irme. Porque querían pasarse a Go y al principio, claro, estaban esas cosas iniciales en las que tropiezas con cosas que no puedes hacer en el lenguaje, y luego entiendes por qué no tiene sentido hacerlo así, o por qué es mejor hacerlo. Me interesaba mucho aprender a hacer esas cosas. Y así fue como empecé a escuchar el podcast Go Time. Es de Change Log.

Jonathan: Vale.

Gabriel: Y Katrina Owen estuvo en ese podcast creo que dos veces. Al menos dos veces la escuché, creo. Sí. Y así fue como empecé a mirarlo. Creo que en 2017 me registré en Exercism. No estoy seguro del todo, tendría que buscarlo.

Jonathan: Me lo imagino. ¿Sería justo decir eso?

Gabriel: Sí, creo que puede que incluso fuera todavía la versión uno, porque al principio no había... no recibía realmente... no recibía ningún feedback. Hice unos cuantos ejercicios, pero nunca recibí feedback, y podía dar feedback a otros, y lo hice. Y, pero nunca recibí feedback. Así que no había ningún proceso establecido para recibir de verdad algo de feedback. Y era como: si quieres, bien, y si no, lo dejas. Por así decirlo. Sí. Creo que esa era la versión uno, ¿no?

Jonathan: Me lo imagino. Quiero decir, creo que ha habido bastantes cambios de la versión uno a la versión tres.

Gabriel: Sí. Sí.

Jonathan: La uno era poco feedback. La versión dos requería cantidades extremas de feedback, y luego la versión tres se ha quedado en algún punto. En medio, un poco quizá más bien tirando a menos, pero no. Y, y tú, ¿estuviste involucrado en desarrollar la versión tres y cómo, cómo...? Sí. ¿Cuál fue tu participación ahí? Quiero decir, no lo tengo del todo claro, pero me encantaría entenderlo.

Gabriel: Quizá un, un paso atrás, si me lo permites. Básicamente volví después de la segunda entrevista. Volví a saber de Katrina en Exercism,

Jonathan: Vale.

Gabriel: Fue cuando existía la versión dos. Y cuando había mucho trabajo y estaba esto, se necesitaba mucho feedback. Me metí en ello y me gustaba mucho dar ese feedback. Y,

Jonathan: Mm-hmm.

Gabriel: Básicamente, empecé a pensar en cómo podría hacer esto más rápido. Sí. Porque me di cuenta rápido de que, sobre todo en los primeros ejercicios, estaba claro que daría la misma respuesta una y otra vez.

Jonathan: Sí.

Gabriel: Y por otro lado, claro, a veces, estas dos cuestiones y a veces estaba esta cuestión y otra. Así que básicamente empecé a optimizar esto. Empecé a escribir un pequeño programa en Go, que usa análisis estático, porque quería meterme en el análisis. No lo había hecho antes. Quería conocerlo. Así que me interesaba probarlo de todas formas y parecía una buena idea. Porque seguía siendo código muy común o muy parecido todo el tiempo. Las soluciones de un ejercicio, sobre todo las primeras, son muy parecidas. Así fue como entré en el análisis estático y simplemente buscaba distintos patrones en el código y luego añadía automáticamente bloques de respuesta o bloques predefinidos a la respuesta. Básicamente empecé eso en local y así pude hacer unas 100 a la semana, 102 a la semana. Y ni siquiera lo hacía a tiempo completo. Era al margen de mi trabajo. Y sí. Y luego empezó a... Pitfield creo que fue el primero. John Arun, creo que es su nombre real. Fue como el primero que dijo: vaya, esto es genial. Esto es súper. Y así fue básicamente como empezó a conocerse el trabajo que hacía y con el análisis estático. Y creo que eso fue una gran parte de la versión tres porque empezamos a pensar en cómo podemos básicamente reducir el trabajo de un tutor teniendo estas herramientas, este automático, este análisis estático o las herramientas que básicamente revisan el código automáticamente y dan feedback automáticamente. Incluso de forma totalmente automática, sin que un mentor siquiera participe o tenga que participar. Y porque los mentores, estaba bastante claro que tenemos mentores y no son suficientes para el trabajo. Teníamos la herramienta de inversión y también vimos que muchos mentores se estaban quemando, desaparecían y sí, era simplemente demasiado. Demasiado para, para muchos mentores. Sí. El trabajo era algo con... tenían 500 o más soluciones por mentorizar o, y a veces había como tiempos de espera de un mes o más. Y claro, eran condiciones en las que además los alumnos simplemente se marchaban en algún momento. Sí.

Jonathan: Mmm. Es curioso porque creo que Jeremy decía el otro día que de todas, de todas las soluciones que se envían, alrededor del 75% son totalmente únicas, lo cual también me parece fascinante. Quiero decir, vas a un ejercicio tipo Hello World, obviamente es muy simple. Seguro que tiene que haber un patrón estándar que se implementa siempre. Y él decía que es gente probando todo tipo de cosas distintas. Y es curioso ese cruce, porque a medida que programar se vuelve más popular y más gente se pone a desarrollar y a programar, te preguntas: ¿y dónde va a empezar esa automatización a anular el papel del desarrollador? Yo, yo me pregunto, no, no sé si lo hará. Creo que todavía se requiere demasiado, pero en cuanto a, ya sabes, no sé qué opinas sobre eso, pero sí da la sensación de que en Exercism últimamente hay un empujón enorme a la mentoría que es realmente fascinante porque, como decías, coge todas esas lecciones repetitivas que tienes que dar una y otra vez y las pone de una forma que es manejable para que la gente pueda gestionarlas. Al mismo tiempo, ¿llega un punto en que en realidad necesitas la, una interacción humana, un humano que de verdad... con el contenido? Así que no sé si tienes alguna idea al respecto, pero me parece un espacio interesante ahora mismo.

Gabriel: Sí, no creo que los desarrolladores vayan a ser sustituidos muy pronto. Eso tardará todavía bastante. En el desarrollo, en las aplicaciones en general, en la mentoría, creo. Creo que el análisis estático y también la mentoría automatizada, y la mentoría automatizada en general en Exercism, pueden ser de gran ayuda. Pero se necesitan mentores para la mentoría de verdad, diría yo. Sí. Por ejemplo, tengo a alguien al que mentorizo, cada dos o tres meses tenemos una llamada, a veces más. Y le mentorizo en su carrera, por así decirlo. Sí. Y también técnicamente, muy profundamente técnico, pero es una forma de mentorizar completamente distinta a solo mirar la solución y decirte qué puedes mejorar. Y creo que para eso se siguen necesitando los mentores que existen, y sin duda se seguirán necesitando, y creo que es algo en lo que podemos centrarnos. Por otro lado, creo, creo que no podemos sustituir del todo a los mentores en, en las soluciones, y no creo que debiéramos. Podemos automatizar muchas cosas, pero aun así un mentor es alguien que puede señalar la dirección. Ahora pueden ver los problemas con los que estás luchando y pueden decirte: entiende esto y esto, no solo: tienes que mejorar tu código de esta manera.

Jonathan: Sí. Sí.

Gabriel: Y sinceramente, me gustaría que hubiera más mentoría de nuevo en Exercism. Así que me pregunto si deberíamos...

Jonathan: ¿Interacción cara a cara, quieres decir?

Gabriel: Sí. Me pregunto si deberíamos... Antes teníamos este recorrido, 10 ejercicios y al menos eran 10. Que tenías que pasar y solo podías continuar cuando había sido mentorizado.

Jonathan: Sí.

Gabriel: Y creo que con la automatización que tenemos ahora, podríamos de hecho volver a activar eso. O quizá no ahora, pero sí en el futuro. Y creo que me gustaría.

Jonathan: Desde luego podríamos, deberíamos sacarlo en una, en una llamada de la comunidad, porque creo que estaría bien volver a poner, poner eso en, en, en el foco. Así que Gabriel, una de las preguntas que hacemos a menudo y, y esta no es la que te comenté antes, pero yo. Una de las preguntas que, que, que me gusta hacer porque siempre es muy interesante y distinta es: ¿la programación te hizo clic de alguna manera? Hay quien diría que hubo un momento en que de repente todo cobró sentido. Yo suelo contar la historia en mi caso. Pongo un ejemplo del colegio, cuando estudiaba química, y en el Reino Unido, donde iba al colegio. Tienes esos exámenes en... Y todo confluye en esos exámenes durante los tres años previos. Así que tienes tres años de estudio y eso culmina en tu examen final. Y eso en todas las asignaturas. Y uno de los temas era, obviamente, la química. Y pasé unos tres años sin tener ni idea de química. Simplemente no podía, no, no lo entendía, y luego, una semana antes del examen, fue como si de repente se me encendiera la bombilla, la expresión de que la cosa de repente cobraba sentido. Y yo pensaba: madre mía. Puedo sacarlo todo de la tabla periódica. Si sé los números de la tabla periódica, puedo entender esto, aquello y lo otro. Y las cosas se volvieron realmente simples, y fue como... ¿Tuviste un momento así con la programación o fue algo que simplemente...? ¿Lo encontraste natural, le veías sentido, y cuándo fue ese momento, si es que tiene relevancia?

Gabriel: No estoy seguro de haber tenido ese momento concreto. Creo que ayudó mucho tener esa grabación de macros y simplemente mirar el código muy pronto con Visual Basic para Aplicaciones. No sé si eso sigue, si sigue existiendo algo así hoy en día. Creo que todavía puedes hacer eso en Word. Pero no es muy frecuente tener algo así, en lo que puedes grabar y luego mirar el código y aprender de esa manera. Creo que eso me lo puso mucho más fácil porque al principio me costaba bastante. Creo que uno, un tipo de momento en el que diría: vale, no que entendiera las cosas, sino que me di cuenta de si realmente estaba haciendo las cosas bien o mal, fue cuando me incorporé a esa empresa, cuando era estudiante, fue básicamente la primera vez que trabajé. Trabajé junto a otros desarrolladores. Antes de eso, siempre estaba solo y básicamente tenía que hacerlo todo. Y siempre era una gran pregunta. ¿Normalmente se hace así? Me resulta extraño. Me resulta complicado. Parece que funciona, pero ¿es correcto? Y. Y ese tipo de dudas se resolvieron cuando me incorporé a esa empresa y empecé a ir allí y... Sin duda había mucho que necesitaba aprender y aprendí mucho. Por ejemplo, los conjuntos de registros de Access. Nunca los había entendido de verdad antes. Trabajé con ellos, pero

Jonathan: Mmm.

Gabriel: sí, funcionaban

Jonathan: Sí. Algo

Gabriel: Luego los entendí de verdad, empecé a entenderlos. Así que quizá eso fue algo en lo que me hizo clic, porque tenía una compañera de trabajo y me lo explicó, y de verdad, algún día hice clic, entendí. Cómo funcionan y

Jonathan: Mm-hmm.

Gabriel: ...cómo se supone que funcionan y cómo usarlos correctamente y demás. Así que sí, quizá ese fue uno de esos momentos. Pero creo que, esos momentos se dan muy a menudo en nuestro trabajo. No creo que haya un único momento, quizá ese es, ese primer momento. Pero también con Go, hay muchísimos sitios donde me puede hacer clic, donde entiendo. Por qué algo es de esa manera y cómo se supone que se usa. Y, por ejemplo, context. . Sí. Por ejemplo, context.

Jonathan: Sí.

Gabriel: Sí. El, por ejemplo, el context, se añadieron en, no estoy seguro, ¿la 1.6 o la 1.7 quizá? Por aquel entonces, no los miré. Sinceramente, al principio no los necesitaba realmente. Y luego fui a uno. Era como un meetup y alguien presentó algo sobre context, cómo usarlo, cómo... y demás. Y pensé

Jonathan: Mmm.

Gabriel: ...que debería mirarlo. Pero aún pasaron unos meses hasta que los miré de verdad y entendí por qué están ahí. Y por ejemplo lo de cerrar el canal, no sé si eres consciente de que hay mucha gente que todavía propone en internet que cierres una goroutine o que cierres un canal y no deberías. Para eso está context. Sí. Usas un context, cancelas el context y luego puedes cerrar la goroutine con eso. Si usas un canal cerrado, básicamente estás haciendo manualmente lo que un context hace por dentro, y hay muchísimas trampas que evitar, muchísimos problemas. Para evitar eso, normalmente la gente lo hace mal.

Jonathan: Estoy seguro de que hiciste un directo, hiciste un directo y mencionaste algo sobre eso. Yo, yo sí, creo que sí recuerdo que mencionaste, ya sabes, simplemente usa context porque

Gabriel: Sí.

Jonathan: ...tiene mucho sentido.

Gabriel: Me acuerdo de que mencioné esa parte.

Jonathan: Sí. Pero bueno, entonces, en cuanto a cuando has mentorizado a gente en el pasado, ¿cuáles son algunas de las...? ¿Puedes identificar acciones o comportamientos o cosas que hace la gente que capta las cosas rápido? ¿Puedes ver qué hacen que les permite posicionarse para aprender rápido o de forma más eficaz? ¿O es que muchos de los mentores, o de la gente a la que has mentorizado, simplemente están metidos en eso de forma natural? ¿O hay gente de la que piensas: vaya, hacen cosas, hacen cosas que les permiten acelerar su...?

Gabriel: No estoy seguro de poder decirlo de otras personas. Desde luego puedo decirlo de mí mismo. Aprendí, creo, de mis padres. Ellos se enseñaron muchas cosas a sí mismos y eso es lo que también aprendí de ellos, a enseñarme cosas a mí mismo. Así que aprendí a programar. Completamente por mi cuenta. Al principio estaba mi padre. Había algunas cosas en el colegio. La mayoría de las veces, en los últimos cursos del colegio, yo era en realidad, o éramos, casi todos éramos mejores que el profesor de todas formas, así que no había realmente aprendizaje. Había más bien cierto aprendizaje entre nosotros. Pero

Jonathan: Sí.

Gabriel: En general, lo aprendí todo por mí mismo. Y eso es algo que creo que necesitas en la programación. Porque constantemente necesitas indagar en cosas que no has visto antes. No sabes de ellas, necesitas leer sobre ellas. ¿Cuál es la palabra? Esta. Capacidad. Sí. Esta capacidad de poder indagar en algo y aprenderlo por tu cuenta, creo que es clave en programación para aprender. Y claro, puedes aprender mucho más rápido si encuentras a alguien que te lo cuente. Así que no quiero decir que no debas buscar un mentor, que no debas ir a Exercism, y demás. Eso te ayuda a crecer mucho más rápido, pero aun así eso es. Eso es lo que diría.

Jonathan: ...me da que tu aprendizaje vino de intentar resolver problemas de forma práctica. Así que ya fuera haciendo macros para hacer... o para hacerlo más eficientemente, me da la impresión de que ese fue un tema central que se ha repetido en, en, en tu vida en cuanto al aprendizaje, lo cual creo que probablemente encaja mucho. En general con lo que Exercism también intenta hacer en cuanto a ayudar a la gente a hacer cosas de forma práctica.

Gabriel: Sí. A recorrerlo.

Jonathan: Así que sí. Eso está muy bien. Así que, Gabriel, ya no nos queda demasiado tiempo, pero tengo dos finales. Bueno, no preguntas para ti. Una es una pregunta y te voy a pedir que compartas una opinión tuya, y luego la otra será, bueno, es más bien una opinión que podrías... Te voy a pedir que le des una recomendación a la comunidad sobre algo que deberían probar esta semana. Pero lo primero es que hemos hablado con muchos de nuestros anteriores, gente a la que hemos entrevistado, y si has escuchado este podcast o este directo durante un tiempo, sabrás que normalmente hacemos una gran pregunta hacia el final de, de, de nuestro directo. Y la pregunta es: ¿cuál es la causa por la que darías la vida en la tecnología? ¿Cuál es esa única opinión que mantienes con mucha firmeza, que te gustaría defender y, y... Ten en cuenta que tienes que dar una buena razón para ello. No puedes simplemente decir: esta es mi opinión y ya está. Tienes que poder, poder defenderte en ese sentido. Pero ¿cuál sería esa opinión, si...? Y puede ser tan, tan, tan intensa o tan trivial como quieras. ¿Cuál sería?

Gabriel: Diría que era un refrán. Tenemos uno en Go, o alguien lo ha dicho en la comunidad de Go, y es que el código aburrido es mejor que el código ingenioso.

Jonathan: Me gusta. ¿Qué significa?

Gabriel: ¿Qué significa? Sí, básicamente es, resume una gran parte de la filosofía de Go en torno a la simplicidad y la legibilidad. Así que si en código Go piensas: vaya, eso es ingenioso, en realidad es código malo. Aunque el que lo hizo fuera muy inteligente y lo hiciera de una manera muy ingeniosa. Y a veces tengo la sensación de que si sigues de verdad la simplicidad y los modismos de Go, realmente no tienes código en toda tu base de código que quieras señalar o al que puedas señalar. Mirad ese código, qué bueno es, porque todo tu código es en realidad aburrido y muy simple, y todo el que mire tu código dirá: ¿qué tiene de especial? Sí, pero la cuestión es que llegaste a la simplicidad porque eres un buen programador, y es un proceso de iteración, y código complicado... escribir código complicado es muy fácil. Escribir código simple es... Porque primero tienes que hacer el problema simple en tu cabeza, y luego tienes que escribir el código correctamente, y luego tienes que iterarlo y hacerlo simple. Y ese es un proceso mucho más largo y necesita desarrolladores mucho mejores que simplemente escribir código complicado, que cuando lo miras es difícil de entender. Es difícil de leer y es difícil de mantener, y es difícil de cambiar.

Jonathan: Es lo, es esa cosa constante de los equilibrios, ¿verdad? Yo, yo soy bastante joven en el mundo de la tecnología, tres años, y no vengo de una perspectiva de desarrollo. Vengo más bien del producto, del lado del producto de las cosas. Más de la perspectiva de negocio. Y si pudieras, podrías decir... Y una de las cosas que fueron realmente interesantes fue que se hizo cada vez más evidente que todo son equilibrios. Así que dices, el equilibrio es código simple frente a código complicado, mientras que el código complicado puede resultar más engorroso y complicado de manejar a la larga. El código simple puede llevar más tiempo y requerir más energía y esfuerzo por adelantado. Y ese es el equilibrio que se hace constantemente. Así que esa fue una de las... no sé cuáles, cuáles son tus pensamientos al respecto, pero me da la impresión de que, de que de verdad, ese lado de la simplicidad, porque recuerdo que mamá tenía, tenía un amigo en la universidad y solo escribía ensayos de dos páginas para sus trabajos. Porque era capaz de condensarlo todo en dos páginas, y sacaba las mejores notas por ello. Así que creo que encaja con todo el concepto de, de simplicidad, que creo que es realmente difícil escribir código simple porque requiere un pensamiento claro, claro, no solo programar. Así que creo que es una, que es una causa digna, y creo que lo has argumentado bien. Lo has, lo has explicado muy bien. Genial. Así que Gabriel, la última pregunta de esta semana. Y ahora te toca dar un poco de consejo a la comunidad de Exercism. Y puede ser cualquier cosa. Puede ser consejo de salud, consejo dietético. Es tu oportunidad de compartir un consejo que le darías a la comunidad y puede ser cualquier cosa que quieras. ¿Cuál sería tu recomendación para la comunidad de Exercism esta semana? ¿Qué cosa deberían probar o hacer, desde tu pers...?

Gabriel: Ay, esa es difícil. Vale, ya que dices que puede ser cualquier cosa, ¿puedo darte dos cosas?

Jonathan: Te dejo, te dejo hacer dos.

Gabriel: Vale. Una, una recomendación. En realidad soy vegetariano. Crecí vegetariano. Nunca he comido carne, y en realidad crecí vegano, la mayor parte de, la mayor parte de mi infancia y juventud. Así que probad una semana sin productos lácteos. Esa sería una. Así que... Y otra recomendación sería, esa, no estoy seguro de si se puede hacer en una semana, pero si eres un buen desarrollador, puedes, es muy interesante y muy valioso intentar construir memoria compartida, compartida entre varios servicios, el mismo servicio, memoria compartida. Intenta implementar una memoria compartida usando el protocolo Raft. Puedes usar una biblioteca. No necesitas implementar Raft tú mismo, pero

Jonathan: Raft Tendrás que darme, tendrás que enviarme el enlace para que pueda publicarlo. Así que ese es el... de Gabriel. Bueno, quizá deberíamos llamarlo el reto de Gabriel para la semana. Quizá no tanto recomendación. Quizá necesitamos

Gabriel: Sí. Es más bien algo que probar.

Jonathan: Lanzas, lanzas un reto. Eso podría, eso podría ser divertido, pero genial. Así que una semana sin productos cárnicos en absoluto. A ver qué tal va, y construir un servidor de memoria compartida. ¿Cómo lo llamarías? Servicio, compartida

Gabriel: Sí, podrías llamarlo el clave-valor en memoria.

Jonathan: Vale.

Gabriel: Varios servicios, una base de datos o un servicio. Sí.

Jonathan: Genial. Eso es

Gabriel: Porque te enseña mucho sobre cómo funcionan las bases de datos. Sí. Por dentro. Sobre todo las modernas, que están compartidas como... sí, no estoy seguro. Sí. Cassandra barra Skylar, no estoy seguro de si conoces Skylar. Es una especie de Cassandra, pero en C++ y ahora se están pasando al protocolo Raft. O es una base de datos clave-valor. Una compartida es una... no, no es una base de datos. Es gestión de retorno. Sí, Be degraff de Degraf Beja. Esa, creo que también usa Raft por debajo para, para distribuir los datos. No puedo asegurarlo, tendría que buscarlo otra vez. Pero hay muchas bases de datos en las que se usa. Sistema distribuido. Así que el sistema distribuido es básicamente un gran reto, diría, de nuestros tiempos modernos. Estamos en proceso de resolverlo, pero todavía hay muchos retos que superar y sí, siempre es bueno poder pensar en ese sentido, porque si puedes, se abren muchas posibilidades.

Jonathan: Mmm.

Gabriel: Si necesitas algo. En mi última empresa de hecho iba por ese camino, tener memoria compartida entre varios servicios a la vez.

Jonathan: Sí.

Jonathan: Quizá, quizá deberíamos organizarlo como una clase magistral. Daremos a la gente un par de semanas para probarlo. Entonces, Gabriel,

Gabriel: esa es, esa es la clase magistral

Jonathan: Sí,

Gabriel: cuando acabes con Exercism y hayas hecho todos los ejercicios,

Jonathan: Esa es la grande. La grande. Lo ata todo, ata todo junto. Gabriel, muchas gracias por tu tiempo. Ha sido un auténtico placer charlar contigo esta noche. Si quieres quedarte después de, después de que terminemos de grabar, un momento, pero solo quería darte un enorme gracias y agradecer de verdad todo lo que aportas a Exercism y no solo para nosotros, sino toda la mentoría que haces más allá y ayudar a la gente a escribir mejor código. Estoy seguro de que se agradece enormemente en todas partes. Así que gracias por tu tiempo y... Contacta con Gabriel. Si estás en Exercism, mándale un mensaje, pídele mentoría y estoy seguro de que lo pasarás bien con Gabriel. Genial.

Gabriel: Muchas gracias.

Jonathan: ...terminar la grabación. Sí, no, gracias por, gracias por acompañarnos y te veremos pronto en alguna forma de plataforma en algún sitio.

Gabriel: Gracias.

Más historias de nuestra comunidad

Escucha, aprende e inspírate con los miembros de nuestra comunidad.