
Ser un desarrollador de JavaScript es genial, ya que la necesidad de buenos programadores de JS crece constantemente en el mercado laboral. Hoy en día, hay muchos marcos, bibliotecas y otras cosas que se pueden usar en el trabajo, y en gran medida deberíamos estar agradecidos a las fuentes de código abierto para esto. Pero en algún momento, el desarrollador comienza a pasar demasiado tiempo en proyectos JS en comparación con todas las demás tareas.
Es muy probable que en el futuro esto conduzca a consecuencias desastrosas para su carrera, pero hasta ahora no se da cuenta de esto. Yo mismo cometí algunos errores en el pasado, que se describen a continuación, y ahora quiero protegerte de ellos. Aquí hay ocho errores de desarrollador de JS que pueden hacer que su futuro no sea demasiado brillante.
Le recordamos: para todos los lectores de "Habr": un descuento de 10.000 rublos al registrarse en cualquier curso de Skillbox con el código de promoción "Habr".
Skillbox recomienda: El curso de educación en línea para desarrolladores de Java .
Usando jQuery
jQuery ha jugado un papel muy importante en el desarrollo de todo el ecosistema de JavaScript. Inicialmente, JS se utilizó para crear presentaciones de diapositivas y varios tipos de widgets, galerías de imágenes para sitios. jQuery hizo posible olvidar los problemas de compatibilidad de código para diferentes navegadores al estandarizar el uso de niveles de abstracción y trabajar con el DOM. A su vez, esto ayudó a simplificar AJAX y los problemas con las diferencias entre navegadores.
Sin embargo, hoy estos problemas no son tan relevantes como antes. La mayoría de ellos se resolvieron mediante la estandarización, por ejemplo, la búsqueda y los selectores de API.
Los problemas restantes se resuelven con otras bibliotecas, como React. Las bibliotecas proporcionan muchas otras características que no están disponibles para jQuery.
Cuando trabajas con jQuery, en algún momento comienzas a hacer cosas extrañas: por ejemplo, usa elementos DOM como estados o datos actuales, y también escribe código terriblemente complejo solo para descubrir qué pasa con el estado DOM anterior, actual y futuro , además de garantizar una transición adecuada a las próximas condiciones.
Nadie prohíbe usar jQuery, pero tómese el tiempo para aprender más sobre alternativas más modernas (React, Vue y Angular) y sus ventajas.
Falla de prueba de unidad
A menudo veo personas que ignoran las pruebas unitarias para sus aplicaciones web. Todo va bien, hasta que la aplicación se bloquea con un "error inesperado". Y en este momento tenemos un gran problema, porque estamos perdiendo tiempo y dinero.
Sí, si la aplicación se compila normalmente sin mensajes de error, pero cuando se compila funciona, esto no significa que esté lista para usar.
La falta de pruebas es más o menos aceptable para aplicaciones pequeñas. Pero cuando los programas son grandes y complejos, son difíciles de mantener. Por lo tanto, las pruebas se convierten en un elemento de desarrollo extremadamente importante. En este caso, cambiar un componente de la aplicación no dañará el otro.
Comience a usar las
pruebas de inmediato .
Marcos de aprendizaje antes de JavaScript
Entiendo perfectamente a aquellos que, comenzando a desarrollar una aplicación web, inmediatamente comienzan a usar bibliotecas y marcos populares como React, Vue o Angular.
Solía decir que primero necesitas aprender JavaScript, y luego frameworks, pero ahora estoy convencido de que todo esto debe hacerse simultáneamente. JS cambia extremadamente rápido, por lo que es necesario adquirir algo de experiencia con React, Vue o Angular mientras aprende JavaScript.
Esto está comenzando a afectar los requisitos presentados para los candidatos para el puesto de desarrollador. Aquí, por ejemplo, es lo que encontré buscando en Indeed la clave "JavaScript".

La descripción del trabajo dice que necesitan conocimiento de jQuery y JavaScript. Es decir Para esta empresa, ambos componentes son igualmente importantes.
Aquí hay otra descripción que solo enumera los requisitos "básicos":

