Hubo una época en mi carrera como Programador donde sentía que me estaba quedando atrás en conocimientos, sentía que siempre había algo que aprender, y hasta sentía que era tonto por no saber todo lo que estaba saliendo, era frustrante no llevar el hilo de todo, sentir que era malo en lo que estaba haciendo, ya que me era imposible aprender todo lo que se escuchaba, y lo peor, cada semana que pasaba, nuevas cosas aparecían.
Hubo una época en mi carrera como Programador donde sentía que me estaba quedando atrás en conocimientos, sentía que siempre había algo que aprender, y hasta sentía que era tonto por no saber todo lo que estaba saliendo, era frustrante no llevar el hilo de todo, sentir que era malo en lo que estaba haciendo, ya que me era imposible aprender todo lo que se escuchaba, y lo peor, cada semana que pasaba, nuevas cosas aparecían.
Un día entendí que el problema no era yo, el problema era la creciente evolución de esta área, todo fue mejorando en mi cuando me di cuenta que en realidad, poco de todo lo que estaba saliendo, realmente era algo que necesitaba aprender.
Esto fue la parte difícil, aceptar que no tenemos que aprender todo, solo tenemos que aprender lo que necesitamos, pero: ¿Cómo saber que es lo que necesitamos? Probando por curiosidad, algunos minutos del día algo que nos llame la atención, y tener un juicio sin fanatismo para aceptar si eso nos servirá o solo es algo que tiene mucho hype.
Posterior a esto, al poder decidir que aprender y que no, todo se siente más relajado.
El aprendizaje debe estar orientado a objetivos, puedes tener hobbies de lectura sobre temas que te llamen la atención y no pasa nada, pero el querer aprender todo lo que esta saliendo solo por sentirse que te quedas atrás es un error que cometemos muchos que estamos dentro de la Programación.
He lanzado un video, donde las personas se han sentido identificadas, igual, quizá, puede servirte verlo:
Factores como estar en una computadora sentados por horas, sedentarismo y rutina hacen que sea un sentimiento común en la área del desarrollo de software, pero hay otro tipo de factores que ocasionan esto.
La frustración no es propia de la programación, pero si algo muy común en esta área.
Factores como estar en una computadora sentados por horas, sedentarismo y rutina hacen que sea un sentimiento común en la área del desarrollo de software, pero hay otro tipo de factores que ocasionan esto.
En el siguiente video me he puesto a analizar algunas cosas comunes las cuales pueden estar frustrándonos sin darnos cuenta, y sobre todo, como los creadores de contenido somos parte del problema.
En este video te mostraré los puntos que creo, causan frustración en los programadores, y como poder reducirla.
La frustración es algo que se normaliza en los programadores, no tiene porque ser así.
El programar es tedioso en circunstancias donde existen algunos factores como el desconocimiento de alguna tecnología, el tiempo de entrega imposible, un error no encontrado.
En este video te mostraré los puntos que creo, causan frustración en los programadores, y como poder reducirla.
No es nuevo que yo te diga que la frustración es parte de cuando uno está programando, ya sea por no dar con la solución, ya sea por un bug con la tecnología, o por un sinfín de cosas más, esto es parte de la vida de un programador y espero te sirva lo que a mí me ha servido a través de los años para romper con esta maldición.
Creo que me di cuenta de cómo ir superando con esto gracias a una situación que me paso hace algunos años y te contare la anécdota, quizá te identifiques.
Cuando parecía no haber solución
Hace algunos ayeres me encontraba resolviendo una problemática: hacer un administrador de hilos.
Tenía que administrar un pool de hilos (grupo de hilos limitado disponibles para realizar una tarea) el cual estuviera al tanto para hacer la solicitud de un servicio el cual me retornaría una gran cantidad de información la cual debía ser base para una base de datos local.
El proceso necesitaba de algunos minutos por cada solicitud, por lo cual se optó por hacer un pool de hilos, esto yo lo comencé a crear de cero (era un chaval que no se le ocurrió que ya existía en .Net una implementación, aquí te muestro un video).
Cuando manejamos hilos tenemos que entender un conjunto de prácticas, estos hilos que trabajaran a la par, ¿Compartirán recursos?, ¿Compartirán variables? Hay que considerar ciertas cuestiones que yo en mi novata vida de programador era nuevo.
Como todo en la vida, cuando uno es nuevo en un terreno la frustración llegó, gracias a que la administración de hilos soltaba excepciones por el hecho de no entender que al compartir recursos, algunos de estos recursos solo pueden ser leídos 1 a la vez, cosa que desconocía y me llevó a la frustración.
Intente varios mecanismos pensando que todo era cuestión de mala planeación del algoritmo, pero en realidad el algoritmo iba bien, lo que no iba era esa parte de compartir recursos, algo que seguía yo ignorando, así que después de días sin dormir bien llegue a la conclusión de dejarlo por un tiempo y hacer otro tipo de cosas, como salir a correr.
Y es aquí cuando mi cerebro de manera inconsciente llegó a esa cuestión ¿No será que los hilos al compartir recursos de lectura causen este estrago?, y si, eso era, el compartir la lectura de un archivo de configuración de la vieja escuela hacia que esto no fuera para adelante.
En mi caso me sirvió dejar la codificada un tiempo, darle relajamiento al asunto, salir a correr, y la solución llegó, esta solución a partir de ese momento me sirvió, ahora cada que no veo solución después de intentar por horas, lo que hago es cerrar la laptop y hacer algo ajeno a programar y creerme, la mayoría de veces llegara la solución.
El subconsciente es muy trabajador
Esto no es mágico, en el libro llamado “La mente nueva del emperador de Roger Penrose” se habla sobre cómo es que llegan las ideas, en un apartado llamado “Inspiración, perspicacia y originalidad” se dan algunos ejemplos recopilados por el matemático francés Jacques Hadamard, y aquí transcribo un ejemplo de su colega Henri Poincaré que cita después de un momento de frustración intenso en sus propias palabras:
“…Dejé Caen, en donde vivía, para participar en una excursión geológica organizada por la Escuela de Minas. Las peripecias del viaje me hicieron olvidar mi trabajo matemático. Al llegar a Coutances abordamos un autobús para ir a algún lugar. En ese momento, cuando puse mi pie en el estribo, me vino la idea, sin que nada en mis pensamientos anteriores pareciera haber preparado el camino para ello, de que las transformaciones que había utilizado para definir las funciones Fuchsianas eran idénticas a las de la geometría no euclidiana. No verifiqué la idea; no hubiera tenido tiempo, ya que en cuanto tomé asiento en el autobús continué una conversación ya comenzada, pero tenía la certidumbre absoluta. A mi vuelta a Caen, y para quedarme tranquilo, verifiqué detenidamente el resultado.”
Esto parece algo típico de programadores, pero vemos que se da en todos lados (Newton y la manzana), la mente subconsciente sigue trabajando en el material ya recopilado, pero a veces solo falta darle un descanso al consciente para que el subconsciente se encargue de buscar y brindar esa idea que nosotros estando buscando no dimos.
Es normal que te frustres, pero hay que darle un respiro al cerebro realizando otra actividad, ¿O por qué no? Dormir, dudo ser el único que ha resuelto un problema de programación dormido.
Por ultimo te dejo un video que he grabado abordando este tema a más detalle: