La cura para la fatiga de Javascript y todas las demás fatigas

Aprenda sus fundamentos y nunca más se preocupe.

Nuevas herramientas me preocupan

Cuando aparece la brillante herramienta de JavaScript del día, a veces reacciono de forma exagerada.

aprender-o-perder-trabajo-1

Y después de 15 minutos de mi imaginación corriendo, la necesidad de explorarla se vuelve insoportable.

No importa qué herramienta, es la misma historia.

  • ¡Debo aprender esta tecnología!
  • ¡Necesito todas las ventajas en este competitivo mercado laboral!
  • Tengo que seguir siendo relevante, ¿verdad?

Debo aprenderlo

Bueno, sí, pero no.

Mis mayores nunca se preocupan

A veces, comparto este sentimiento con desarrolladores senior en la oficina y obtengo una reacción estándar de ellos.

otra-herramienta-entonces-qué-lol

Después de suficientes encuentros como este, comencé a pensar ...

¿Por qué la diferencia?

¿Por qué me abalanzo ansiosamente sobre la mejor herramienta de hoy, aparentemente condenada a repetir esto para siempre ...

tal vez-yo-pueda-aprender-antes-del-siguiente

Mientras mis mayores dejan pasar tranquilamente las tormentas de JavaScript, ¿recogen herramientas según sea necesario?

las personas mayores aprenden rápido

Es porque ven hilos comunes entre estas herramientas. Para ellos, incluso después de todos estos años, el panorama no es tan diferente.

¿De dónde provienen estos hilos comunes? Los fundamentos.

Todo está en los fundamentos

Los mejores desarrolladores que he conocido no se han visto afectados por la evolución de la velocidad de la luz de JavaScript. No están agotados por la fatiga de JavaScript porque abandonaron esa carrera.

no puedo fatigarme si

En lugar de aprender marcos para impulsar sus carreras, se enfocaron en los fundamentos y dispararon sus carreras.

Su marco favorito puede caer en picado algún día, y eventualmente tendrá que elegir otro.

Pero los fundamentos son imperecederos. Se remontan a los recursos informáticos de hace décadas. No importa la edad, estos principios todavía constituyen la base de la informática.

Este tweet con el que me topé lo resume perfectamente.

Leer artículos sobre informática de los años 50, 60 y 70 es como excavar en un sitio arqueológico y encontrar un destornillador sónico.

- - = fogus = - (@fogus) 4 de junio de 2019

Todos estamos construyendo sobre la base establecida hace mucho, mucho tiempo.

¿Cuáles son los fundamentos?

yoda-fundamentos

Esta no es una lista completa, pero quien la aborde se convertirá en un programador increíble. Te mantendrá ocupado durante muchos años.

  • Aprender múltiples lenguajes de programación
  • Algoritmos y estructuras de datos
  • Patrones de diseño
  • Anti-patrones
  • Arquitectura de la aplicación

Aprender múltiples lenguajes de programación

Los idiomas resuelven problemas de diferentes formas. Ninguno de ellos es perfecto, por eso tenemos tantos.

Si usa JavaScript, no se sienta cómodo aprendiendo C #. Si realmente quieres esforzarte, prueba Haskell.

Compare las soluciones que ofrece cada idioma. Cuanto más aborde, más rápido aprenderá cosas nuevas porque todas se basan entre sí.

Algoritmos y estructuras de datos

vamos a saltar algoritmos

A la gente le encanta odiar este tema.

  • "¿Cuándo necesitaré esto?"
  • "Esto es inútil".
  • "Los títulos de CS son una pérdida de dinero".

Puede que nunca los necesite, pero eso no hace que los algoritmos de aprendizaje y las estructuras de datos sean una mala inversión.

Como especialista en TI, parte de mí desearía poder regresar y tomar algunos cursos de informática, especialmente algoritmos y estructuras de datos. El poder que sentí después de aprenderlos fue asombroso. ¡Es como ponerse unas gafas que nunca supiste que tenías!

sé-árboles-binarios

El mayor beneficio, en mi opinión, es la mejora de las habilidades para resolver problemas.

La capacidad de calmarse, caminar hacia un cuaderno / pizarra y trabajar hacia una solución es un activo que le ahorrará innumerables horas de hackeo frustrado.

Antes de eso, galopaba hacia el editor como un vaquero de codificación clásico, me codificaba en una esquina y luego trataba de encontrar una buena solución.

Patrones de diseño

Del brillante libro de Addy Osmani: Aprendizaje de patrones de diseño de JavaScript

Un patrón es una solución reutilizable que se puede aplicar a problemas que ocurren comúnmente en el diseño de software ...

Estas soluciones probadas en batalla han resistido la prueba del tiempo. Aprenderlos le ayuda a escribir código que es más familiar y fácil de mantener para otros desarrolladores.

Puede que no te hayas dado cuenta, pero las pilas de JavaScript modernas aprovechan los patrones de diseño populares.

  • Los paquetes como Webpack y Parcel le permiten usar el patrón del módulo para separar JavaScript en archivos organizados.
  • Bibliotecas como RxJS y Redux usan el patrón Observer para enviar y recibir "notificaciones".
  • Bibliotecas como React-Redux y Recompose le permiten mejorar sus componentes, también conocido como patrón Decorator .

Anti-patrones

Si los patrones de diseño son tan buenos que deberíamos compartirlos, los antipatrones son tan malos que deberíamos advertir contra ellos.

anti-vs-patrones-de-diseño

Tomando nuevamente del libro de Addy Osmani, aquí hay algunos anti-patrones comunes de JavaScript.

  • Definición de muchas variables globales
  • Modificando el Objectprototipo de la clase
  • Utilizando document.write
  • Usando JavaScript en línea. Por ejemplo...
 Click Me 

Arquitectura de la aplicación

Aquí es donde los acrónimos se vuelven locos

  • MVC (Modelo-Vista-Controlador)
  • MVP (modelo-vista-presentador)
  • MVVM (modelo-vista-modelo de vista)
  • MVU (Modelo-Vista-Actualización)
  • MVI (Modelo-Vista-Intención)

Aquí tienes un ejemplo de MVC.

diagrama-mvc

Su núcleo común es separar sus preocupaciones . La mayoría de las aplicaciones tienen un modelo (datos) y una vista (UI), y es importante que no se comuniquen entre sí. Ahí es donde se encuentra el controlador y media su comunicación de ida y vuelta.

Resumen: las herramientas son increíbles ❤️

Una verdadera maravilla de la ingeniería de software. ¡Aumenta tu productividad aprendiendo y disfrutándolos!

Pero no olvide sus fundamentos.

  • Aprender múltiples lenguajes de programación
  • Algoritmos y estructuras de datos
  • Patrones de diseño
  • Anti-patrones
  • Arquitectura de la aplicación

Los dejo con un último tweet.

Los marcos son las hojas de un árbol enorme llamado Ciencias de la Computación.

Estudie el?, No solo el?, Para enraizar profundamente su base como desarrollador de software.

Muy pronto, conectará tantos puntos que la “nueva” tecnología ya no lo asustará.

- Yazeed Bzadough (@yazeedBee) 14 de agosto de 2019

Gracias por leer

Para obtener más contenido como este, visite //yazeedb.com. ¡Y hágame saber qué más le gustaría ver! Mis DM están abiertos en Twitter.

¡Hasta la proxima vez!