Y así, en aproximadamente la mitad de las vacantes que miré. Sin embargo, creo que la proporción correcta de tiempo para estudiar JS y frameworks es aproximadamente del 65% al 35%, y no del 50 al 50.
Renuencia a familiarizarse con el concepto de "código limpio"
Todo desarrollador novato debe aprender a crear código limpio si quiere convertirse en un profesional. Debe familiarizarse con el concepto de "código limpio" al comienzo de una carrera. Cuanto antes comience a seguir las disposiciones de este concepto, más pronto se acostumbrará a escribir inmediatamente un código limpio que sea fácil de mantener después.
Por cierto, para comprender los beneficios del código bueno y limpio, no es necesario que intente escribir un código incorrecto usted mismo. Sus habilidades serán útiles más tarde, durante el trabajo, cuando esté horrorizado por el mal código de otra persona.
Trabajo demasiado temprano en grandes proyectos.

Al comienzo de mi carrera, cometí un gran error: traté de asumir un proyecto importante cuando aún no estaba listo para él.
Puedes preguntar qué está mal aquí. Hay una respuesta El hecho es que si no eres de nivel medio y superior, lo más probable es que no puedas terminar tu "gran proyecto". Habrá demasiados elementos y cosas a considerar. Y no puede hacerlo si al comienzo de su carrera no desarrolló el hábito de escribir "código limpio", usar pruebas, arquitectura escalable, etc.
Suponga que todavía pasó mucho tiempo en este proyecto, no lo completó y ahora está tratando de pasar al nivel medio. Y de repente te das cuenta de que no puedes mostrar este código a nadie, porque no es muy bueno y necesitas refactorizarlo. Sin embargo, pasó mucho tiempo en este "proyecto del siglo", y ahora no tiene ejemplos de buen trabajo que se puedan agregar a su cartera. Y concede una entrevista tras otra a otros candidatos que pueden mostrar su trabajo, aunque no muy grande, en la cartera.
En cualquier caso, en el futuro tendrá que refactorizar, porque el código no es demasiado bueno y las tecnologías que utilizó no son exactamente lo que necesita. Como resultado, te das cuenta de que es más fácil reescribir todo desde cero que tratar de arreglarlo.
Por supuesto, todo esto se puede agregar a la cartera, pero el empleador potencial verá muchas deficiencias allí y llegará a conclusiones decepcionantes para usted.
Renuencia a estudiar estructuras de datos y algoritmos.
Puede discutir durante mucho tiempo sobre cuándo necesita comenzar a estudiar la estructura de datos y los algoritmos. Alguien propone hacer esto incluso antes de dominar JavaScript, alguien después.
Creo que no es necesario aprender esto en detalle al principio, pero vale la pena comprender los algoritmos, ya que esto proporcionará una comprensión básica del funcionamiento de los programas y cálculos de computadora.
Los algoritmos son una parte integral de cualquier cálculo y programa. En realidad, los programas de computadora en sí mismos son una combinación de un conjunto de algoritmos y datos estructurados de cierta manera, eso es todo.
Denegación de actividad física.

Para el desarrollador es muy importante practicar deportes. No soy entrenador, pero vi cómo cambia mi cuerpo, año tras año. Por lo tanto, puedo decirte a qué conduce la falta de ejercicio.
Mi primer trabajo fue bastante problemático por varias razones, y uno de los problemas fue precisamente el hecho de que en solo un año gané casi dos docenas de kilogramos. Luego estudié activamente JavaScript.
Si no practica deportes, corre el riesgo de aumentar de peso, y habrá muchas consecuencias negativas: obesidad, migrañas (incluidas las crónicas), presión arterial alta, etc. La lista de problemas es realmente interminable.
Aislamiento social

La familia y los seres queridos son importantes. Después de sumergirse en el aprendizaje de JavaScript y subestimar la importancia de su vida mental y emocional, corre el riesgo de deprimirse, irritarse, dejar de dormir normalmente y mucho más.
Conclusiones
Espero que algo de esto sea útil. Si te cuidas hoy, no tendrás que corregir los errores más adelante.
Skillbox recomienda: