8 hábitos que deberías evitar cuando desarrolles con Javascript

Mejor desprenderse hoy de ellos que mañana

Image for post
Image for post

English version: https://medium.com/@ger86/8-habits-you-should-avoid-when-developing-with-javascript-a39a5ca2fae6

Como todos sabréis Javascript se ha puesto de moda (creo que en este punto todos estamos de acuerdo). Esto ha supuesto un incremento en la demanda de ofertas de trabajo y la proliferación de “bootcamps” que prometen formar desarrolladores en apenas 6 meses.

Sin embargo, a medida que se comienza a profundizar en este lenguaje es habitual caer una serie de hábitos o tendencias de las que luego es difícil desprenderse (especialmente si se ha aprendido por la vía rápida pasando por alto algunos de los puntos más básicos e importantes). Es por ello que me ha parecido interesante escribir este artículo en donde hablaré de algunas costumbres que es mejor evitar si queremos convertirnos en buenos desarrolladores de este lenguaje. ¡Vamos a verlos!

1. Usar JQuery

Para los más noveles jQuery fue una librería que en los inicios del boom del desarrollo web jugó un papel muy importante en el ecosistema de Javascript. En un momento en el que los navegadores implementaban las especificaciones a su manera (saludos Internet Explorer!) jQuery ayudó a estandarizar bastantes cosas gracias a las abstracciones que proporcionaba, facilitó la forma en que se manipulaba el DOM gracias a sus “helpers” y proporcionó una forma sencilla de realizar llamadas AJAX. En resumen, no creo que nadie se lleve las manos a la cabeza si digo que sin jQuery la web no existiría tal y como la conocemos.

Sin embargo a día de hoy todas es ventajas que nos proporcionaba ya no son tales pues muchas de sus características ya pertenecen al estándar como por ejemplo fetch para realizar llamadas AJAX o las nuevas funciones para manipular el DOM, de las cuales ya hablé en su momento en este artículo:

Además, la aparición de React y demás librerías han resuelto de una mejor forma problemas como el control del estado de la aplicación por lo que incluso ahí jQuery ha perdido la partida. No en vano era muy habitual caer en la tentación de emplear los elementos del DOM como almacenes del estado lo que provocaba tener que escribir código bastante enrevesado para calcular el siguiente o anterior estado.

Por tanto y como dice el refrán, al César lo que es del César pero hoy ya jQuery es 100% prescindible.

Si queréis leer más sobre este tema os dejo a continuación un artículo del equipo de Github en donde comentan su decisión de eliminar jQuery de su código base:

2. No seguir aprendiendo

Es muy común que una vez que ya nos sentimos cómodos con un lenguaje dejemos de formarnos para poner en práctica todo lo que ya sabemos bien en el trabajo bien por nuestra cuenta. Además, esto se refuerza por lo difícil que es a veces continuar la formación dentro de una empresa: las cosas se necesitan para ya y nunca parece que haya tiempo para dedicarlo a seguir aprendiendo.

Sin embargo, si realmente te gusta la programación (y este consejo vale para cualquier lenguaje que uses) mi consejo es que reserves al menos un par de horas a la semana para aprender algo nuevo, leer un par de artículos sobre programación o incluso revisar el código fuente de alguna librería: te sorprenderías la de cosas que se aprenden mirando código escrito por otros desarrolladores.

Por supuesto también existen alternativas al aprendizaje “en solitario”. Por ejemplo, en las grandes ciudades existen multitud de MeetUps con charlas muy interesantes donde la gente está encantada de compartir conocimiento y sitios como CodeWars te proponen diariamente un reto en algunos de los lenguajes de programación más comunes para que lo resuelvas a la vez que te enseña las soluciones más ingeniosas.

En cualquier caso, sal de tu zona de confort y ¡sigue aprendiendo!

3. Descuidar tu salud física y mental

He jugado al ajedrez bastante tiempo a nivel amateur y una de las cosas que más me impactaron cuando profundicé en las vidas de los grandes maestros es la necesidad que tenían de estar en plena forma física, algo que a priori no es tan evidente dado el carácter mental de este deporte.

