Volver a la comunidad

¡No seas demasiado productivo!

En esta historia de la comunidad, Franziska y Jonathan charlan sobre la dinámica de equipo, cómo enfocan la colaboración las distintas personas de una empresa y cómo posicionarte para aprender a ser programador.

Ver en YouTube
DURACIÓN 50MIN

Jonathan: Hola y bienvenida al pódcast de Exercism. Me llamo Jonathan y tengo el privilegio de presentarte hoy. Me acompaña Franziska, una de nuestras mantenedoras en los tracks de Go y JavaScript. Tenemos mucha suerte de contar con Franziska en Exercism y lleva participando varios años. Así que, si llevas un tiempo por aquí, puede que te hayas encontrado con Franziska, ya sea en las cohortes de aprendizaje o en los tracks de Go y JavaScript. Así que, Franziska, una cálida bienvenida hoy. Muchas gracias por acompañarnos. Voy a ir directo al grano y preguntarte cómo acabaste donde acabaste.

Franziska: Sí. Vale. Soy Franziska. En internet soy June o June Dev. Ahora vivo cerca de Fráncfort, en Alemania, justo fuera del límite de la ciudad, en un pequeño suburbio. Y hace poco empecé un trabajo nuevo en Atlassian. Atlassian es la empresa que hay detrás de muchas herramientas amadas u odiadas, como Trello, Jira o Confluence. Sí, y lo que hago allí es desarrollar una herramienta nueva para ayudar a los product managers con su trabajo. Porque en Jira está enfocado a desarrolladores, pero no encaja bien con lo que necesitan hacer los product managers, priorizar cosas y demás. Así que estamos construyendo algo específicamente para ellos. Me gusta Go como lenguaje. Me encanta. Y el backend está construido con Go. Así que cuando vi la oferta de trabajo, pensé: «Oye, qué guay que estén haciendo esto». Me presenté y conseguí el trabajo. Hasta ahora solo han pasado 30 días, no sé, pero ha sido una buena experiencia. De pequeña, siempre me interesaron las cosas de tecnología y las ciencias naturales, la ciencia ficción, soy muy fan de Star Trek, todas esas cosas. Descubrí que se me daban bien las mates y la física en el colegio. En aquella época mucha gente estudiaba informática y siempre nos decían que no estudiáramos lo que estudiaban los demás, porque luego habría demasiada gente de ese tipo. Y yo pensé: vale, quizá no debería hacer informática porque habrá demasiados. En fin, así que pensé: vale, hagamos algo parecido. Acabé estudiando física, que me gustaba mucho en el colegio. Y tuve informática más bien como asignatura secundaria. Así que hice algunos cursos, pero no tantos como los demás. Descubrí que llegas a un punto en el que tienes que pensar: vale, ¿qué voy a hacer el resto de mi vida, no? Cómo voy a ganarme el dinero haciendo algo que de verdad me guste. Y me di cuenta de que esa parte de programación era en realidad la que más me gustaba de lo que hice en mis estudios, y que se me daba bien. Y quería hacer más de eso. Y también es algo que paga las facturas. Así que pensé: vale, ¿cómo puedo conseguir un trabajo en este área sin tener una titulación clásica en informática en ese momento? La otra cosa era que en ese momento no quería convertirme en una desarrolladora de C, una desarrolladora de Java, ese rollo anticuado de código bancario de backend por ahí. Sí, así que pensé: vale, ¿cómo puedo aprender lo moderno, la web de internet? Quiero construir algo para eso. Y entonces un amigo me dijo que existía algo llamado bootcamps de desarrollo web, donde puedes irte a un sitio durante tres meses y te enseñan lo nuevo y molón. Sí. Así que decidí que quería hacer eso. Y luego, probablemente, desde ahí tendría un mejor punto de partida para encontrar trabajo. Y en aquel momento no había ninguno de esos aquí en Alemania. Sí. Tenían, o bien podías ir a la universidad durante años y años, ¿no? O hay algunos sitios donde puedes trabajar un poco y estudiar al mismo tiempo, pero también programas enormes, como años y años de educación. Y luego, en cuanto a bootcamps, solo tenían cosas como aceleradoras de startups. Donde aprendías un poco de código, pero también cosas de gestión, economía y demás. Así que eso no encajaba conmigo. Sí, así que miré un poco y encontré uno bueno en Londres que tenía las asignaturas que quería aprender.

Jonathan: Es donde se cuece todo.

Franziska: La movida está pasando. Sí, exacto. Exacto. Donde pasan las cosas nuevas y molonas. Sí, encontré este bootcamp, tío, y fui allí. Fue una experiencia buenísima. E hicimos Node.js para el backend. Y luego volví a Fráncfort y encontré trabajo como desarrolladora de Node. Y la empresa estaba bastante bien y la tecnología era muy chula, y me puse al día con todo muy rápido y fue muy divertido, pero tuve un poco de mala suerte con mi equipo, porque había muchos compañeros de equipo con un ego grande y muy machistas. Y era como que si tenías una reunión, ganaba el argumento quien más gritaba. Y eso, eso, eso no es un equipo agradable en el que estar.

