No es un impostor: combatir la fatiga frontal

Publicado: 2022-03-10
Resumen rápido ↬ En este artículo, David Berner comparte consejos sobre cómo evitar la fatiga. Una vez que estás completamente agotado, es muy difícil recuperar la pasión que tenías por lo que haces y por qué empezaste a hacerlo en primer lugar.

Hace poco hablé con un amigo desarrollador de back-end sobre cuántas horas paso codificando o aprendiendo sobre código fuera del trabajo. Me mostró un pasaje de un libro del tío Bob, "Código limpio", que compara las horas que los músicos pasan con sus instrumentos en preparación para un concierto con los desarrolladores ensayando el código para actuar en el trabajo.

Me gusta la analogía, pero no estoy seguro de estar totalmente de acuerdo con ella; es ese tipo de pensamiento lo que puede causar agotamiento en primer lugar. Creo que es genial si quieres avanzar en tu oficio y ampliar tu conjunto de habilidades, pero hacerlo cada hora del día no es sostenible.

La fatiga frontal es muy real. He visto varias publicaciones sobre la fatiga de JavaScript, pero creo que el problema se extiende más allá de ese lenguaje específico.

Para ser claros, esta no es otra diatriba sobre cómo todo está mal y todo avanza demasiado rápido: me encanta que la tecnología evolucione tan rápidamente. Igualmente, puedo apreciar cómo puede ser abrumador y ciertamente me he sentido avergonzado a veces.

Lectura adicional en SmashingMag:

  • Trucos sucios de los rincones oscuros de Front-End
  • Oda a las especificaciones de un desarrollador front-end
  • Cómo prepararse para una entrevista de trabajo de front-end
¡Más después del salto! Continúe leyendo a continuación ↓

Por lo que puedo decir, este es un problema de dos frentes .