Por eso creo que deberíamos recordar más a menudo la frase mens sana in corpore sano ya que si queremos rendir al 100% de nuestras capacidades es muy importante estar en un óptimo estado físico. Esta necesidad se acentúa más si cabe en una profesión como la de desarrollador: pasamos tal cantidad de horas sentados frente al ordenador que a la larga parece inevitable la aparición de problemas como el incremento de espalda o dolores de espalda provocados por las malas posturas.

Mi consejo, reservad media hora al día para realizar algo de deporte, aunque sea de baja intensidad como pasear a ritmo rápido o subir escaleras. A la larga lo agradecerás.

Hasta aquí el componente físico. Pero, ¿y el mental? Hace poco salió a la palestra el debate de qué es un desarrollador 10x y una de las características que lo definían era sus pocas habilidades sociales. Sin embargo, descuidar este aspecto del día a día por ganar una o dos horas más de trabajo es un gran error en el que es muy fácil caer.

En los picos de trabajo es fácil estar largos periodos trabajando sin levantar la vista y sin hablar con nadie pero la mente humana también necesita despejarse, interactuar con otras personas y “desconectar”. Aislarte durante largos periodos puede acabar desembocando en problemas de ansiedad o depresión así que date un respiro. Seguro que el día te ha cundido más de lo que piensas y aprovecha para irte de cañas, al cine o practicar algún deporte en equipo.

4. No escribir tests

No escribir tests es uno de los principales errores especialmente cuando estamos aprendiendo o tenemos que desarrollar nuestro primer proyecto. De hecho, incluso es común prescindir de ellos en aplicaciones grandes en aras de reducir tiempos… hasta que comienzan a surgir errores con cada cambio realizado en el código.

Dicho de otro modo, pese a que en un primer momento puede parecer que escribir tests es una pérdida de tiempo y dinero, a la larga integrarlos en tu metodología de desarrollo supone un coste menor que prescindir de ellos en las etapas iniciales del proyecto. No en vano los tests son la piedra angular del Test Driven Development.

Entre otras cosas los tests permiten que el código sea mucho más mantenible, aportan una cierta seguridad de que todo funciona como se espera y permiten comprobar que los cambios introducidos no afectan a otras partes del código. Es decir, por mucho que el código parezca que se ejecuta sin problemas existen casos frontera (extremos) que sin una batería adecuada de pruebas seremos incapaz de localizarlos.

En el caso de Javascript existen unas cuantas librerías que permiten escribir tests de una manera sencilla por lo que si quieres investigar más te recomiendo consultar el siguiente artículo:

5. Aprender Javascript empleando frameworks

Una vez que has dado los primeros pasos con Javascript y el desarrollo web es muy tentador comenzar a trabajar con una librería o framework de esas que tanto suenan en redes sociales como React, Vue o Angular. Sin embargo, aprender Javascript en paralelo a interiorizar una librería o framework no me parece buena idea.

Mi recomendación es que dediques al menos un tiempo en aprender los conceptos básicos del lenguajes, familiarizarte con sus patrones y posteriormente des el salto a una librería pues de lo contrario es probable que estés renunciando a conocer ciertos elementos que las librerías ya solucionan de forma “automágica”. Esto es incluso más preocupante en el caso de Angular (el tema principal de los bootcamps) pues posee su propia implementación de muchos elementos(the Angular way) y emplea de forma intensiva librerías de alto nivel como RxJS que abstraen multitud de conceptos que, en mi opinión, es importante conocer.

Libros como You don´t know Javascript se leen de forma bastante amena y tienen multitud de ejemplos y explicaciones para que adquieras y comprendas los elementos principales de Javascript.

Por supuesto, una vez que comiences a sentirte realmente cómodo con Javascript comienza a aprender una librería o framework (mi consejo es que optes por React pues te permitirá seguir mejorando en Javascript a la vez que escoges una librería que goza de gran popularidad y que es la que actualmente marca el camino al resto), pues actualmente multitud de ofertas de trabajo piden conocimientos de React, Angular o Vue por lo que podríamos decir que manejar una de ellas es imprescindible si quieres progresar en el ámbito laboral.

6. No aprender buenas prácticas

Si realmente quieres progresar como desarrollador (en el el lenguaje que sea) es imprescindible que inviertas tiempo en adquirir conocimientos sólidos sobre código limpio, patrones de diseño y principios SOLID.