Jonathan: Es un tema bastante común: la gente se apunta a programar y luego los aspectos periféricos, los del equipo, siempre son lo que la gente no espera que sea el problema o el reto. Así que parece bastante común. Perdón.

Franziska: Sí. Sí. Sin duda. Y piensas que al principio sobrevaloras la parte técnica. Piensas: «Oh, este trabajo tiene exactamente la tecnología que quiero hacer, así que irá bien». Pero en realidad la parte del equipo es casi más importante que la tecnología exacta que estás usando. Sí. Así que después de dos años, un amigo que también era CTO en otra empresa de aquí, en Fráncfort, me dijo que también querían transformar su tecnología, su stack, y que querían construir algo nuevo, pero que no querían hacer Node.js. Querían usar Go. Lo decidieron por lo que fuera, y me dijo que podía unirme. Pero tendrías que aprender Go, claro. Y le dije que si no le importaba que al principio me tomara un tiempo para aprenderlo, estaba dentro. Miré un poco el lenguaje y me pareció todo genial. Sí, cambié de empresa. Y en ese sitio nuevo el equipo era muy bueno. Allí era de verdad como que si discutías con el CEO y tu argumento era mejor, se notaba. Y la gente reaccionaba a eso. Y fue muy agradable trabajar así, y la gente era muy interesante y demás. Así que me quedé allí cinco años. Construí muchos servicios de crecimiento y también mucho trabajo de escritura, de redacción de conceptos, ayudando a incorporar a otros desarrolladores a Go, e hice también algunas cosas de frontend y demás. Sí, pero después de cinco años también buscas un reto nuevo, y además lo que me llevó a buscar un trabajo nuevo fue la situación de la Covid. Me di cuenta de que, total, ya trabajaba desde casa, ¿no? Y quizá iba a la oficina una vez a la semana. Así que pensé que había muchos trabajos totalmente en remoto. Quizá podía conseguir algo realmente chulo en una empresa más grande. Si total voy a trabajar desde casa, también podría trabajar para esa empresa más grande y más chula, ¿no? Sí, así que fue entonces, mientras trabajaba, cuando encontré este trabajo en Atlassian.

Jonathan: Así que creo que mi pregunta era entonces si toda la pandemia te abrió un poco a pensar: «Oh, quizá hay más que Fráncfort y la escena de startups de Fráncfort». Porque iba a preguntar cómo era la escena de startups de Fráncfort como espacio.

Franziska: Sí, solo por el tema de la Covid: primero, lo que la Covid me abrió fue esta idea de trabajar totalmente en remoto. Porque antes siempre era como ir a la oficina. Me gusta ver a la gente en persona, cómo estructuro mi día y demás. Pero luego me di cuenta de que, después de estar principalmente a distancia durante dos años, vi que está bien. Puedo con ello. Tengo a mi hija, tengo que salir a la calle todo el rato de todas formas y demás. Así que ahora tengo suficiente estructura en mi día. Eso es algo que la pandemia me mostró, y luego eso me abrió a la idea de buscar en otro sitio. En cuanto a Fráncfort, aquí pasan muchas cosas de tecnología y startups, pero es mucho. Como te puedes imaginar, hay mucho enfoque en banca, así que muchas fintechs y demás. Y eso no es especialmente... he trabajado en fintech en el pasado, pero no es algo que me apasione especialmente como tema. Sí, así que eso siempre fue un poco, no, y además tampoco hay muchos desarrolladores de Go por aquí. Sí, no había nada que me mantuviera específicamente en Fráncfort o en la escena de Fráncfort. Sí, así que

Jonathan: No, claro. ¿Y hay lenguajes concretos que dirías que Fráncfort prioriza? Obviamente, digamos, fintech, todo eso. Los lenguajes que supuestamente hay detrás, ¿es eso más el foco? ¿Te sientes un poco como una especie rara como desarrolladora de Go en Fráncfort? ¿O está aumentando? ¿Cómo lo ves?

Franziska: Sí, ahora mismo es difícil saber si está aumentando o no, porque no había tantos meetups y cosas así por la Covid, ¿no? Así que es difícil saber si ahora viene más gente a los meetups con el tiempo. Sí, creo que hay mucho más movimiento, por ejemplo, en el espacio de Java. Sí, así que es un poco difícil saber cómo está exactamente, pero, por ejemplo, JavaScript no suele ser tan problema para juntar una comunidad, porque todo el mundo tiene algo de frontend en algún sitio, ¿no? Así que normalmente había más movimiento en el mundo del frontend que en el backend.

Jonathan: Y, supongo, cuando empezaste a programar y fuiste al bootcamp, habrías tenido una parte de frontend. Lo miraste un poco y ahora estás más centrada en el backend. ¿Por qué prefieres el backend frente al frontend? ¿O es solo una suposición mía?

Franziska: No, sin duda. Eso es algo que descubrí durante el bootcamp: que me tira más la parte de backend. Y hay aspectos de rentabilidad en esto. En primer lugar, no soy una persona de diseño, así que si haces frontend, normalmente también tienes que tomar tú misma algunas decisiones. A veces, ¿cómo debería verse esto? ¿Qué puedo hacer aquí para mejorarlo? Escribir algo de CSS y demás. Y me cuesta muchísimo tomar esas decisiones. Claro que también recibes diseños si lo haces en el mundo real. Pero, sí, simplemente no tengo tanto ojo para las cosas. Y vi que las desarrolladoras de frontend que tienen eso y que saben hacerlo son más eficaces a la hora de hacer el trabajo. Así que eso fue una cosa en la que pensé que no era del todo para mí. Y la otra parte era que, actualmente, el espacio del frontend es realmente muy complejo. Los frameworks que hay por ahí, la mayoría de los que se usan habitualmente, son muy duros. Así que, en cierto modo, el backend actual también es un poco más fácil. Es más difícil en el sentido de que no... es más difícil de visualizar, ¿no? No ves el resultado final como mirando la pantalla y diciendo «este es mi resultado final», como en el frontend. Pero, por la complejidad de la tecnología que implica, me parece que ahora mismo es bastante más fácil que lo que pasa en el espacio del frontend. Así que, para mí, sin duda, en algún momento de mi carrera quiero volver también a hacer frontend. Pero estoy esperando a que aparezca un framework mejor. Y entonces, una vez que todo el desastre que hay ahora mismo se calme y haya algo mejor, volveré y me convertiré en desarrolladora de frontend.

Jonathan: Puede que espere a que tú decidas cuándo llega ese framework y entonces me uno a ti, porque, mirando frameworks construidos sobre JavaScript, y soy nuevo. En todos los sentidos de la palabra. Ahora mismo estoy intentando aprender Go y lo estoy disfrutando. Pero solo los conceptos y el modelo mental que tienes que tener ya son un mundo completamente nuevo en sí mismos. Y quería preguntarte cómo salvaste la brecha desde aprender JavaScript cuando empezaste a programar y luego aprender Go. Porque haces que suene como un proceso bastante directo para ti: vale, de JavaScript a Go. Pero ¿cómo fue? ¿Qué hiciste para hacer esa transición?

Franziska: Sí. Buena pregunta. Algo importante aquí es que JavaScript no era mi único lenguaje, ¿no? En la universidad no profundicé en muchos lenguajes, pero aprendí C. Aprendí Java, aprendí C++, aprendí Malbolge y algunos de esos lenguajes exóticos. Así que, para mí, Java ya era mi quinto lenguaje o algo así, y luego Go fue mi sexto. Para mí, por ejemplo, Go era todo esto: también oías hablar de los punteros y demás, y viniendo solo de JavaScript eso habría sido algo completamente nuevo y habría tenido que aprender de qué iba todo eso. Pero teniendo todos esos otros lenguajes de fondo, ya lo conocía de C y C++ y demás. Así que me apoyé en muchas cosas que ya había aprendido antes en la universidad, y eso hizo que entrar fuera muy fácil. Y la otra cosa que ayuda con Go es que es un lenguaje bastante minimalista. No tiene tantas palabras clave, no tiene tantas construcciones que puedas armar. Puedes pasarlo bastante rápido. Por ejemplo, yo siempre digo: ve al tour oficial, entra en la web o accede o lo que sea. Y en dos semanas, tres semanas puedes haberlo terminado. Y tienes una comprensión sólida. Y con JavaScript eso sería imposible. Necesitas mucho más tiempo solo para tener una comprensión sólida de lo básico, y luego hay muchísimo más que aprender. Así que sí. Que mi lenguaje de destino fuera así también ayudó mucho a hacer una transición fácil.

Jonathan: Vale. Así que ahora trabajas para Atlassian y has mencionado un poco la superposición entre productos, tecnología y todo ese tipo de cosas. Y dijiste que fintech no te aporta mucho, que no te resultaba especialmente emocionante. ¿Dirías que el espacio de producto y la interfaz entre la tecnología y el producto es un área que disfrutas mucho? ¿O qué dentro del espacio tecnológico sería tu pasión, si pudieras resumirlo? Sé que es una pregunta muy amplia, pero ¿nos cuentas un poco sobre eso?

Franziska: Sí, hay distintos tipos de dominios o temas que me interesan. No es solo donde trabajo ahora, sino que, por ejemplo, me gustan mucho las cosas de productos de consumo. Hay empresas como Hello Fresh que hacen muchas cosas chulas. Cosas relacionadas con la tecnología también, o hay muchas cosas en el espacio educativo, como Exercism y demás. Y luego el otro espacio es el de las herramientas para desarrolladores o herramientas para equipos en general. Sí, así que hay varias áreas, y esta era una de esas en las que podía pensar: «Oye, tiene mucho sentido ayudar a la gente con esto». Y luego, en particular con la gestión de producto, puedo contar esta anécdota de Jeremy y también de mi CEO en mi empresa anterior. Le conté lo de este trabajo nuevo y en qué iba a trabajar, y me dijo lo mismo que Jeremy, el fundador de Exercism. Me dijo exactamente lo mismo, y fue: «¿Elegiste este trabajo porque estabas frustrada con mis habilidades de gestión de producto?». Y todo esto te dice que la gestión de producto y mejorarla era, o siempre fue, algo que me apasionaba. Porque la cosa es que, como desarrolladora, puedes escribir el mejor código del mundo. Pero si estás escribiendo lo que no es, si estás construyendo lo que no es, entonces todo es para nada, ¿no? Así que si tu product manager no hizo un buen trabajo a la hora de descubrir qué deberías construir, quizá nadie use nunca lo que has construido, porque no analizaron bien el mercado, no priorizaron bien y demás. Y eso lo he vivido en trabajos anteriores. Construí muchas cosas que nunca vieron la luz porque no había un buen proceso de priorización, ¿no? Por eso creo que mejorar esta área de la gestión de producto en general también hace que la vida de los desarrolladores de todo el mundo sea mucho mejor, porque entonces pueden construir lo correcto y crear valor de verdad, y no construir algo que acabará en la basura o que los usuarios nunca verán.

Jonathan: Sí, no, es muy interesante, porque lo que parece que destacas es que mentalmente... creo que a menudo hemos tenido esta mentalidad de que, si se te da bien la tecnología, te metes, lo haces todo en segundo plano. Nunca ves la luz del día como persona porque haces la tecnología, y ese es el estereotipo, se podría decir. Pero sí parece que en los últimos años ha habido una superposición cada vez mayor entre la tecnología y el lado empresarial. Y, para mí, siempre pensaba en Agile como concepto. Y creo que el concepto de Agile es en realidad una mentalidad empresarial o una forma de ver las cosas impuesta a un equipo técnico. En mi cabeza, si soy sincero, eso es lo que parece: es útil, pero creo que nunca he visto un entorno ágil. O que dé frutos a tiempo, si tiene sentido. Y quizá sea porque lo he visto mal gestionado en el pasado, pero sí parece que hay más superposición, que los desarrolladores empiezan a querer involucrarse más en el lado empresarial, lo cual me parece muy interesante y creo que es algo bueno, porque entonces las decisiones son mejores en conjunto.

Franziska: Sí, algunos desarrolladores quieren involucrarse más, pero otros tampoco quieren involucrarse más, aunque necesitan involucrarse más de todas formas. La cosa es que no funciona así: que la gestión de producto simplemente se siente, lo desglosa todo, lo lanza por encima del muro y tu desarrollador lo construye y ya está bien. Nunca funcionó bien, ni siquiera en el pasado, cuando ese era el modelo estándar. Y hoy en día sí hay más atención en esto, pero siempre fue lo correcto tener más diálogo entre los desarrolladores y los diseñadores, los desarrolladores y los product managers. Y también cuando tienes gente más abajo en la cadena, como un equipo de soporte y quizá alguien que te hace el mantenimiento o lo que sea. Cuanto más de cerca trabajan y de verdad sacan juntos la mejor solución para algo, mejor, más valor podéis crear juntos. Y eso siempre fue verdad. Por ejemplo, ahora mismo, con la funcionalidad en la que trabajamos, la gestión de producto tiene muchas ideas sobre qué podría formar parte de la primera iteración de esta funcionalidad nueva, pero ellos no pueden juzgarlo por sí mismos. Añadir esto, ¿es un día más de trabajo o esto haría explotar todo el alcance y lo convertiría en tres meses más de trabajo? Sí. Así que para ellos es imposible juzgarlo. La única forma en que encontramos un buen empaquetado para esta primera iteración es hablando entre nosotros y diciendo: «Esto sería fácil de añadir. Esto es difícil de añadir» y demás. Y luego encontramos un buen alcance. Y lo bueno de mi trabajo en Atlassian es que tenemos un product manager que lo ve igual. Siempre dice que el alcance es cosa de dos. Yo tengo algunas ideas aquí, pero tú también tienes que darme tu opinión sobre qué tiene más sentido. Y luego sacamos algo juntos. También veo que, cuando pasé por el proceso de contratación, todo este tema de comunicarse con otros, con otros equipos y demás, tiene mucho foco ahora. Mucha gente pregunta: «¿Cómo trabajabas con otros equipos?». Y de verdad, solo hablando contigo, juzgan lo bien que te expresas, porque es superimportante que te importe lo que hacen los otros equipos y que te involucres. Y solo entonces puedes aprovechar de verdad al máximo el tiempo que tienes.

