Volver a la comunidad

¡No seas demasiado productivo!

En esta Community Story, Franziska y Jonathan charlan sobre la dinámica de equipos, cómo distintas personas dentro de una empresa abordan la colaboración y cómo posicionarte para aprender a convertirte en programador.

Ver en Youtube
DURACIÓN 50MIN

Jonathan: Hola y bienvenidos al podcast de Exercism. Me llamo Jonathan y tengo el privilegio de poder acompañarte hoy. Me acompaña Franziska, una de nuestras mantenedoras en los tracks de Go y JavaScript. Es un gran privilegio contar con Franziska como parte de Exercism y lleva involucrada varios años. Así que si has estado por aquí, es posible que te hayas cruzado con Franziska. Ya sea en las cohortes de aprendizaje o en los tracks de Go y JavaScript. Así que, Franziska, te damos una cálida bienvenida hoy. Muchas gracias por acompañarnos. Voy a ir directo al grano y preguntarte cómo terminaste donde terminaste.

Franziska: Sí. Bueno. Soy Franziska. Soy June o una June Dev en internet. Actualmente vivo cerca de Frankfurt, en Alemania, justo afuera del límite de la ciudad, en un suburbio pequeño. Y hace poco empecé un trabajo nuevo en Atlassian. Atlassian es la empresa detrás de un montón de herramientas muy queridas u odiadas, como Trello, Jira, Confluence. Sí, y lo que hago ahí es desarrollar una herramienta nueva para ayudar a los product managers con su trabajo. Porque en Jira el enfoque está en los desarrolladores, pero no encaja bien con lo que los product managers necesitan hacer, priorizar cosas y demás. Así que estamos construyendo algo específicamente para ellos. Me gusta Go como lenguaje. Me gusta mucho. Y el backend está construido con Go. Así que cuando vi la oferta de trabajo, pensé: «oye, qué bueno que estén haciendo esto». Apliqué y conseguí el trabajo. Hasta ahora solo han sido 30 días, no sé, pero sí, ha sido una buena experiencia. Luego, de niña, siempre me interesaron las cosas de tecnología y las ciencias naturales, la ciencia ficción, soy gran fan de Star Trek, todas esas cosas. Descubrí que se me daban bien las matemáticas y la física en la escuela. En esa época mucha gente estudiaba ciencias de la computación y siempre nos decían que no estudiáramos lo que estudiaban los demás, porque después habría demasiada gente de esas. Y yo pensé: «bueno, quizás no debería estudiar ciencias de la computación, porque va a haber demasiada gente de esas». En fin, pensé: bueno, hagamos algo parecido. Así que terminé estudiando física, que me gustaba mucho en la escuela. Y tenía ciencias de la computación más bien como materia secundaria. Así que tomé algunos cursos, pero no tantos como los demás. Descubrí que llegas a un punto en el que tienes que pensar: bueno, ¿qué voy a hacer el resto de mi vida, no? ¿Cómo gano mi dinero haciendo algo que en realidad me gustaba hacer? Y me di cuenta de que esta parte de programación era en realidad la que más me gustaba de lo que hacía en mis estudios, y que se me daba bien. Y quería hacer más de eso. Y además es algo que paga las cuentas. Así que sí, pensé: bueno, ¿cómo puedo conseguir un trabajo en esta área sin tener un título clásico de ciencias de la computación en ese momento? Lo otro era que, en ese momento, no quería convertirme en un desarrollador de C, un desarrollador de Java, ese tipo de cosa anticuada. Código de backend bancario en algún lugar. Así que pensé: bueno, ¿cómo puedo aprender lo moderno, el internet, la web? Quiero construir algo para eso. Y entonces un amigo me dijo que existía algo llamado bootcamps de desarrollo web, donde puedes ir a algún lugar durante tres meses y te enseñan lo nuevo y genial. 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 ese momento no había ninguno de esos aquí en Alemania. Sí. Lo que había era... o podías ir a tu universidad durante años y años, ¿no? O hay algunos lugares donde puedes trabajar un poco y estudiar al mismo tiempo, pero también son programas enormes, como años y años de educación. Y en cuanto a bootcamps, solo había cosas como aceleradoras de startups y eso. Donde aprendías un poco de código, pero también cosas de gestión, economía y demás. Así que eso no era lo adecuado para mí. Sí, así que busqué un poco y encontré que había uno bueno en Londres que tenía las materias que quería aprender.