La primera es que, como desarrollador front-end, cree que se espera que tenga todo lo siguiente en su arsenal:

  • HTML (escritura limpia, marcado semántico)
  • CSS (modular, escalable)
  • Metodologías CSS (BEM, SMACSS, OOCSS)
  • Preprocesadores CSS (algo como LESS, SCSS, PostCSS)
  • CSS moderno (Flexbox, Grid)
  • JS
  • JS moderno (ES6, mecanografiado)
  • Marcos JS (Angular, React, Vue [inserte el último aquí]
  • Metodologías JS (Programación funcional, OOP)
  • Bibliotecas JS (Inmutable, Ramda, Lodash)
  • Principios del Diseño Responsivo
  • Pruebas (TDD)
  • Marcos de prueba (Jasmine, Karma)
  • SVG
  • WebGL
  • Técnicas de animación
  • Accesibilidad
  • usabilidad
  • Rendimiento
  • Herramientas de compilación (Grunt, Gulp, NPM Scripts)
  • Paquetes de activos (WebPack, Browserify)
  • ecosistema NPM
  • Conocimiento de diferentes peculiaridades del navegador.
  • Metodologías ágiles
  • Control de versiones (generalmente Git)
  • Fundamentos del diseño visual
  • Habilidades blandas, gestión del tiempo.
  • Una comprensión básica de cualquier lenguaje de back-end que se esté utilizando.

Y además de eso, estás incursionando o mirando hacia cosas como:

  • trabajadores de servicios
  • Aplicaciones web progresivas (PWA)
  • Componentes web

La segunda es que tu trabajo diario probablemente no lo cubra todo o no te dé tiempo para aprenderlo todo, entonces, ¿cómo te asegurarás de tener todas las herramientas a tu disposición?

Escuchar términos como 'Aplicaciones web progresivas' puede ser bastante desalentador para los oídos de los desarrolladores. Las nuevas técnicas y tecnologías conducen a la sensación de fatiga: fatiga frontal.
Escuchar términos como "aplicaciones web progresivas" puede ser bastante desalentador para los oídos de los desarrolladores. Las nuevas técnicas y tecnologías conducen a la sensación de fatiga: fatiga frontal. (Credito de imagen)

Ahora, como consumidor, usted podría:

  • Suscríbase a un montón de diferentes boletines de desarrollo semanales
  • Rastrea tu feed de Twitter
  • Asista a una reunión semanal para ponerse al día con su equipo de front-end en el trabajo
  • Tenga un canal de Slack fuera del trabajo con un puñado de desarrolladores con los que también hable de negocios
  • Siga los tutoriales en línea (que con suerte no están desactualizados)
  • Use un sitio de capacitación de cursos de video como Frontend Masters
  • Compre libros de desarrollo web (que con suerte no estén desactualizados)
  • Asistir a reuniones
  • Asistir a conferencias
  • Asistir a cursos de formación

Como colaborador podrías:

  • Escribir blogs/artículos de revistas
  • Incursionar en hablar
  • ejecutar un pódcast
  • Contribuir a proyectos de código abierto
  • Ten tus propios proyectos paralelos

Recientemente descubrí que mi atención se dividía de tres maneras, estaba enfocando un tercio en escribir código, con auriculares escuchando a medias discusiones sobre código mientras chateaba en Slack sobre código. Decidí que ya era suficiente: todos los orificios estaban obstruidos con código y estaba mentalmente agotado.

Si bien eso es ciertamente en el extremo, estoy seguro de que otros de ustedes han experimentado algo similar. Además de todo esto, probablemente tengas un trabajo de tiempo completo, familia, amigos, pasatiempos. No es de extrañar que muchos de nosotros nos sintamos agotados y nos preguntemos si hicimos la elección de carrera correcta .

Algunos de mis compañeros front-end han expresado interés en empacarlo todo y cambiar el trabajo a uno donde puedan apagar a las cinco en punto. Pero una parte de mí piensa que este trabajo atrae a cierto tipo de persona y si lo desecháramos todo y nos convirtiéramos en agentes inmobiliarios, todavía querrías ser el mejor agente inmobiliario que puedas ser. Asistir a reuniones de agencias inmobiliarias y realizar un seguimiento de las tendencias de precios de la vivienda en su tiempo libre. Hace muchas lunas trabajé en finanzas y todavía estaba estudiando por las tardes y leyendo para convertirme en lo más hábil posible en el campo que elegí.

No estamos solos en esta disciplina, muchas profesiones requieren una gran cantidad de dedicación y aprendizaje fuera del trabajo. Tal vez lo que pasa con el desarrollo front-end es que la tecnología evoluciona tan rápido que parece que alguien sigue moviendo los postes de la portería. Parece que cada dos días recibo un correo electrónico que dice que la tecnología "XYZ" está muerta. Lo cual estoy seguro de que no puede ser cierto porque de lo contrario no nos quedaría tecnología.

El ecosistema está en un estado de cambio constante y creo que eso puede ser algo bueno. Personalmente, me encanta estar en un rol en el que puedo aprender constantemente, desarrollarme y esforzarme, pero eso no quiere decir que no me sienta abrumado a veces.

Con eso en mente, aquí hay algunas cosas que trato de recordar para evitar que mi cabeza explote, así como algunos consejos generales sobre cómo evitar la fatiga.

Estamos todos juntos en esto

Los desarrolladores que conozco, tanto en el trabajo como fuera de él, se encuentran entre las personas más inteligentes que conozco. Pero todos se sienten abrumados. La mayoría tiene algún tipo de lista de deseos de tecnologías que están tratando de aprender. Puede haber un puñado de personas que lo saben todo y están al tanto de todo, pero la mayoría de nosotros estamos exactamente en la misma posición.

Todos seguimos dependiendo de Google y Stack Overflow para pasar el día y tenemos demasiadas pestañas abiertas llenas de respuestas a preguntas relacionadas con la web. ¡No estás solo!

Siéntete feliz sabiendo que no eres un mal desarrollador solo porque aún no has probado lo que sea que estén usando los chicos geniales.

Sí, incluso las "celebridades web" están en el mismo lugar...

No hay forma de que puedas saberlo todo y los desarrolladores estrella de rock que sigues en Twitter tienden a ser realmente buenos en algunas áreas cada uno. Notarás que son las mismas áreas en las que son famosos por tener conocimientos. Nuevamente, habrá excepciones, pero son solo humanos como nosotros. :)