Jonathan: Parece un enfoque mucho más integrado en ese sentido. Y entonces eso me lleva a otra idea: muy a menudo

Franziska: Ah, quizá antes de seguir, has mencionado la palabra desencadenante «Agile», ¿no? Así que tengo que saltar sobre eso. No sé si fue a propósito solo para provocarme o no. Sí. Respecto a Agile, siempre encuentro que las ideas de base de donde viene todo esto, que las personas son más importantes que los procesos y todas esas cosas básicas que se les ocurrieron hace mucho tiempo, siguen teniendo mucho sentido. Mucha magia alrededor. Pero luego llegaron todos sus consultores, se inventaron todos estos frameworks enormes y demás, y los vendieron, y hay scrum masters y demás. Y también mi experiencia, como decías, es que mucho de eso no ayuda tanto. Si, por ejemplo, producto y desarrolladores no se comunican muy bien, simplemente poner todas esas estructuras encima tampoco lo arregla bien. Así que sí, tampoco soy muy fan de esas prácticas estándar de Scrum, de las prácticas ágiles. Tampoco he visto que funcionen de maravilla en ningún sitio.

Jonathan: Es interesante porque se siente... Si buscas trabajo en LinkedIn para product owner o product manager, todo es Scrum, Agile. En todas partes es como: «Es increíble». Pero es tan curioso cómo los equipos de desarrollo más... ¿cómo dirías? Más ingeniosos que he visto han sido con Kanban, donde no hay presión de tener que producir necesariamente en un plazo, pero produce calidad, y es como que devuelves la responsabilidad al individuo para que sea responsable de eso, lo cual ha sido muy interesante de vivir, porque es como que los equipos jóvenes se quedan atascados en Agile, no funciona, se frustran, y acaban en Kanban, donde vamos picando piedra poco a poco de forma constante y las cosas funcionan. Pero creo que también es interesante cuando tienes un producto como negocio frente a cuando construyes productos para otros. No sé cuál era tu trabajo anterior, si era un producto interno. Sé que en Atlassian construyes esencialmente vuestros propios productos.

Franziska: Sí, siempre he construido mis propios productos. Nunca he trabajado en agencias.

Jonathan: Sí. Lo de las agencias es una pesadilla, porque es donde todo el mundo escudriña cada hora de desarrollo o lo que sea, y dicen: «Pero no entiendo. ¿Por qué este botón me cuesta 400 dólares?». Y es porque querías moverlo de aquí a aquí, lo cual era rehacer todo el backend. Así que quería hacerte una pregunta que le hemos hecho a mucha gente en nuestros distintos pódcasts y directos. Y es todo este concepto de la colina por la que morirías, o la cosa que defenderías con toda tu vida cuando se trata de una opinión o en tecnología. No es que queramos decir que esta es la opinión que debes tener, sino más bien qué valor u opinión tienes que dirías que es absolutamente fundamental para ti y que te encantaría ver en general en el espacio tecnológico. Es una pregunta bastante amplia, pero ¿hay algo que defenderías con mucha fuerza en tecnología?

Franziska: Pensaba que lo harías un poco más desenfadado. Yo quería ir con la opinión desenfadada e impopular. ¿Te vale así también?

Jonathan: Sí, por supuesto.

Franziska: Vale, no tengo muchas colinas enormes por las que morir. Una de las cosas que me importan de verdad es que mucha gente sugiere que optimices tu configuración personal de desarrollo. Y creo que eso está en gran medida sobrevalorado. Por ejemplo, la gente te dice: «Oh, tienes que aprender Vim, porque así nunca volverás a coger el ratón y es genial» y demás. Y la gente se lo cree, sobre todo cuando es nueva en el sector. Y luego se pasan un año aprendiendo todos los atajos mágicos y demás. Y luego, sí, pero al final, no sé, ahorran quizá un día al año o algo así. Así que ese año de sufrimiento no compensó. Y hay muchas cosas de este tipo: la gente te dice que tienes que tener todos tus alias configurados para el terminal en tus dotfiles, y te dicen que necesitas conocer todas las tarjetas de atajos y demás, y pasas muchísimo tiempo aprendiendo esas cosas, pero luego solo ahorras tanto. Y creo que lo que pasa aquí es que la gente sobreestima el tiempo que pasas escribiendo en tu trabajo, ¿no? Como mencionamos antes, gran parte del trabajo también es comunicar. Gran parte del trabajo es en realidad pensar. Sí. Y solo una parte de tu día la pasas realmente escribiendo algo, escribiendo código o comandos y demás. Así que mucha gente optimiza esa parte tan pequeña del día. Y en mi opinión, sí, si es tu hobby, adelante, hazlo. O si te aporta un valor similar. Si eres un SRE, o sea, ingeniero de fiabilidad de sitios, y entras a hackear servidores y demás, entonces puede tener sentido saber Vim, ¿no? Porque no puedes abrir una interfaz gráfica. Pero si no lo necesitas, no te preocupes. Usa lo que te resulte cómodo. Por ejemplo, para los atajos, yo siempre digo: vale, la mayoría de las interfaces gráficas te muestran el atajo junto a la cosa en la que haces clic. Así que si haces clic en la cosa cinco veces al día, vale, puede tener sentido, o cada cinco minutos. Entonces puede tener sentido recordar: ¿sabes qué? El atajo para guardar está bien si haces clic ahí todo el rato, pero si no, sé feliz en tu interfaz gráfica y haz lo tuyo, y dedica más bien el tiempo a mejorar tus habilidades reales de programación. Haz algunos ejercicios, algo así. Aprende un lenguaje nuevo. Lo que sea. Pero sí, esto es algo que siempre intento decir a los desarrolladores nuevos: no os dejéis intimidar por esa gente que os dice que tenéis que usar uno de estos editores antiguos y optimizar vuestra productividad ahí.