Jonathan: Es lo que lo mueve todo.

Franziska: La web está pasando. Sí, exacto. Exacto. Donde pasan las cosas nuevas y geniales. Sí, encontré este bootcamp, y fui. Fue en realidad una experiencia buenísima. Y usamos Node.js para el backend. Y luego volví a Frankfurt y de hecho encontré trabajo como desarrolladora de Node. Y la empresa era bastante genial, y la tecnología era muy buena, y me adapté a 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 enorme y muy machistas. Y era como que, si tenías una reunión, ganaba la discusión el que gritaba más. Y eso, eso, ese 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 desafío. Así que parece algo bastante común. Perdón.

Franziska: Sí. Sí. Sin duda. Y uno piensa que al principio sobrevalora la parte técnica. Piensas: «ah, este trabajo tiene exactamente la tecnología que quiero hacer, así que todo irá bien». Pero en realidad la parte del equipo es casi más importante que la tecnología exacta con la que trabajas. Sí. Entonces, después de dos años, un amigo era CTO en otra empresa aquí en Frankfurt. Dijo que también querían transformar su tecnología y construir algo nuevo, pero que no querían usar Node.js. Querían usar Go. Lo decidieron por las razones que fueran, y me dijo que me podía unir a ellos. Pero tendrías que aprender Go, claro. Y le dije que si no le importaba que me tomara un tiempo al principio para aprenderlo, estaba dispuesta. Le eché un vistazo al lenguaje y sonaba muy bien. Sí, cambié de empresa. Y en ese nuevo lugar el equipo era realmente genial. Ahí era de verdad como que, si discutías con el CEO y tu argumento era mejor, eso se notaba. Y la gente reaccionaba a eso. Y era muy agradable trabajar así, y la gente era muy interesante y demás. Así que me quedé ahí cinco años. Construí muchos servicios de growth y también mucha documentación, redacté conceptos, ayudé a incorporar a otros desarrolladores a Go, e hice también algo de frontend y demás. Sí, pero después de cinco años también buscas un desafío nuevo, y además lo que me impulsó a buscar un trabajo nuevo fue la situación del Covid. Me di cuenta de que, de todos modos, ya trabajaba desde casa, ¿no? Y quizás iba a la oficina una vez por semana. Así que pensé que había muchos trabajos totalmente remotos por ahí. Quizás puedo conseguir algo realmente bueno en una empresa más grande. Si de todos modos trabajo desde casa, también podría trabajar para esa empresa más grande y más cool, ¿no? Sí, así que fue entonces, mientras trabajaba, cuando encontré este trabajo en Atlassian.

Jonathan: Creo que mi pregunta era entonces si toda la pandemia te abrió la mente a pensar: «ah, quizás hay más que solo Frankfurt y la escena de startups de Frankfurt». Porque iba a preguntar cómo era la escena de startups en Frankfurt como entorno.

Franziska: Sí, solo para el punto del Covid, primero, lo que el Covid me abrió fue esta idea de trabajar totalmente remoto. Porque antes yo siempre era así, de 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 trabajar principalmente a distancia durante dos años, me di cuenta de que está bien. Puedo con eso. Tengo a mi hija, de todos modos tengo que salir todo el tiempo y demás. Así que ahora tengo suficiente estructura en mi día. Así que eso es algo que la pandemia me mostró, y luego eso me abrió a la idea de buscar en otro lugar. En cuanto a Frankfurt, aquí pasa mucho en tecnología y startups, pero es mucho. Como podrás imaginar, hay mucho enfoque en la banca, así que muchas fintech y demás. Y eso no es particularmente... trabajé 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 ahí. Sí, no había nada que me retuviera específicamente en Frankfurt, ni en la escena de Frankfurt, como para quedarme. Sí, así que