El síndrome del impostor es real y todos lo tenemos

Conozco a varios excelentes desarrolladores front-end que no solicitarán puestos porque se sentirían como un fraude si no conocen todos los requisitos de la descripción del trabajo. Para citar uno de ellos:

"El 90% de los JD que veo me hacen pensar "¡Argh, estoy tan atrasado!" De hecho, me molesta tanto que estoy pensando en quedarme en mi puesto actual y solo tratar de presionar para obtener más dinero. simplemente porque siento que "me he salido con la mía" aquí".

El hecho es que la mayoría de esas especificaciones de trabajo son una farsa. Mi amigo Bard armó esta gran imagen que muestra la diferencia entre lo que dicen las especificaciones de trabajo de front-end y lo que significan.

Anuncios de trabajo explicados
Anuncios de empleo explicados (vista previa grande) (Crédito de la imagen)

Solo recuerda, estará bien . Cada trabajo que he tenido me ha hecho sentir fuera de mi alcance al principio, pero eventualmente te acostumbras a sus herramientas y flujo de trabajo, aprendes y te conviertes en un mejor desarrollador para ello.

No tenga miedo de aprender en el trabajo, la mejor manera de adquirir nuevas habilidades es usarlas todos los días.

Si tienes el síndrome del impostor, lo más probable es que seas un desarrollador decente porque, de lo contrario, no serías lo suficientemente consciente de ti mismo para darte cuenta.

Obtenga sus fundamentos bloqueados

Es fácil distraerse con lo nuevo y brillante, pero si sus cimientos no son sólidos, lo más probable es que lo que está construyendo no resistirá la prueba del tiempo.

Como me dijo un buen amigo mío una vez:

"Centrarme en los fundamentos siempre ha sido mi mantra. Si puedes construir bien y resolver problemas, entonces eso es todo lo que importa, la forma en que los resuelves (las herramientas) ha cambiado y siempre cambiará".

Por ejemplo, cuando React se catapultó a la fama, siempre parecía estar integrado con ES6, y puse mi atención en esos cambios o adiciones al lenguaje en lugar de los matices del marco en sí. Una vez que React esté muerto y desaparecido, el conocimiento que obtuve al mantenerme al tanto del último Javascript de vainilla seguirá vivo. Puedes jugar con muchas de las características de forma nativa en Chrome para que no tengas que tirar de Babel y empantanarte en el infierno de dependencia para jugar con él.

No necesitas aprender todo

Esto es realmente clave. No creo que sean los nuevos marcos, bibliotecas y módulos los que nos están matando, es nuestra propia creencia de que tenemos que aprenderlos todos.

Con el aprendizaje, creo que la mejor apuesta es mantenerlo enfocado; en este momento, estoy profundizando en la programación funcional de JavaScript en ES6.

Hay muchas otras cosas en mi lista que me gustaría aprender, pero trato de no distraerme. Por ejemplo, me encantaría repasar mis conocimientos de accesibilidad, jugar con Polymer y sumergirme en algunas de las últimas técnicas de CSS como Grid, pero si empiezo a leer sobre demasiadas áreas diferentes a la vez, no retendré toda la información. Estas otras cosas no van a ninguna parte, me ocuparé de ellas cuando llegue a ellas.

Evite apresurarse para tratar de consumir todo sobre un tema determinado. Tómese su tiempo y asegúrese de entenderlo completamente.

Si es como yo, tendrá una lista en constante crecimiento, pero no tenga miedo de seleccionar elementos de ella. No vale la pena invertir tiempo en todo y debe tratar de reconocer qué vale la pena aprender y qué es probable que desaparezca en un par de años. Tomarse el tiempo para aprender patrones de diseño de programación y técnicas arquitectónicas siempre será más beneficioso a largo plazo en lugar de saltar al calor actual en la tierra del marco. Solo terminarás luchando para jugar al bingo de palabras de moda nuevamente un poco más adelante.