Jonathan: Es curioso porque a menudo las pasiones de la gente se cuelan en la mezcla, de forma comprensible. Porque es como: «Oh, estoy superemocionado porque he optimizado mi vida». Pero, pensándolo bien, no siempre es lo mejor. Esa sería mi experiencia al aprender: había tantísimas cosas, recomendaciones que la gente recibe. Y luego, si entras en YouTube y buscas cómo aprender a programar, alguien empieza por cómo configurar tu GitHub. Otro empieza por cómo entender el terminal, etc. Yo tengo que descargar cosas para trabajar en local y en el editor online, lo que sea. Ahora creo que ese es un consejo muy bueno. Mantenerlo bastante simple. Entonces, si vas a pasar más tiempo pensando, ¿cómo haces? ¿Qué haces para pensar en los problemas? Si tienes una situación en el trabajo y es, o en general, ¿qué haces en tu día? ¿Sacas tiempo? ¿Cómo es tu proceso?

Franziska: Una cosa con la que me gusta empezar es, básicamente, recibir el problema un poco antes de tener que resolverlo y luego mantenerlo en el fondo de la cabeza durante una semana o algo así. Y luego, en la ducha, pienso un poco en él. Y antes de dormir, pienso un poco en él y le doy vueltas en la cabeza un rato. Y normalmente eso me ayuda a encontrar algunos puntos de partida. Y a partir de ahí, sobre todo si es para el trabajo, suelo empezar escribiendo algunos de los puntos, porque escribir las cosas me ayuda definitivamente a despejar la mente y encontrar los puntos, por ejemplo, donde todavía necesito hablar con el product manager porque no sé qué necesitamos exactamente ahí para los clientes. Así que escribiría lo que ya sé y cómo resolverlo. Y también escribiría, normalmente, una tabla bastante grande de preguntas abiertas, ya sea para otra persona del equipo o para mí misma, cosas que hay que averiguar. Y luego eso me ayuda mucho a aclarar las cosas. Y luego, desde el concepto de muy alto nivel, intento desglosarlo en tareas de programación más tangibles. ¿Cómo es la API? ¿Qué datos necesito almacenar para esto? Y luego, ¿cómo va desde el story point hasta los datos y de vuelta, y qué lógica tiene que ocurrir por el camino? Depende. Puede ser que ya haya encontrado muchos de los problemas que hay que resolver en mi proceso de pensamiento previo, pero también a veces, cuando empiezo a programar, encuentro problemas nuevos que no había previsto, y entonces necesito dar un paso atrás y pensarlo de nuevo, y luego volver al código real. Eso también puede pasar. Pero normalmente el sistema es intentar pensar un poco en la cosa primero. Resolver algunos problemas por adelantado me ayuda mucho. Y luego, o bien el código es directo, o encuentro más problemas y vuelvo atrás, pero eso también está bien.

Jonathan: Vale. No, está guay. Ahora bien, eso me parece que a menudo en mi cabeza tengo la idea de que, si eres programador a tiempo completo, literalmente te sientas delante del ordenador de la mañana a la noche y vas picando piedra. Pero me estoy dando cuenta de que la capacidad de pensar en los problemas, y creo que algo que Exercism también intenta inculcar, es pensar bien el problema. Asegurarte de que tienes todo el contexto. Y luego la parte de programar es realmente solo la expresión de ese proceso implementado. Y Jeremy también diría lo mismo. Creo que él pensaría mucho las cosas y luego programaría bastante poco.

Franziska: Sí. También, sí. Otro consejo común es empezar escribiendo en comentarios lo que quieres que haga esto. Vale, necesito hacer esto primero, y luego ese era el resultado, y luego aquello, y después relleno las partes de código para el caso concreto. Eso también ayuda mucho.

Jonathan: Ha sido curioso porque lo que dices es que definitivamente voy a probarlo ahora, porque me doy cuenta. Cuando tienes que programar y sobre todo para aprender Go o lo que sea. Uno de los ejercicios que intentaba hacer era: tomar una entrada del teclado, almacenarla y luego devolver como un «has tenido este número de intentos» o lo que sea. Pero todo el proceso de pensar en desglosar ese problema en tareas realmente granulares era algo que me resultaba muy poco familiar. Y ha sido muy interesante aprender a pensar en un problema de ese tipo paso a paso. Así que no, son consejos chulos que sin duda tomaré.