Jonathan: No, claro. ¿Y hay lenguajes específicos en los que dirías que Frankfurt se enfoca? Obviamente, digamos, en el fintech, todos los lenguajes que supuestamente lo sustentan, ¿eso es más bien el foco? Entonces, ¿sientes que eres un poco como una especie rara, como desarrolladora de Go en Frankfurt? ¿O está aumentando? ¿Cómo lo ves?

Franziska: Sí, es difícil decir si está aumentando o no actualmente, porque no había muchos meetups ni cosas así por el Covid, ¿no? Así que es difícil decir si actualmente está llegando más gente a los meetups con el tiempo. Sí, creo que pasa mucho más en el ámbito de Java, por ejemplo. Sí, así que es un poco, es un poco difícil decir cómo es exactamente, pero por ejemplo, con JavaScript normalmente no es tan difícil reunir a una comunidad, porque todo el mundo tiene algo de frontend en algún lado, ¿no? Así que normalmente pasaba más en el mundo del frontend que en el del backend.

Jonathan: ¿Y tú, supongo que, cuando empezaste a programar y fuiste al bootcamp, tuviste una parte de frontend? Lo viste un poco, y ahora estás más enfocada en el backend. ¿Por qué prefieres el backend frente al frontend? ¿O es solo una suposición que hice?

Franziska: No, definitivamente, eso es algo que descubrí durante el bootcamp: que me va más esta parte del backend. Y hay varios aspectos en esto. Así que, en primer lugar, no soy una persona de diseño, y si haces frontend, normalmente también tienes que tomar algunas decisiones por tu cuenta. A veces, ¿cómo debería verse esto? ¿Qué puedo hacer aquí para mejorar esto, escribir algo de CSS y demás? Y me resulta súper difícil 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 esas cosas. Y vi que los desarrolladores de frontend que tienen eso y que pueden 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 también que, actualmente, el espacio del frontend es realmente súper complejo. Los frameworks que hay por ahí, la mayoría de los que se usan comúnmente, son realmente difíciles. 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 mirar la pantalla y decir «este es tu resultado final», como en el frontend. Pero, por la complejidad de la tecnología que hay involucrada, actualmente me parece bastante más fácil que lo que pasa en el espacio del frontend. Así que, para mí, en algún momento de mi carrera, definitivamente quiero volver a hacer también frontend. Pero estoy esperando a que aparezca un framework mejor. Y luego, una vez que todo este desastre que hay actualmente se calme y haya algo mejor, volveré y me convertiré en desarrolladora de frontend.

Jonathan: Quizás espere a que tú decidas cuándo aparece ese framework y luego me uno a ti, porque mirar frameworks construidos sobre JavaScript y... soy nuevo. En todos los sentidos de la palabra. Estoy intentando aprender Go en este momento y lo estoy disfrutando. Pero incluso solo los conceptos y el modelo mental que tienes que tener, es un mundo completamente nuevo en sí mismo. Y quería preguntar cómo hiciste la transición de aprender JavaScript cuando empezaste a programar y luego aprender Go, porque lo haces sonar como un proceso bastante sencillo para ti: bueno, de JavaScript a Go. ¿Pero cómo fue eso? ¿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í ML y algunos de esos lenguajes esotéricos. Así que, para mí, JavaScript ya era mi quinto lenguaje o algo así, y luego Go fue el sexto. Así que, para mí, por ejemplo, Go era todo esto... también habías oído 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é se trataba todo eso. Pero teniendo todos esos otros lenguajes de fondo, ya lo sabía de C, C++ y demás. Así que sí, me apoyé en muchas de las cosas que ya había aprendido antes en la universidad, y eso hizo que fuera muy fácil entrar en materia. 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 avanzar bastante rápido. Por ejemplo, yo suelo decir: ve al tour oficial, entra a la página web o a donde sea. Y puedes terminarlo en dos semanas, tres semanas. Y obtienes 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 por aprender. Así que sí. Que ese fuera mi lenguaje de destino también ayudó mucho a que la transición fuera fácil.

Jonathan: Bien. Así que ahora trabajas para Atlassian y mencionaste un poco la superposición entre los productos, la tecnología y todo ese tipo de cosas. Y dijiste que el fintech no te aporta mucho, que no era especialmente emocionante para ti. ¿Dirías que el espacio de producto y la interfaz entre la tecnología y el producto es un área que realmente disfrutas? ¿Y qué, específicamente en el espacio de la tecnología, sería tu pasión, si pudieras resumirlo? Sé que es una pregunta muy amplia, pero ¿podrías contarnos un poco sobre eso?

