Una muy buena manera de aprender (no restringido a JavaScript) es tener proyectos en los que necesite hacer algo con el lenguaje (en su caso JavaScript) que no ha hecho o no ha intentado.
He notado que mejoro mucho cuando tengo un proyecto y tengo que hacer algo con lo que realmente no estoy familiarizado o no soy tan bueno. El último proyecto requirió el uso de servicios web con php, algo que rara vez había usado, pero esto hizo que aprender y estudiar y tratar de mejorar, lo cual hice.
Así que mi consejo es intentar tener un proyecto en el que tengas que hacer algo con JavaScript que no tengas idea de cómo hacerlo.
Parece que estoy recibiendo muchos correos electrónicos en estos días haciendo una pregunta engañosamente simple: “¿Cómo puedo mejorar en JavaScript?” Lo que sigue son algunos pensamientos semi aleatorios sobre el tema:
Lo que me he dado cuenta de estas preguntas es que algunas cosas solo toman tiempo. Desearía poder escribir “Diez cosas que debes saber para hacerte increíble en JavaScript”, pero no funciona de esa manera. Los libros son fantásticos al exponerlo a principios y patrones rectores, pero si su cerebro no está listo para conectarlos con problemas del mundo real, no lo hará.
La cosa número uno que te hará mejor escribiendo JavaScript es escribir JavaScript. Está bien si te avergüenzas dentro de seis meses. Está bien si sabes que podría ser mejor si solo entendieras X, Y o Z un poco mejor. Cultive la insatisfacción y tema el día en que no esté decepcionado con el código que escribió el mes pasado.
Los encuentros con nuevos conceptos casi siempre son finalmente gratificantes, pero a corto plazo he descubierto que pueden ser francamente desmoralizantes si no eres consciente del panorama general. El primer paso para ser mejor en una cosa es darse cuenta de que podría ser mejor en esa cosa, e inicialmente esa realización tiende a implicar estar abrumado con todo lo que no sabe. El primer JSConf, en 2009, fue exactamente esto para mí. Me presenté ansioso por aprender, pero me sentí bastante engreído por mis habilidades. Me fui brutalmente consciente de lo pequeño de mi conocimiento, y fue una experiencia transformadora: ser bueno en algo implica buscar oportunidades para sentirse pequeño.
Una de las cosas más útiles en mi aprendizaje ha sido tener acceso a personas inteligentes que están dispuestas a responder mis preguntas y ayudarme cuando me atoro. Conocer a estas personas y mantener relaciones con ellas es un trabajo duro, y generalmente implica interactuar con ellas en la vida real, no solo en Internet, sino que los dividendos de esta inversión son insondables.
Para ese fin, asista a conferencias. Hable con los oradores y hágales preguntas. Escríbeles correos electrónicos después diciendo que fue un placer conocerlos. Suscríbete a sus blogs. Presta atención a lo que están haciendo y evangeliza su buen trabajo.
Recuerde también que las reuniones locales también pueden ser una buena exposición a nuevas ideas, incluso a menor escala. La ventaja adicional de las reuniones locales es que las personas que conocerás allí son … ¡locales! Es fácil mantener relaciones con ellos y compartir el aprendizaje con ellos en la vida real.
(Un comentario aparte: si su empresa no le pagará por asistir a ninguna conferencia, aclare cuán miope es la decisión de su empresa y comience a buscar un nuevo trabajo, porque su empresa no lo merece. Entonces, si puede, tosa el dinero e ir de todos modos. Como consultor independiente, todavía pude encontrar algo como $ 10,000 para gastar en gastos relacionados con viajes y conferencias el año pasado, y considero que cada centavo es dinero gastado en mejorar en lo que hago. Cuando escucho acerca de grandes compañías que no cederán ni una fracción de eso para un empleado que levanta la mano y dice “¡ayúdame a ser mejor en lo que hago!”, me enfurezco).
Asegúrese de seguir el rastreador de errores y el repositorio para un proyecto activo de código abierto. Lea los informes de errores. Prueba los casos de prueba. Comprende los commits. Admito que nunca he podido obligarme a hacer esto durante largos períodos de tiempo, pero trato de entrar en ciertos proyectos de vez en cuando porque me expone a códigos arbitrarios y conceptos que de otro modo no podría encontrar.
Lea la fuente de su biblioteca favorita y consúltela cuando necesite saber cómo funciona un método. Consulte la documentación cuando haya alguna parte de la fuente que no comprenda. Al elegir herramientas y complementos, lea la fuente y vea si hay cosas que haría de manera diferente.
Escuche a las comunidades y participe cuando tenga algo útil que agregar. Al acecho en una lista de correo o en un foro o en un canal de IRC, ayude a otras personas a resolver problemas. Si no eres un vampiro de ayuda, si das más de lo que recibes, los “ancianos” de una comunidad lo notarán, y serás recompensado con su disposición a ayudarte cuando sea importante.
Finalmente, los libros:
- JavaScript: The Good Parts, por Douglas Crockford. Me llevó más de un intento leer este libro no muy grueso, y no es evangelio. Sin embargo, es una lectura obligatoria para cualquier desarrollador de JavaScript serio.
- JavaScript elocuente, Marijn Haverbeke (también impreso). Este es otro libro que considero obligatorio; es posible que no lo lea directamente, pero debe tenerlo a mano. Me gusta tanto que compré la versión impresa y tuve la suerte de obtener una copia firmada de Marijn en JSConf 2011.
- Patrones JavaScript, por Stoyan Stefanov. Este fue el libro que me mostró que había nombres para tantos patrones que había descubierto simplemente hurgando con mi propio código. Lo leí en el vuelo a la Conferencia Boston jQuery 2010, y definitivamente es el tipo de libro que no habría sacado tanto en un año antes, cuando tenía mucha menos experiencia con el tipo de problemas que aborda.
- JavaScript orientado a objetos, por Stoyan Stefanov. Han pasado años desde que leí este libro, por lo que confieso que no recuerdo mucho de él, pero probablemente fue el primer libro que leí que me hizo pensar en estructurar el código JavaScript más allá de “obtener algunos elementos, hacer algo con ellos “paradigma de jQuery.
- ganar y realmente apreciar la estructura de objetos JSON : creo que profundizar en JSON y apreciar su simple pero poderosa expresión de datos realmente me ha llevado a querer trabajar en Javascript. Si no está familiarizado con JSON, puede identificarlo libremente como los diccionarios de Python, que proporcionan formas muy flexibles y potentes de expresar y estructurar datos. Cuanto más trabaje con JSON, más usará objetos Javascript, más se sentirá conectado y apreciará el lenguaje en lo que puede hacer por usted.
- Aprenda y domine las funciones anónimas y comprenda la elevación . Si no está familiarizado con estos términos, estará expuesto a ellos mientras aprende Javascript. Es importante (desde retrospectiva personal) no omitir estos, incluso si es confuso. Forman una parte clave para comprender cómo fluye el código Javascript y cómo puede usarlo para organizar mejor su proyecto y aplicación. Se encuentra un gran tutorial sobre elevación en el curso de Javascript en Codeschool (se requiere una suscripción paga).
- No confunda otros hábitos / prácticas de programación con Javascript. Un gran error aquí es tratar de imponer otras mejores prácticas de programación además de Javascript. En su lugar, tómese el tiempo para leer las mejores prácticas de Javascript (por ejemplo, Google) y estudie el código de otras personas para tener una idea de cómo estructurar y trabajar mejor con el código Javascript. Una falla común es tratar los objetos / clases Javascript de la forma en que los construirías en Python. Puede imitarlo, pero las clases de Javascript no funcionan de esa manera.