Franziska: También es algo que mucha gente... En Exercism, mucha gente no tiene tantos problemas para entender el lenguaje y la sintaxis. Pero luego, esto de cómo resuelvo este problema más general es con lo que la gente lucha. Y hemos intentado un poco proporcionar documentación también sobre esto, donde decimos: mira, este es un buen recurso para aprender a pensar como programador y demás. Pero sí, quizá también podamos hacerlo mejor en esto.

Jonathan: No, eso es cierto. Y creo que lleva a una pregunta interesante que también le he hecho a varias personas, y que siempre ha sido interesante cuando he hablado con otras. Es sobre todo este concepto de cuándo te hizo clic la programación. No sé si alguna vez tuviste esa sensación. Eran conceptos y teoría, y habías pasado por libros de texto, pero luego te despertaste una mañana y de repente pensaste: «Oh, simplemente tiene sentido». Esa suele ser mi experiencia al aprender algo. ¿Cuándo fue para ti, o te pasó? ¿O fue gradual: «Vale, poco a poco lo fui pillando»? ¿Qué fue?

Franziska: Oh, sí, he pensado un poco en esto y sí, creo que hubo un momento de clic. Pero déjame empezar. No hizo clic, si te parece. Cuando era adolescente, tenía uno de esos portátiles de juguete que tenían algunos juegos. Y también tenía una función para programar en BASIC. Y mi abuelo vino y se puso a... él había empezado programando con tarjetas perforadas, básicamente. Siempre le había gustado la tecnología, y dijo: «Oh, qué guay que puedas programar ahí». Y quería mostrarme que programar es algo guay. Y empezó como empiezan todos. Escribió print, Hello world, y escupió Hello world, y yo pensé: «Puedo escribir Hello World. ¿Qué estás haciendo?». Y él dijo: «No, hace lo que le dices que haga» y demás. Y luego escribió como «uno más dos es», y escupió tres. Y yo pensé: «Mi calculadora puede hacer eso. ¿Qué me quieres enseñar aquí?». No lo pillé. Y luego, más adelante, tuve una especie de cosa de informática en el colegio. Y allí teníamos Turbo Pascal y tenía como un plugin o algo así donde podías tener una pequeña tortuga y dibujaba algo en la pantalla. Y nos dieron algunos ejercicios chulos donde introducías algún tipo de fórmulas y dibujaba unos fractales muy chulos y complejos. Que parecían hojas y demás, y conseguías eso solo escribiendo la pequeña fórmula que le dice a la tortuga qué dibujar. Y ese fue para mí el punto en el que hizo clic, porque me di cuenta de que dando instrucciones super simples se puede crear algo complejo que yo nunca habría podido hacer sola. Como que no podría dibujar tantas hojas, ¿no? Así que eso fue para mí lo de «Oh, sí. Esto puede hacer más de lo que yo podría hacer». Pero antes, con las explicaciones que me dio mi abuelo y lo que me mostró ahí, no funcionó. Pero ver la parte gráfica y ver qué pocas instrucciones hacen falta para que el ordenador haga algo complejo, ahí fue donde me hizo clic.

Jonathan: Vale, eso está guay, porque a mí me pasó con los métodos el otro día. Pensaba: «¿Qué demonios es un método?». Y no me había caído la ficha. Y me pasó lo mismo con la química. Tuve que estudiarla durante dos años y luego, de la noche a la mañana, la tabla periódica tuvo todo el sentido. Y tenía unos 16 años. Y recuerdo pensar: «Oh, Dios mío, esto es lo más fácil. No me puedo creer que no lo haya entendido en dos años». Y luego el examen fue pan comido. Porque pensaba que todas las respuestas estaban en la tabla periódica. Solo tienes que hacer tu pequeño... todo estaba sincronizado en mi cerebro. Y también ha sido interesante hablar con gente sobre cuándo hizo clic ese momento. Y Rebecca, a la que quizá conozcas del track de Unison en Exercism, le pregunté, porque ella estudió literatura inglesa. Y le dije: «¿Cómo pasaste de literatura inglesa a programación? ¿Y cuál fue el método que usaste en tu mente para conceptualizar?». El cambio, y ella decía que imaginaba el programa que escribía como una historia, como una narrativa con un protagonista y las funciones eran personajes y demás. Y yo pensaba: «Oh, qué interesante. Nunca se me habría ocurrido verlo así». No, eso es muy

Franziska: Sí. Pero eso conecta con lo que hablábamos de los comentarios, ¿no? Y que escribes antes del código. Es exactamente como contar primero la historia y luego escribir el código adicional para ello.