Franziska: Sí, hay distintos tipos de dominios o temas que me interesan. No es solo donde trabajo ahora; por ejemplo, me gusta mucho lo que se hace en los productos de consumo. Hay empresas como HelloFresh que hacen muchas cosas geniales. Cosas geniales relacionadas con la tecnología también, o hay mucho en el espacio de la educación, como Exercism y demás. Y luego el otro espacio es el de las herramientas para desarrolladores o las herramientas para equipos en general. Sí, así que hay varias áreas, y esta era una de las cosas donde podía pensar: «oye, tiene mucho sentido ayudar a la gente con eso». Y luego, en particular con el product management, puedo contar esta anécdota de Jeremy y también de mi... a mi CEO en mi última empresa le conté sobre 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 me preguntó: «¿Elegiste este trabajo porque estabas frustrada con mis habilidades de product management?». Y todo esto te muestra que el product management y mejorarlo era, siempre fue algo que me apasionaba. Porque la cosa es que, como desarrollador, puedes escribir el mejor código del mundo. Pero si estás escribiendo lo incorrecto, si estás construyendo lo incorrecto, entonces todo es en vano, ¿no? Así que si tu product manager no hizo un buen trabajo identificando las cosas correctas que deberías construir, quizás nadie use nunca lo que construiste, 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 del product management en general también hace que la vida de los desarrolladores de todo el mundo sea mucho mejor, porque así pueden construir las cosas correctas y crear valor de verdad, y no construir algo que terminará en la basura o que los usuarios nunca verán.

Jonathan: Sí, no, es muy interesante, porque lo que parece que resaltas es que, mentalmente, creo que muchas veces hemos tenido esta mentalidad de que si eres bueno en tecnología, lo pones todo, lo haces todo en segundo plano. Nunca ves la luz del día como persona porque haces la parte técnica, y ese es realmente el estereotipo, se podría decir. Pero sí parece que en los últimos años ha habido cada vez más superposición entre la parte técnica y la parte de negocio. Y para mí, siempre pensaba en agile como concepto. Y que el concepto de agile, creo, es una mentalidad de negocio, una forma de ver las cosas impuesta a un equipo técnico. En mi mente, si soy realmente sincero, eso es lo que parece, que es útil, pero no creo haber visto nunca un entorno agile. Ni que dé frutos a tiempo, si tiene sentido. Y quizás sea porque lo he visto mal gestionado en el pasado, pero sí parece que hay más superposición, que los desarrolladores están empezando a querer involucrarse más en la parte de negocio, lo cual me parece muy interesante y creo que en realidad es algo bueno, porque entonces las decisiones son mejores en conjunto.

Franziska: Sí, es que algunos desarrolladores quieren involucrarse más, pero otros tampoco quieren, aunque de todos modos necesitan involucrarse más. La cosa es que simplemente no funciona así: que el product management se siente, desglose todo y luego lo pase por encima del muro y tu desarrollador lo construya, y ya está. Nunca funcionó bien, ni siquiera en el pasado, cuando ese era el modelo estándar. Y hoy en día hay más enfoque en eso, 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... más abajo en la cadena, como un equipo de soporte y quizás alguien que hace mantenimiento para ti o lo que sea. Cuanto más cerca trabajen juntos y de verdad encuentren juntos la mejor solución para algo, mejor: más valor pueden crear juntos. Y eso siempre fue así. Por ejemplo, actualmente la funcionalidad en la que trabajamos... el product management tiene muchas ideas. Sobre qué podría ser parte de la primera iteración de esta funcionalidad nueva, pero ellos no pueden juzgarlo por sí mismos. Si agregar esto es como un día más de trabajo, o si 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 de juzgar. Así que 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 agregar». «Esto es difícil de agregar», y demás. Y así encontramos un buen alcance. Y sí, lo bueno de mi trabajo en Atlassian es que tenemos un product manager que lo ve de la misma manera. Él siempre dice que el alcance es algo de dos vías. Yo tengo algunas ideas aquí, pero tú también tienes que darme tu opinión sobre qué tiene más sentido. Y entonces lo resolvemos juntos. También veo que cuando pasé por el proceso de contratación, todo este tema de comunicarse con los demás, con otros equipos y demás, tiene mucho enfoque actualmente. Mucha gente pregunta: «¿cómo trabajabas con otros equipos?». Y también, solo con hablar contigo, juzgan qué tan bien te expresas, porque es súper importante que te interese lo que hacen los otros equipos y que estés involucrada. Y solo entonces puedes realmente aprovechar al máximo el tiempo que tienes.