Este es el principal consejo que puedo darte y cuanto antes comiences con el aprendizaje de esta serie de conceptos más opciones tendrás de, con el tiempo, convertirte en un desarrollador senior.

¿Por qué tanto interés en aprender principios sobre código limpio? Mi principal argumento para defender esta postura es que estos conceptos y buenas prácticas son aplicables en cualquier lenguaje pues son comunes a cualquier problema que implique desarrollar código, de ahí su valor. Además, aportan una dosis extra de pensamiento abstracto tan necesario a la hora de desarrollar buen código y, si los has interiorizado bien, suelen dar como resultado un código mucho más limpio y sobre todo, mantenible.

Por tanto, del mismo modo que en el punto anterior te recomendaba profundizar en Javascript antes de comenzar a trabajar con alguna librería, ahora te quiero animar a que te familiarices con estos conceptos y trates de aplicarlos en cada aplicación que desarrolles: los beneficios tanto a corto como a largo plazo son enormes y te permitirán diferenciarte de otros desarrolladores que adopten la“ vía rápida”.

7. No comiences a trabajar directamente en proyectos grandes

Otro error habitual es terminar una formación o “bootcamp” y comenzar a trabajar para una gran empresa cogiendo proyectos complejos y que a menudo involucran desarrollos ya hechos.

Si quieres frustarte pronto creo que no hay mejor manera de hacerlo

¿Por qué? En primer lugar si todavía no eres un desarrollador senior es probable que no te de tiempo a terminarlo en plazo. Desarrollar una aplicación grande implica gran cantidad de elementos y no sólo el desarrollo de código: escribir tests, plantear una arquitectura escalable, aplicar patrones de diseño que simplifiquen la soluciones… Es decir, muchas cosas que considerar como para que un desarrollador junior se responsabilice de todas ellas.

Por el contrario, escoger proyectos pequeños te permitirá por un lado seguir aprendiendo y poniendo en práctica todos los conceptos necesarios para desarrollar aplicaciones sólidas y mantenibles y, por el otro, es una forma “rápida” de añadir elementos a tu portfolio de cara a realizar las entrevistas de trabajo con mucha más seguridad.

Otro consejo que me gustaría darte es que si tienes elección te decantes por proyectos que se encuentren en una fase temprana de desarrollo o directamente no hayan empezado. De este modo no te verás forzado a adquirir o trabajar con las malas prácticas de otros desarrolladores (y por desgracia creo que la probabilidad de encontrarte con código mal desarrollado y sucio son más elevadas que las de trabajar en un proyecto bien planteado).

Por tanto y de nuevo como dice el refrán, “vísteme despacio que tengo prisa”. 😄😄😄

8. No aprender algoritmos ni estructuras de datos

Seguro que llegados a este punto estarás pensando que hay multitud de elementos que aprender. Es cierto. Si quieres progresas como desarrollador no basta con conocer la forma de hacer las cosas sino que es necesario conocer la mejor forma de hacerlas.

Por tanto, a medida que aumentes tus aptitudes como desarrollador mi consejo es que reserves algo de tiempo en familiarizarte con las principales estructuras de datos y algoritmos que existen (los de ordenación suelen ser un buen punto de partida). No tiene por qué ser al principio (ya que tampoco la idea que quiero trasladarte es estar dos años formándote pues el mundo laboral por desgracia no espera) pero sí creo que deberías planteártelo como algo que hacer en el medio plazo pues tanto los algoritmos como las estructuras de datos representan uno de los pilares claves del desarrollo de software.

Conclusión

Y hasta aquí mi lista de malos hábitos de los que tienes que desprenderte cuanto antes cuando aprendas Javascript o cualquier otro lenguaje de programación. Podéis leer más sobre estos temas de los que he hablado en los siguientes enlaces:

Espero que te hayan resultado interesantes y que si estás comenzando tu carrera como desarrollador te sirvan para mejorar y reforzar todo aquello que estás aprendiendo.

¿Quieres recibir más artículos como este?

Si te ha gustado este artículo te animo a que te suscribas a la newsletter que envío cada domingo con publicaciones similares a esta y más contenido recomendado: 👇👇👇

Written by

Entre paseo y paseo con Simba desarrollo en Symfony y React

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store