Jonathan: Es muy chulo que lo hayas mencionado, porque creo que darme cuenta de que en realidad estoy escribiendo una historia en mis comentarios es algo que sin duda me llevaré. No.

Franziska: Y una cosa más sobre este tema: también hicieron algunos estudios sobre qué gente es buena en programación y demás, y descubrieron que en realidad tus habilidades verbales, como cuántas palabras usas y demás, tienen un papel importante. Así que, por ejemplo, poner nombres a las cosas es algo que siempre se dice que es difícil en programación. Si se te dan bien las palabras para describir lo que manejas, eso hace que tu código sea mucho mejor. Así que en realidad no solo va de matemáticas y análisis. También va mucho de ser bueno con las palabras, algo que quizá no esperarías de entrada.

Jonathan: No, es lenguaje, supongo, al final del día, que es un pensamiento interesante que tuve. En tu caso, eres alemana de nacimiento, pero ese es tu tipo de lenguaje. ¿Ahora desarrollas con Atlassian en inglés? ¿Y antes estabas en inglés? Porque, diría que quizá, por desgracia, todo está en inglés. Y hablas un inglés estupendo, pero ¿aprendiste inglés en el colegio y luego la programación, era todo en alemán, o cómo aprendiste todo eso desde esa experiencia?

Franziska: Sí, sobre todo tuve la suerte de que la mayor parte de las cosas de programación estaban en inglés y todos los comentarios estaban en inglés y demás. No siempre es el mejor inglés, pero bueno, está bien. Sí, en mi caso, aprender inglés... nunca se me dio bien el inglés en el colegio. Pero tuve la suerte en la universidad de pasar un año, como un año de intercambio, en el Reino Unido. Así que eso fue realmente estar inmersa en el idioma. Y luego mi inglés mejoró muchísimo. Y después de eso fue pan comido, pero antes era realmente malo. Y sí, ese año, aprender de verdad el idioma también me ayudó luego a poder comunicarme con colegas que no son de Alemania y demás. Y luego, en... eso es definitivamente un factor. O si el inglés no es tu lengua materna, de nuevo, eso te lo pone más difícil para luchar por el nombre correcto de las cosas, ¿no? Y poner nombres a las cosas. Lo haces con cada línea de código que escribes, ¿no? Siempre estás asignando algo a algo y necesitas nombrar esa cosa lo mejor posible para que el código quede claro.

Jonathan: No, no me parece tan fácil para quienes no hablan inglés. Es algo que creo que también empezará a cambiar. Vi un artículo el otro día que decía que India es el espacio tecnológico de más rápido crecimiento del mundo ahora mismo. Y el inglés, si siguen con el inglés o sus dialectos locales, que sé que hay muchos en India. Es interesante pensarlo todo. Bueno, ya casi llevamos una hora. Lo he disfrutado mucho. Tengo una pregunta más para ti, Franziska. Y aquí es donde puedes hacer una recomendación. A la comunidad de Exercism. ¿Cuál sería tu recomendación? Puede ser cualquier cosa, desde comida que probar hasta algo como salir a caminar o lo que quieras recomendar a la comunidad. ¿Cuál sería tu recomendación para la comunidad de Exercism esta semana?

Franziska: Sí, vuelvo al tema de la productividad del que hablé en la opinión impopular. Mi recomendación sería: tómate un descanso, mírate de una sentada esa serie de Netflix que siempre has querido ver o lo que sea. Normalmente la gente está muy centrada en ser productiva durante todo el día. Y eso no es bueno para tu cerebro. No es bueno que tu cerebro optimice tanto. Tu cerebro, para rendir en el trabajo, para ser creativo y demás, necesita descansos. Y en esos descansos pasan cosas. Y luego, simplemente sentarte en el sofá y ver un poco alguna serie o lo que sea, eso está bien. Es bueno hacerlo, darle a tu cerebro algo de tiempo para hacer lo suyo en segundo plano. Y creo que tomar descansos, tomarte un tiempo, está infravalorado. Así que esa sería mi recomendación. No te sientas culpable por tomarte descansos y relajarte.

Jonathan: Guay. No, me gusta mucho. Bueno, a todos, cuando escuchéis esto, esa es la recomendación, el consejo para esta semana de Franziska. Así que, Franziska, muchísimas gracias por tu tiempo, por todo lo que aportas a Exercism y por todo el pensamiento y la implicación que tienes con la comunidad. Sé que te implicas muchísimo con Exercism, mejorándolo y ayudando, y lo apreciamos de verdad. Así que solo quería darte las gracias y agradecerte tu tiempo esta mañana. Un día festivo en el que podrías estar celebrando o haciendo algo divertido. Y has ofrecido tu tiempo aquí, así que lo aprecio enormemente. Me quedé colgado en la llamada cuando paré la grabación, pero solo quería darte muchísimas gracias y sí, que tengas un día estupendo. Guay.

Franziska: Gracias por invitarme.

Más historias de nuestra comunidad

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