Jonathan: Se siente como un enfoque mucho más integrado en ese sentido. Y eso me lleva a otra idea, y es que muy a menudo

Franziska: Ah, quizás antes de seguir, mencionaste la palabra que me provoca, agile, ¿no? Así que tengo que saltar sobre eso. No sé si fue a propósito, solo para provocarme o no. Sí. En cuanto a agile, siempre me parece que las ideas base de donde viene todo esto, que las personas son más importantes que los procesos y todas esas cosas básicas que idearon hace mucho tiempo, todavía tienen mucho sentido. Hay mucha magia alrededor de ellas. Pero luego llegaron todos sus consultores y 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, los de producto y los desarrolladores no se comunican muy bien, poner todas esas estructuras encima tampoco arregla eso de verdad. Así que sí, tampoco soy muy fan, y estas prácticas estándar de scrum, prácticas agile, tampoco las he visto funcionar de maravilla en ningún lado.

Jonathan: Es interesante, porque se siente... si buscas trabajo en LinkedIn, por ejemplo de product owner o product manager, todo es scrum, agile. En todos lados, y 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 dentro de un plazo, pero produce calidad, y es como que devuelves la responsabilidad al individuo para que responda por eso, lo cual ha sido muy interesante de vivir, porque es como que los equipos jóvenes se atascan con agile, no funciona, se frustran, y al final terminan en Kanban, donde poco a poco avanzamos de manera 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 estás construyendo esencialmente tus propios productos.

Franziska: Sí, siempre construí mis propios productos. Nunca trabajé en agencias.

Jonathan: Sí. Lo de las agencias es una pesadilla, porque ahí 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 que querías moverlo de aquí para allá, lo cual fue rehacer todo el backend. Así que quería hacerte una pregunta que les hemos hecho a muchas personas en nuestros distintos podcasts y transmisiones en vivo. 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 la tecnología. No es que queramos decir que esta es la opinión que debes tener, sino más bien cuál es ese valor u opinión que dirías que es absolutamente fundamental para ti y que te encantaría ver en general en el espacio de la tecnología. Es una pregunta bastante amplia, pero ¿hay algo que defenderías muy firmemente en la tecnología?

Franziska: Pensé que lo harías un poco más ligero. Yo quería ir con solo la opinión ligera e impopular. ¿Está bien así también?

Jonathan: Sí, por supuesto.

Franziska: Bien, no tengo tantas colinas gigantes por las que morir. Así que una de las cosas por las que siento algo fuerte es que mucha gente sugiere que optimices tu configuración personal de desarrollo. Y creo que eso está en gran medida sobrevalorado. La gente te dice: «ah, tienes que aprender Vim, porque entonces nunca más volverás a usar el mouse y es genial», y demás. Y entonces la gente... la gente se lo cree, sobre todo cuando recién entra en la industria. Y luego se pasan un año aprendiendo todos los atajos mágicos y demás. Y luego, sí. Pero al final, no sé, quizás ahorran un día al año o algo así. Así que ese año de sufrimiento no valió la pena. Y hay muchas cosas así, la gente te dice que tienes que tener todos tus alias configurados para tu terminal en tus dot files, y te dicen que necesitas saberte 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 su 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 escribiendo comandos y demás. Así que mucha gente está optimizando esta parte realmente pequeña del día, y en mi opinión, si eso es tu pasatiempo, adelante, hazlo. O si tiene algún valor similar para ti. Si eres un SRE, o sea, site reliability engineer, y entras a hackear servidores y demás, entonces quizás tenga sentido saber Vim, ¿no? Porque no puedes abrir una interfaz gráfica. Pero si no lo necesitas, entonces no te preocupes por eso. Usa lo que te resulte cómodo, y ya. Por ejemplo, con los atajos, yo siempre digo: bueno, 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 esa cosa cinco veces al día, bueno, quizás tenga sentido; o cada cinco minutos. Entonces quizás tenga sentido que recuerdes... ¿sabes qué? El atajo para guardar está justo ahí si haces clic todo el tiempo, pero si no, entonces quédate feliz con tu interfaz gráfica y haz lo tuyo, y dedica mejor 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 trato de decirles a los desarrolladores nuevos: no se dejen intimidar por esa gente que dice que necesitas usar uno de estos editores antiguos y optimizar tu productividad ahí.