La mayoría de las empresas no utilizan Bleeding Edge Tech

Están surgiendo muchas cosas nuevas, la web está progresando a un ritmo asombroso, pero normalmente pasará mucho tiempo antes de que las empresas empiecen a adoptar estas nuevas tecnologías. La mayoría de las empresas esperarán a que una tecnología madure por un tiempo y la verán probada en el campo.

Angular se creó hace seis años y comencé a trabajar en una startup que decidió que era el marco para ellos hace tres años. Reactjs existe desde hace poco más de tres años y mi empresa actual comenzó a usarlo justo antes de Navidad. Estoy seguro de que muchos otros marcos han ido y venido en ese momento. Si hubiera saltado sobre todos ellos, me estaría volviendo loco.

En CSS land, Flexbox ha estado disponible desde 2010, ¡hace seis años! La compatibilidad con navegadores sigue siendo limitada. Comenzamos a usarlo en producción a principios de este año, pero no veo que se use mucho en otros lugares.

Mi punto es que no hay prisa por aprender todas las cosas, mientras que la tecnología puede moverse rápidamente, sus empleadores potenciales se están moviendo a un ritmo mucho más lento. No tienes que estar por delante de la curva, solo asegúrate de estar atento a su trayectoria.

Cuanto más aprendes, más descubres que no sabes, y eso está bien

Esto es totalmente normal. Cuando empiezas, no sabes lo que no sabes. Luego aprendes algunas cosas y decides que eres un genio. Luego, poco a poco, esa fantasía se deshace y empiezas a comprender realmente cuánto hay ahí fuera que no sabes.

Esencialmente, cuanta más experiencia obtienes, más profundo te adentras en el vacío. Necesitas hacer las paces con esto, de lo contrario te consumirá. En todo caso, este sentimiento debería darle la confianza de que va en la dirección correcta. Lo más probable es que en nuestra profesión elegida nunca puedas sentarte cómodamente en un trono construido a partir de todo el conocimiento de front-end.

No gastes todo tu tiempo libre aprendiendo

Es fácil sentir que está tan atrasado que necesita codificar y aprender cada minuto. Este es un boleto de ida a burnout-ville. Reserve algo de tiempo para desarrollar su conjunto de habilidades, vea si puede negociar algo de tiempo con su jefe para programarlo y pasar el resto del tiempo haciendo lo que ama.

He tenido algunas de mis epifanías de codificación en el gimnasio. El ejercicio es extremadamente importante tanto para la mente como para el cuerpo. Intente hacer al menos 20 a 30 minutos al día para mantener su mente alerta y ayudar a prevenir el agotamiento.

Tómese un tiempo para su familia y amigos: ¡trate de no hablar de negocios con ellos!

Es un mercado de desarrolladores

No se preocupe por encontrar un trabajo en este momento. En este momento estamos en una posición muy afortunada donde hay más roles que desarrolladores para llenarlos. No sé cuánto durará esto, ¡pero aprovéchalo ahora!

Puedes conseguir un trabajo sin saber todas las cosas. Descubrí que en las entrevistas que realicé, el 99% de las personas lo están culpando por completo.

En el peor de los casos, recuerda que hay oro en el código heredado. Si eres un desarrollador que ama las viejas formas, siempre habrá empresas atrapadas en la tecnología heredada que necesitan desarrolladores para trabajar en su software.

Conclusión

Espero que algunos de estos consejos hayan ayudado a mitigar algunas de las frustraciones que pueda estar sintiendo. Lo peor que puedes hacer es llegar al límite y quemarte por completo porque una vez que lo estás, es muy difícil recuperar esa pasión que tenías por lo que haces y por qué empezaste a hacerlo en primer lugar.

¡Feliz codificación!