Jonathan: Es curioso, porque a menudo las pasiones de la gente se cuelan en la mezcla, de manera comprensible. Porque es: «ah, estoy súper emocionado porque optimicé mi vida». Pero, pensándolo bien, no siempre es lo mejor. Eso sería como fue mi experiencia al aprender: había tantísimas cosas, recomendaciones que la gente recibe. Y luego, si entras a YouTube y buscas «cómo aprender a programar», alguien empieza como con «cómo configurar tu GitHub». Alguien empieza con «cómo entender la terminal», etc. Estoy como teniendo que descargar para trabajar localmente y en el editor en línea, lo que sea. Ahora creo que ese es un consejo realmente bueno. Simplemente mantenlo bastante simple. Entonces, si vas a dedicar más tiempo a pensar, ¿cómo haces, qué haces para pensar los problemas? Si tienes una situación en el trabajo o en general, ¿qué haces en tu día? ¿Te reservas tiempo? ¿Cómo es tu proceso?

Franziska: Una cosa con la que me gusta empezar es básicamente tomar el problema un poco antes de tener que resolverlo de verdad, y luego solo mantenerlo en el fondo de mi mente durante una semana o algo así. Y luego, justo bajo la ducha, pienso un poco en ello. Y antes de dormir, pienso un poco en ello y le doy vueltas en la cabeza un rato. Y por lo general eso me ayuda a encontrar algunos puntos de partida. Y luego, desde ahí, sobre todo si es para el trabajo, normalmente empiezo anotando algunos puntos, porque escribir las cosas definitivamente me ayuda a despejar la mente, a encontrar los puntos, por ejemplo, dónde todavía necesito hablar con el product manager porque no sé exactamente qué necesitamos ahí para los clientes. Así que anoto lo que ya sé y cómo resolver esas cosas. Y también suelo anotar una tabla bastante grande de preguntas abiertas, ya sea para alguien más del equipo o también para mí misma, cosas por resolver. Y luego eso realmente me ayuda 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 se ve la API? ¿Qué datos necesito almacenar para esto? ¿Y luego cómo va desde el punto de la historia hasta los datos y de vuelta, y qué lógica tiene que ocurrir en 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 en sí. Así que eso también puede pasar. Pero por lo general el sistema es primero intentar pensar un poco el asunto, y resolver algunos problemas con anticipación me ayuda mucho. Y luego, o bien el código ya es directo, o encuentro más problemas y vuelvo atrás, pero eso también está bien.

Jonathan: Bien. No, qué bueno. Eso parece ser... a menudo en mi mente tengo la idea de que si eres programador a tiempo completo, literalmente te sientas en tu computadora de la mañana a la noche y vas picando piedra. Pero me estoy dando cuenta de que la capacidad de pensar los problemas, y creo que algo que Exercism también intenta destacar, es pensar bien el problema. Asegurarte de que tienes todo el contexto. Y luego la parte de programar es en realidad solo la expresión de ese proceso, implementada. 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í. Un consejo común es empezar a escribir en comentarios lo que quieres que haga esto. Vale, primero necesito hacer esto, y luego ese fue el resultado, y luego aquello, y después relleno las partes de código para esa parte en particular. Así que eso también ayuda mucho.

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

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

Jonathan: No, es... no, es cierto. Y creo que lleva a una pregunta interesante que también les he hecho a algunas personas, que siempre ha sido interesante cuando he hablado con otros. Y 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 pasaste por libros de texto, pero luego te despertaste una mañana y de repente dijiste: «ah, simplemente tiene sentido». Esa suele ser mi experiencia al aprender algo. ¿Cuándo fue eso para ti, o te pasó? ¿O fue solo gradual, un «bueno, simplemente lo fui entendiendo poco a poco»? ¿Qué fue?

Franziska: Ah, sí, pensé un poco en esto, y sí, creo que hubo un momento de clic. Pero déjame empezar. No hubo clic, si está bien. Cuando era adolescente, tenía una de esas laptop de juguete que traían algunos juegos. Y también tenía una función con la que podías programar en Basic. Y mi abuelo pasó por ahí, y él... básicamente había empezado programando estas tarjetas perforadas. Siempre le había gustado la tecnología, y dijo: «ah, qué bien que puedas programar ahí». Y quería mostrarme que programar era algo genial. Empezó como empiezan todos: escribió print, «Hello World», y le devolvió «Hello World». Y yo pensé: «puedo escribir Hello World. ¿Qué se supone que estás haciendo?». Y él dijo: «no, hace lo que le dices que haga», y demás. Y luego escribía algo como «uno más dos es», y le devolvía tres. Y yo pensé: «mi calculadora puede hacer eso». ¿Qué me quieres mostrar aquí? No lo entendía. Y luego, más adelante, tuve una especie de clase de computación en la escuela. Y ahí teníamos Turbo Pascal, y tenía como un plugin o algo así donde podías tener una tortuguita que dibujaba algo en la pantalla. Y ahí nos dieron algunos ejercicios geniales donde ingresabas algún tipo de fórmulas y dibujaba unos fractales muy intrincados y geniales en la pantalla. Que parecían hojas y demás, y lograbas eso simplemente escribiendo la pequeña fórmula que le dice a la tortuga qué dibujar. Y ese fue para mí el punto en el que hubo clic, porque me di cuenta de que dándole... cosas, instrucciones súper simples, se puede crear algo complejo que yo nunca habría podido hacer por mi cuenta. O sea, no podría dibujar tantas hojas, ¿no? Así que eso fue para mí, la cosa... ah, sí. O sea, eso puede hacer más de lo que yo podría hacer de todos modos, pero sí... pero antes, con las explicaciones que me dio mi abuelo y lo que me mostró ahí en esa cosa, eso no funcionó. Pero sí, ver esto, lo gráfico, y ver qué pocas instrucciones son necesarias para que la computadora haga algo tan complejo, ahí fue donde hubo clic para mí.

Jonathan: Bien, qué bueno, porque yo tuve eso con los métodos el otro día. Yo pensaba: «¿qué diablos es un método?», y todavía no me caía el veinte. Y me pasó lo mismo con la química. Tuve que estudiarla durante dos años y luego, de un día para otro, la tabla periódica tuvo todo el sentido. Y tenía unos 16 años en ese momento. Y recuerdo pensar: «Dios mío, esto es lo más fácil. No puedo creer que no lo haya entendido. ¡Dos años!». Y luego el examen fue pan comido. Porque pensaba que todas las respuestas están en la tabla periódica. Solo tienes que hacer tu pequeña... todo se sincronizó en mi cerebro. Y ha sido interesante también hablar con gente sobre cuándo hizo clic ese momento, y a Rebecca, a quien quizás conozcas del track de Unison en Exercism, le pregunté... porque ella estudió literatura inglesa como carrera. Y le pregunté: «¿cómo pasaste de la literatura inglesa a la programación?». Y cuál era el método que usabas en tu mente para conceptualizar ese cambio. Y ella decía que imaginaba el programa que estaba escribiendo como una historia, como una narrativa con un protagonista, y las funciones eran personajes y cosas así. Y yo pensé: «ah, wow, qué interesante». Nunca lo habría pensado así. No, eso es realmente

Franziska: Sí. Pero eso se conecta con lo que hablábamos sobre los comentarios, ¿no? Y que escribes antes del código. Es exactamente así: primero cuentas la historia y luego escribes el código para ella.

Jonathan: Qué bueno que lo mencionaste, porque creo que darme cuenta de que en realidad estoy escribiendo una historia en mis comentarios... voy a, me lo voy a llevar seguro. No

Franziska: Y una cosa más sobre este tema: también se han hecho 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, juegan un papel importante en eso. Así que si, por ejemplo... poner nombres a las cosas es algo que siempre se dice que es difícil en programación. Si eres bueno encontrando buenas palabras que describan lo que estás manejando, eso hace que tu código sea mucho mejor. Así que en realidad no se trata solo de matemáticas y cosas analíticas. También se trata mucho de ser bueno con las palabras, algo que quizás no esperarías de entrada.

Jonathan: No, al final del día es lenguaje, supongo, lo cual es un pensamiento interesante que tuve. En tu caso, eres alemana de nacimiento, pero ese es tu tipo de lenguaje. ¿Ahora desarrollas en Atlassian en inglés? ¿Y antes ya era en inglés? Cómo... porque, digamos, quizás, lamentablemente, todo está en inglés. Y hablas un inglés excelente, pero ¿aprendiste inglés en la escuela y luego la programación, todo era en alemán? ¿O cómo aprendiste todo eso con 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 está bien. Sí, en cuanto a aprender inglés, nunca fui buena en inglés en la escuela. 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 lo que realmente fue: estar inmersa en el idioma. Y luego mi inglés mejoró muchísimo. Y luego fue pan comido después de eso, pero antes de eso era realmente malo. Y sí, ese año, aprender el idioma de verdad, también me ayudó después a poder comunicarme con colegas que no son de Alemania y demás. Y luego en el... eso es definitivamente un factor. O si el inglés no es tu lengua materna, entonces eso te lo pone más difícil para pelear por el nombre correcto de las cosas, ¿no? Y poner nombres: 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 que sea tan fácil para quienes no hablan inglés. Y creo que eso también va a 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 en el mundo en este momento. Y el inglés, si se quedan con el inglés o con sus dialectos locales, que sé que hay muchos en India... Es interesante pensar en todo eso. Ya casi llegamos a la hora. Lo he disfrutado mucho. Tengo una pregunta más para ti, Franziska. Y aquí es donde puedes hacer una recomendación. Comunidad de Exercism. ¿Cuál sería tu única recomendación? Puede ser cualquier cosa, desde una comida para probar o algo como salir a caminar, o lo que sea que quieras recomendarle a la comunidad. ¿Cuál sería tu recomendación para la comunidad de Exercism esta semana?

Franziska: Sí, voy a volver a este tema de la productividad del que hablé en la opinión impopular. Así que mi recomendación sería: tómate un descanso, mira de un tirón esa serie de Netflix que siempre quisiste ver o lo que sea. Normalmente la gente está muy enfocada en ser productiva durante todo el día. Y eso no es bueno para tu cerebro. No es bueno para tu cerebro optimizar tanto; tu cerebro, para rendir bien en el trabajo, para ser creativo y demás... Tu cerebro necesita descansos, porque hace ciertas cosas en esos descansos. Y sí, simplemente sentarte en el sofá y mirar un poco alguna serie o lo que sea; eso es bueno. Es algo bueno, darle a tu cerebro algo de tiempo para que haga lo suyo en segundo plano. Y creo que tomar descansos, tomarte un tiempo libre, está subestimado. Así que esa sería mi recomendación. No te sientas culpable por tomarte descansos y simplemente relajarte.

Jonathan: Genial. No, me gusta mucho. Bueno, a todos, cuando estén escuchando esto, esa es la recomendación, el consejo de esta semana de Franziska. Así que Franziska, muchas gracias por tu tiempo, por todo lo que aportas a Exercism y por todo el pensamiento y la participación que tienes con la comunidad. Sé que te involucras muchísimo con Exercism, mejorándolo y ayudándolo, y lo apreciamos mucho. Así que solo quería darte las gracias, y gracias por tu tiempo esta mañana. Un feriado nacional en el que podrías estar celebrando o haciendo algo divertido. Y nos ofreciste tu tiempo aquí, así que lo agradezco enormemente. Me quedé pegado en la llamada cuando paré la grabación, pero solo quería agradecerte mucho y sí, que tengas un resto del día maravilloso. Genial.

Franziska: Gracias por invitarme.

Más historias de nuestra comunidad

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