Cómo mejorar en JavaScript

El campo de JavaScript se está volviendo grande y, por lo tanto, el foco se está dividiendo. ¿Experto en escribir juegos? Aplicaciones? Sitios web? Código experimental? ¿Lado del servidor?

Siendo un experto en dos de esas disciplinas, puedo responder a esas.

Sitios web

  • Irónicamente, ningún JavaScript es importante para una degradación elegante.
  • JavaScript discreto, por lo que la página se carga rápido y se ve bien antes de la descarga y ejecución del código.
  • Velocidad de descarga de recursos.
  • Un conocimiento profundo del almacenamiento en caché del navegador, las cookies y el almacenamiento local, para manejar algún tipo de sesión entre vistas de página.
  • El diseño receptivo, aunque no JavaScript, es clave y esperado en el desarrollo de sitios web.

Aplicaciones

  • Conceptos generales de codificación, como OOP, SOLID y patrones. Sin embargo, una clave es que si bien hay una superposición de conceptos, no fuerce las técnicas de escritura segura (Java). JavaScript es dinámico, y hay mejores formas de manejar las cosas.
  • La arquitectura es primordial. MVC no es suficiente, y el uso de un marco no es suficiente.
  • Gestión de dependencias, utilizando AMD, CommonJS o ES6.
  • Módulos, singletons, constructores, utilidades.
  • Widgets, gestión del ciclo de vida.
  • Internacionalización, localización, accesibilidad.
  • Tematización (cambio, no diseño)
  • Separación de la lógica empresarial de la lógica de la interfaz de usuario
  • Código de unidad probada, y mejor si hay pruebas automatizadas adicionales

Sobre todo, código limpio, comentado y mantenible.

Además, JavaScript no es lo único. Conozco buenos desarrolladores de JavaScript que no conocen muy bien CSS, y realmente se nota en su trabajo. Dado que gran parte de JavaScript implica presentación, es absolutamente necesario un nivel experto de CSS.

Aprender cualquier tecnología es como cultivar una planta. Para ver resultados tienes que hacerlo con amor y pasión. Además, regarlo dos veces al día durante una semana sólida y luego olvidarse de eso no lo llevará a ninguna parte.

Lea los siguientes consejos y practique regularmente :

  • Aprenda a escribir software bueno y mantenible aprendiendo de otros buenos códigos. Eche un vistazo a proyectos populares de código abierto como jQuery o lodash. Descargue el código fuente o explore en GitHub y entienda cómo funciona. Estoy tratando de hacer eso regularmente también.
  • Aprenda cómo funciona JavaScript bajo el capó. Tomé “JavaScript: comprender las partes extrañas” de Tony Alicea y, aunque ya tenía experiencia en proyectos con JavaScript, ¡realmente llevó mi conocimiento a un nivel diferente! Ayuda a depurar y se siente bien saber qué está pasando f * # k …
  • Aprenda los conceptos básicos de un marco frontend decente como React.js, Angular.js, Ember.js o Backbone.js – ✓ compruebe, ya lo tiene 🙂
  • En lugar de aprender Java, iría con Node.js como tecnología del lado del servidor porque puedes escribir código JavaScript que hace que tus habilidades en este lenguaje sean más sólidas. Node.js se basa en el motor v8 de alto rendimiento de Google. Un buen comienzo es el tutorial “Node Hero – Comenzando con Node.js”. Solo necesita conocimiento de JavaScript como requisito previo.
  • Aprender haciendo: construye tu página de inicio.

Dado que desea convertirse en un desarrollador “de élite”, supongo que tiene un conocimiento justo sobre JavaScript,

por lo tanto, te sugiero que hagas lo siguiente:

  • clone la biblioteca popular subrayar js (jashkenas / subrayado) en su máquina
  • abra “test / index.html” en su navegador, todas las pruebas deberían estar verdes por ahora
  • elimine underscore.js de la raíz de su repositorio.
  • ahora actualice la página “test / index.html” y notará que todo se ha vuelto rojo
  • cree su propia versión de underscore.js y comience a implementar tantos métodos como pueda, hasta que la página de prueba se vuelva verde.

cada vez que complete la implementación de un método, asegúrese de regresar al código fuente original e intente ver / comprender la diferencia.

¿Hecho? ahora intenta superar el conjunto de rendimiento Lo-Dash (que es un clon de Underscore, con un mejor rendimiento), ¡por los métodos que has hecho!

Tengo dos sugerencias principales aquí:

Estudie y aprenda del código de otras personas

Primero, en todos mis años de desarrollo de software (más de 30 años), la herramienta de aprendizaje más importante para mí en todos los idiomas que he aprendido ha sido estudiar y aprender del código de otras personas.

Idealmente, desea exponerse a piezas de código bien escritas que ilustren buenos patrones de diseño, herramientas y técnicas que aún no haya visto antes. Pero, en realidad, puedes aprender de casi cualquier código, incluso de un código mal escrito (donde es más probable que aprendas cosas que NO debes hacer).

En el mundo de Javascript, elija cualquier biblioteca de terceros que le parezca útil e interesante, como jQuery, Angular, Underscore, Backbone, Modernizr, Async, etc. Escriba algún código usándola (la versión no minimizada). Luego, revise algunas de sus funciones principales en el depurador y vea cómo funciona el código y cómo está escrito. En cuestión de segundos, es probable que veas patrones de diseño y técnicas a las que normalmente no estás acostumbrado. Entiende esos. Pregúntese por qué lo están haciendo de esa manera y qué ventajas les está dando.

Ahora, construya una extensión para ese módulo. Comprenda cómo funciona y está diseñado el mecanismo de extensión.

Cargue una copia de la biblioteca en su editor de código y simplemente pase la página. Busque nuevos patrones de nivel superior a los que no esté acostumbrado. Cuando vea uno, deténgase y estudíelo y comprenda qué está haciendo y por qué.

Leer y responder preguntas de Javascript en foros

Luego, suscríbase a la etiqueta Javascript en StackOverflow y explore las preguntas y respuestas con esa etiqueta al menos una vez al día. Hay una gran cantidad de preguntas y respuestas allí. Es ruidoso (hay muchas cosas no muy útiles), pero también hay gemas y personas muy inteligentes que brindan respuestas. Y, por lo general, las malas respuestas serán rechazadas o eliminadas rápidamente, por lo que también hay un filtro útil en la información.

Debería poder hojear los títulos y encontrar varias respuestas muy útiles todos los días que le enseñen cosas que no sabía. Si realmente está comprometido con el aprendizaje, incluso puede comenzar a tratar de responder preguntas. Esto hará que tenga que intentar resolver el problema de otra persona y resolverlo de una manera que la comunidad piense que es un buen código. Y luego recibirás comentarios sobre cómo lo hiciste. Esto lleva más tiempo, pero si pones el esfuerzo, es muy productivo. Me parece mejor que leer libros porque cada pregunta es un problema real que alguien más tiene y que realmente estás tratando de resolver y obtienes algunos comentarios sobre cómo lo hiciste.

Esta no es una respuesta en sí misma, sino simplemente una adición a la respuesta de Pawan Chopra.


Para mejorar sus habilidades de JavaScript, recomendaría el libro (de código abierto) “You Don’t Know JS” de Kyle “getify” Simpson. Es famoso por su experiencia en JavaScript.
https://github.com/getify/You-Do

En estos explica las características del lenguaje con gran detalle. Una verdadera revelación incluso para el experto en JavaScript más experimentado.


Además de mostrar contenido simple, los navegadores pueden hacer mucho más. Desde el uso del giroscopio de un dispositivo para determinar su orientación hasta la creación de hermosos juegos en 3D. Las llamamos API web, y las bibliotecas que mencionó y similares no serán muy útiles para usarlas.

Personalmente, encuentro que la Red de Desarrollo de Mozilla es un gran recurso para todo tipo de documentación. No es oficial ni completo, pero está bastante actualizado y es legible para los desarrolladores.

Interfaces API web en MDN

Lo que personalmente me gusta hacer es ocasionalmente navegar a través de estos documentos solo para (re) descubrir API que puede haber olvidado u olvidado. Creo que conocer la existencia de una API es mucho más importante que saber cómo funciona, porque siempre puedes volver a buscarlo una vez que tengas un caso de uso.


Cuando haya terminado con el desarrollo front-end, puede pasar a back-end y / o generadores.

En este momento, el lenguaje de fondo más común es PHP, aunque recibe muchas críticas. Es inconsistente y de alguna manera extraña, pero es relativamente fácil de aprender y usar. Sin embargo, muchos marcos PHP han hecho un gran trabajo al mejorar el lenguaje y el flujo.
http://php.net/

Estoy viendo que Ruby (en Rails) se está volviendo muy popular entre los desarrolladores front-end, por lo que solo puedo suponer que es fácil de elegir para personas menos técnicas o es similar a JavaScript. No puedo decirte que este es el camino a seguir, ya que Ruby todavía está en mi lista de tareas pendientes.
http://rubyonrails.org/

También podría buscar en node.js. node.js es básicamente el motor JavaScript v8 de Google portado al escritorio, se eliminan todas las cosas relacionadas con la web y se agregan muchas API de red y E / S. Con el módulo Express, puede configurar fácilmente un servidor web node.js (medio extremo), por ejemplo, para las API REST. También puede usar Socket.IO para configurar el intercambio de datos en tiempo real entre el servidor y el cliente. Eso es realmente útil para juegos multijugador.
http://nodejs.org/
http://expressjs.com/
http://socket.io/

Genera es un mundo completamente diferente. En lugar de ensamblar una página HTML en tiempo real, las genera cuando realiza cambios. Básicamente, está generando un sitio estático una y otra vez, lo que hace que sea muy fácil para el servidor manejar una carga alta.
https://www.staticgen.com/


Si quieres desarrollar aplicaciones, ¡hay más para que aprendas! Hay dos formas de crear aplicaciones; utilizando lenguas nativas y no nativas.

Desarrollar usando idiomas nativos significa que tendrá que elegir dos o tres idiomas y puertos y aplicaciones cuando desee implementar en múltiples plataformas. Eso significa que es probable que tengas diferentes errores en diferentes plataformas y eso es un fastidio. A cambio, puede hacer cosas específicas de la plataforma y tener el mejor rendimiento. Java se usa para aplicaciones de Android, y para iOS debes aprender Swift u Objective-C.

Cuando prefiera idiomas no nativos, debe usar una herramienta para compilar ese idioma no nativo en aplicaciones como Phonegap o Telerik Platform . Estas herramientas le permitirán construir su aplicación en HTML / CSS / JS, aunque estoy bastante seguro de que hay más disponibles que le permitirán desarrollarse en el idioma que elija.
http://phonegap.com/
http://www.telerik.com/platform

JavaScript se ha convertido en el idioma más popular en muy poco tiempo y su declive en popularidad no parece estar cerca. Los desarrolladores de JavaScript se han convertido en los desarrolladores más pagados. Para convertirse en un programador de élite, el viaje es el mismo comienzo desde abajo y encontrar el camino hacia la cima. Si tiene un proyecto para usar sus habilidades de JavaScript, sería aún mejor

Con el advenimiento de Node.js en 2009, casi todos comenzaron a reconocer el poder de este lenguaje y ES6 lo hace más divertido de desarrollar en JavaScript. ¿Cómo puedes perderte este tren de JavaScript? Cualquier cosa que puedas imaginar puedes codificarla en JavaScript. Aplicaciones móviles, aplicaciones escalables en tiempo real.

Para aprender JavaScript, puede ir a la siguiente pregunta, puede seguir el siguiente enlace, que contiene todos los recursos que necesita Convertirse en un desarrollador profesional de JavaScript | Mapas de conocimiento.

Estos son algunos de los recursos incluidos en esa página.

Aprenda a codificar y crear proyectos para organizaciones sin fines de lucro: el recurso más útil si desea convertirse en un desarrollador de JavaScript. Tienen todo lo que quieres saber sobre cómo escribir código de alta calidad. FreeCodeCamp tiene su propio conjunto de tutoriales para practicar todo, desde HTML5 hasta CSS3 y JavaScript. Este sitio será útil no solo para convertirlo en un desarrollador profesional de Front End JS, sino que también tiene amplios proyectos para el desarrollo profesional de Back End JS. Este sitio está acompañado por su comunidad más útil en el Cyber ​​Space, donde puede preguntar cualquier cosa y obtener respuestas instantáneas. También puede emparejar el programa y resolver problemas en colaboración, así que no se olvide de visitarlo.

getify / You-Dont-Know-JS: no sabe que JS es una serie de libros de lectura obligada de Kyle Simpson (getify). Le informa todo sobre lo que se debe y no se debe hacer de JavaScript. La mayoría de las veces, algunos desarrolladores los reconocen como Backbone, Angular o Ember o JQuery (Backbone, Angular y Ember son marcos de javascript populares, mientras que JQuery es una biblioteca muy, muy popular), ¡mientras que un buen desarrollador de JavaScript también lo reconoce! JavaScript Guy. Por lo tanto, es importante tener una buena comprensión de JavaScript. De lo contrario, lo bueno que terminas escribiendo apesta. Lo bueno de esta serie es que es de código abierto y puedes leer todos los libros de forma gratuita, pero si quieres apoyar al autor, compra los libros porque amo a este tipo.

JavaScript elocuente: este es otro gran libro sobre el aprendizaje de JavaScript. Este es el mejor JavaScript para principiantes que existe. Le presenta todos los conceptos básicos de JavaScript y las habilidades para resolver problemas que necesita saber

Una guía de los conceptos básicos de jQuery: no desea aprender el uso de JavaScript por más del 80% de las compañías de Fortune 500 y un sitio web incontable. JQuery, la biblioteca de JavaScript más popular del mundo creada por John Resig, es una necesidad. Este es el recurso adecuado para aprenderlo.

Puede encontrar algunos otros recursos aquí también Cómo convertirse en un desarrollador profesional de JavaScript | Mapas de conocimiento

Gracias por solicitar mi respuesta a esta pregunta. Mejorar en JavaScript es un gran objetivo, y uno que todos los desarrolladores web deben esforzarse continuamente por lograr. Para cumplir con este objetivo, puede ser útil ser estratégico sobre lo que desea lograr y aprender. He descubierto que es importante recordar su razón para querer mejorar en JavaScript. Esto le permite volver a visitar su por qué si se atasca, y puede ser una forma poderosa de mantenerse motivado. Con eso en mente, ofreceré un proceso que puede usar. Es un marco muy general, que espero le permita conectar sus propios objetivos y seguir avanzando:

Paso 1: define por qué quieres mejorar en JavaScript. Con esto quiero decir, es útil recordar que JavaScript es un medio para un fin. ¿Qué te ayudará a ser mejor en JS? ¿Desea obtener empleo como desarrollador web? ¿O ya eres un desarrollador web que quiere perfeccionar su oficio? Definir su objetivo final determinará su próximo paso.

Paso 2: Determine lo que necesita aprender para alcanzar su objetivo. Digamos, por el bien de este ejemplo, que desea trabajar como desarrollador web. El siguiente paso es investigar las habilidades que necesita para ser contratado y hacer una lista de las habilidades. Los ejemplos para convertirse en desarrollador web serían la comprensión de nivel intermedio del lenguaje JS, la manipulación DOM, la biblioteca jQuery, el pensamiento algorítmico y algunos marcos del lado del cliente como Angular y React (si se busca front-end) y / o node.js (si persigue backend / full-stack).

Paso 3: Evalúa tus habilidades y adquiere los conocimientos necesarios. Continuando con nuestro ejemplo, supongamos que determina que necesita mejorar en el pensamiento algorítmico para pasar una entrevista de codificación. Luego investigará un poco y probablemente se inscribirá en un curso o una membresía de plataforma que lo ayudará a alcanzar este objetivo. Hay algunos buenos cursos sobre Udemy y desafíos a través de freeCodeCamp que pueden ayudarte a fortalecer este músculo.

Paso 4: Pon a prueba tus conocimientos recién adquiridos. Una vez que obtenga más conocimiento, es hora de ponerse a prueba. Si su objetivo es crear una aplicación web, ahora es el momento de probarla. Si continuamos con nuestro ejemplo anterior, ahora está listo para solicitar empleo.

Paso 5: vuelva a evaluar si no puede alcanzar su objetivo. Si no logra su objetivo al principio, no se preocupe. Puede tomar varios intentos conseguir un trabajo como desarrollador, crear una aplicación web, completar un curso, etc. Vuelva a visitar su razón para querer mejorar en JavaScript si se siente frustrado. El éxito radicará en ser capaz de descubrir lo que aún necesita aprender.

Paso 6: repita los pasos 4–5 hasta alcanzar su objetivo. A medida que avanza en este proceso, mejorará cada vez más en descubrir lo que le falta a su educación de JS. En este punto, estará familiarizado con los cursos y recursos que le serán más útiles. Luego puede continuar adquiriendo las habilidades y el conocimiento que necesita hasta que se cumpla su objetivo.

Me doy cuenta de que mi respuesta es algo general; sin embargo, con un tema tan extenso como JavaScript, creo que es útil ser estratégico sobre lo que quieres lograr. De lo contrario, es demasiado fácil desviarse. ¡Podrías pasar los próximos 10 años solo aprendiendo frameworks JS! Será mejor en JavaScript, sí, pero pasar tiempo en temas dentro de JS que no promoverán sus objetivos no será un gran uso de su tiempo. Entonces, eso es lo que espero que pueda sacar de esta respuesta: sea estratégico y determinado, continúe tomando una evaluación honesta de sus habilidades y vuelva a visitar su razón para querer mejorar en JS si se queda atascado.

La mejor de las suertes para usted: espero que pueda obtener el conocimiento y las habilidades que necesita con JavaScript y cumplir con los objetivos que le gustaría establecerse.

Es importante tener en cuenta que los marcos y las bibliotecas van y vienen. Como alguien dijo en un tweet, cada día nacen más marcos JS que personas. Primero, enfóquese en tener una buena comprensión del lenguaje en lugar de ir directamente a marcos sofisticados como Angular o React.

Conozca las características específicas de JS que generalmente causan confusión a las personas que provienen de otros idiomas, como cómo funciona realmente la palabra clave “this”, los cierres, la cadena de prototipos y el bucle de eventos. Aprender patrones orientados a objetos en JavaScript también es muy útil. Creo que este es un muy buen lugar para comenzar a aprender la mayoría de las cosas que acabo de mencionar: Curso de programación JavaScript orientado a objetos

Aprenda a usar Node.js y npm. Aprenda las nuevas características del lenguaje en ECMAScript 6 http://es6-features.org/ , especialmente las promesas, que resuelven muchos problemas en la programación asincrónica.

Consejo # 1: Comprenda ‘esto’

No me refiero a ‘esto’, como en JavaScript, sino a la palabra clave this. En otros lenguajes como C ++, C # y Java, esto se refiere al ejemplo de vanguardia de cualquier clase en la que se está utilizando. En los otros idiomas, es un concepto bastante estático y fácil de descifrar. En JavaScript, no es tan simple. Ya no es más simple que el precio de esto sea especial dependiendo del estado de las cosas, sin embargo, porque el desarrollador puede tener es algo que necesita que sea. En la ejecución fundamental de JavaScript, esto verificará con el objeto de ventana o el alcance mundial. Esto se debe a que el máximo código básico de JavaScript se está ejecutando dentro del alcance internacional.

Consejo # 2: Comprenda el alcance y la elevación variable

Considerada una de las mayores diferencias que JavaScript tiene de otros lenguajes 9aaf3f374c58e8c9dcdd1ebf10256fa5 es el concepto de alcance. El alcance describe la vida útil de una variable, características o casas con nombre dependiendo de dónde y cómo se afirma ese elemento. Algunos de los géneros familiares son alcance de bloque, alcance mundial y alcance de función. JavaScript tiene lo que se conoce como alcance léxico en el grado de función. Entonces, ¿qué sugiere eso?

Consejo # 3: Manténgase alejado del alcance internacional

Ahora que tiene una mejor comprensión de cómo funciona el alcance y esto funciona en JavaScript, si es posible, evite crear variables y funciones en el alcance mundial. Esta es una de las actualizaciones de depuración y rendimiento más simples, aunque a menudo desapercibidas, que puede realizar en cualquier aplicación.

Consejo # 4: deshazte de la jQuery Crutch

Aunque cité jQuery, esto podría aplicarse a cualquier biblioteca. La mayoría de lo que hace jQuery puede completarse fácilmente con el uso de JavaScript simple. JQuery proporciona soluciones para los problemas del navegador de pases, además de una excelente API fluida, pero esto se aplica más simple a las funciones complejas más grandes. Hay bastantes constructores que usan jQuery de manera más efectiva para el motor de selección a los objetivos en el DOM. Hay dos características que se le proporcionan a través del elemento de informe denominado querySelector y querySelec

Consejo # 5: siempre use ‘use estricto’

JavaScript no tiene un compilador, lo que significa que puede ayudarte a dispararte en el pie y luego no recibir ayuda sobre cómo restaurarlo. La única ayuda real que puede entregarse sin el uso de herramientas como JSHint es activar el modo estricto en sus archivos JavaScript.

Si bien realmente no hay una respuesta definitiva a esta pregunta, aquí hay algunos métodos que puede usar para desarrollar sus habilidades y crecer. Estos consejos no solo se aplican a JavaScript, sino también a otros idiomas.

  • No tengas miedo de desafiarte a ti mismo.
  • La mayoría de los desafíos implican aprender cosas nuevas; la mejor manera de mejorar es aprender esas cosas nuevas.
  • No te asustes por las funciones de aspecto complejo.
    • Había una vez que temía las soluciones que tomaban grandes cantidades de código y buscaba un enfoque más corto y “más fácil”. A menudo, estos grandes fragmentos de código son realmente fáciles una vez que los aprende. Una vez tuve miedo de enviar solicitudes GET, pero ahora es una segunda naturaleza.
  • No te rindas
    • Mientras escribía aOS, hubo varios puntos al principio en los que pensé que estaba pasando por alto y quería rendirme. Si hubiera escuchado estos pensamientos, aOS nunca lo habría sido.
    • Incluso si debe dejar de trabajar en un proyecto, es decir, no tiene tiempo o no sabe lo suficiente para hacerlo, nunca elimine el proyecto y siempre déjelo a un lado con la intención de volver a él más adelante. .
    • A veces la gente dirá en un foro que cierta cosa es imposible en un idioma dado. Nunca tome la palabra de una persona, busque alrededor de algunos y más para
    • Encontrar soluciones. También verifique la fecha de estas afirmaciones de imposibilidad, casi siempre están desactualizadas.

    Es tarde en la noche en este momento, por lo que la respuesta puede ser breve. También voy a responder otra pregunta muy similar pronto, e incluiré todo lo que me perdí aquí.

    Editar: Aquí está la mejor respuesta prometida: la respuesta de Aaron Adams a ¿Cuál es el consejo de Aaron Adams para principiantes que desean dominar JavaScript?

    Estoy de acuerdo con Greg Anynomous y quiero ampliar su respuesta.

    Se han enumerado muchos recursos de aprendizaje aquí (libros, APIS, conferencias, sitios web, etc.) y cada uno tiene su propia forma de aprender. Creo que las personas deberían usar estos recursos si eso es lo que les ayuda, pero en última instancia, la mejor manera es aprender haciendo.

    Para respaldar esto, voy a citar algunos líderes respetados en la comunidad:

    Alex Sexton entregó una de las mejores citas que he visto sobre este tema:

    “La única forma en que descubrí que puedo mantenerme actualizado es creando. Sigo una lista bien cuidada de personas en Twitter y leo blogs y sitios de noticias de programación, pero cuando se trata de eso , la única vez que realmente estoy aprendiendo es cuando lo estoy haciendo.

    Cuando quiera aprender algo, comenzaré un proyecto con él y, en el camino, descubriré las otras herramientas que necesito para tener éxito. Después de algunos intentos fallidos, normalmente puedo crear algo significativo (que generalmente descarto de todos modos) que me permite comprender los conceptos básicos y / o hacer comentarios rápidos y desinformados sobre cosas que no me gustan o no entiendo “.

    JSConf fue mencionado en este hilo: Angelina Fabbro dijo algunas cosas muy sucintas durante JSConf 2013 sobre el aprendizaje de JS. Ella lo logró con esta parte de su charla:

    “Experimenta imprudentemente, al código no le importa … Al código no le importa la edad que tengas, quién eres, de dónde vienes o algo así. Nadie necesita ver tu código hasta que lo lleves a la rama que necesita empujarlo, o hasta que necesite mostrárselo a otra persona para que revise el código. Así que experimente. Sea imprudente, como, haga cosas tontas solo para ver qué sucede. propósito.”

    Admito que he mirado los recursos de aprendizaje de JS más de lo que realmente he salido y he tratado de escribirlo. Cambié eso después de escuchar el JSConf de Angelina hablar en vivo y, hablando por mí mismo, estoy significativamente mejor por eso.

    Los recursos de aprendizaje son excelentes, pero debe haber un límite en la cantidad que usa. Son geniales y deberías usarlos, pero quedarte despierto hasta las 2 de la mañana tratando de resolver un problema de JavaScript en un proyecto personal ayuda mucho con el aprendizaje.

    Finalmente, el trabajo de un desarrollador web es resolver problemas con el código. Intentar, construir y fallar son los mejores para aprender a resolver problemas.

    El discurso de Angelina Fabbro se puede ver aquí:

    Y la cita de Alex Sexton se tomó del excelente Cómo mantenerse actualizado en el sitio de Front-End Technologies … que tiene algunos excelentes consejos de aprendizaje.

    En primer lugar, tener una base sólida. Sigo diciendo esto a todos tanto que empiezo a sentirme estúpido pero no puedo evitarlo. Haga lo que se dice aquí: Cómo aprender JavaScript La base adecuada le ayudará con los siguientes pasos.

    En segundo lugar, eche un vistazo a algunas bibliotecas inteligentes que transforman la forma en que controlamos el flujo del programa. Con la aparición de jQuery, estamos acostumbrados a tener ui primero para que el usuario tenga un elemento para desencadenar un evento al que podamos vincular la lógica de nuestro programa. Necesitamos dejar de hacer esto y avanzar hacia el pensamiento en términos de datos. De modo que cuando los datos cambian, sin importar el motivo, reaccionamos a ellos. Lea acerca de Reactive-Extensions / RxJS y Introducing Knockout, una biblioteca de interfaz de usuario para JavaScript y cuando los acepte , no puede dejar de preguntar cuál es la diferencia, que Steve Sanderson seguramente explica en la publicación del blog vinculado.

    En tercer lugar, entrar en términos con TypeScript . Es un lenguaje que se compila en JavaScript y se alinea con la especificación EcmaScript 6. No es un reemplazo del aprendizaje de JavaScript real, sino una herramienta adicional para mantenerse a prueba de futuro y poder construir código más fácil de mantener.

    Cuarto, dices que tu fondo está en HTML / CSS. ¿Por qué no construir también sobre esa base? Vea cómo cambia el juego con Web Components: http://webcomponents.org/ Especialmente Polymer es un buen proyecto para entender. Muestra cómo pequeños componentes reutilizables se pueden anidar juntos en un conjunto de herramientas que puede utilizar para construir grandes sistemas.

    Después de todo esto, debe tener suficientes antecedentes tecnológicos para comprender cómo se construye algo como The New Azure Portal.

    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.

    Debes estar muy concentrado cuando estés aprendiendo o implementando JS. JavaScript está creciendo día a día y debes estar siempre actualizado con él.

    Deberías ser bueno con:

    • Recorrido DOM
    • Eventos en JS
    • Cierre
    • Alcance
    • Contexto
    • Llamar de vuelta
    • Promesas
    • Cómo usar Ajax y API
    • Validación de formulario
    • OOP y muchas cosas más una vez que haya comenzado a codificar en JS.

    Buenos libros en línea:

    https://leanpub.com/understandin

    JavaScript elocuente

    Buenos recursos:

    JSbooks – Libros electrónicos gratuitos de Javascript

    Buen editor de código en línea de JS:

    Crea un nuevo violín

    Saqueador

    Video en línea de Jquery:

    30 días para aprender jQuery

    Una vez que tenga confianza con JavaScript, busque las próximas extensiones de JS como NodeJS , ReactJS , AngularJS , etc.

    ¡¡¡Todo lo mejor!!!

    Si estás buscando un arma secreta, odio decírtelo, pero no hay una. Se necesita trabajo. Toma tiempo. Va a tomar su atención y compromiso. Debes estar dispuesto a esforzarte o nunca mejorarás en ningún idioma.

    ¿Cuáles son los pasos prácticos?

    1. Construye tus propios proyectos para practicar. Esta es la clave. Puede leer todos los libros, tomar todos los cursos y escuchar a todos los expertos, pero si nunca practica realmente aplicar lo que está aprendiendo, tendrá dificultades.

    2. Leer. Encuentra libros en JavaScript y sumérgelos. Aquí hay una pareja con la que es bueno comenzar:

    a. JavaScript eficaz: 68 formas específicas de aprovechar el poder de JavaScript (serie de desarrollo de software eficaz): David Herman: 9780321812186: Amazon.com: libros

    si. JavaScript … por Reg “raganwald” Braithwaite [PDF / iPad / Kindle]

    C. La guía definitiva: David Flanagan: 9780596101992: Amazon.com: Libros

    3. Haz algunos rompecabezas de codificación para poner a prueba tus conocimientos.

    a. Codewars: entrena tus habilidades de codificación

    si. Resolver desafíos del código de programación funcional

    4. Inscríbase en Team Treehouse, Code Academy o cualquier aprendizaje ‘pequeño’. Tómelo pieza por pieza e interactúe con su comunidad en línea.

    Estas son solo algunas cosas que puede hacer. Aquí hay muchas otras respuestas con muchas otras ideas. Con los salarios de JavaScript con una tendencia de $ 125k / año, definitivamente será una habilidad que vale la pena aprender.

    Salarios JavaScript en San Francisco, CA

    Los acertijos de codificación interactivos le brindan el ciclo de retroalimentación ajustado que necesita para mejorar rápidamente su JavaScript.


    Rompecabezas de codificación bien diseñados:

    • entrenarlo para considerar casos de esquina a través de casos de prueba reflexivos
    • guiarlo más allá de su competencia, hacia la zona de desarrollo próximo
    • sutilmente lo aliente a aplicar métodos específicos o patrones de diseño


    Hay un montón de excelentes lugares gratuitos donde puedes ampliar tus habilidades de JavaScript utilizando rompecabezas de codificación:

    Hogueras
    Codewars
    Proyecto euler
    HackerRank

    Dedique unas semanas para resolver acertijos de codificación interactivos. Tu JavaScript mejorará rápidamente.

    Estas son algunas cosas que creo que un experto debería entender:

    • Alcance (estructura léxica) vs Cierre (función “recordando” alcance léxico) vs Contexto (“este” enlace de palabras clave, “nueva” palabra clave, enlace implícito a través del objeto literal, .apply () y .call ())
    • Lo que hace que OO JavaScript sea diferente de los lenguajes OO más tradicionales. (sistema de objetos vs sistema de clases, delegación vs herencia, “herencia prototípica”)
    • Flujo asincrónico, devoluciones de llamada, promesa
    • Características de ES6 +
    • Otras cosas que debe saber como elevación, patrones como módulos y expresiones de función IIFE o inmediatamente invocadas (anónimas y con nombre), declaración de función frente a expresión de función, creación de métodos prototipo.

    Puede ser útil (¡y divertido!) Jugar con JS en la consola de un navegador como Chrome o Firefox. Intenta jugar con .prototype, .__ proto__, .constructor, Objects.getOwnPropertyNames (), typeof, instanceof, etc. para reafirmar cómo son las cosas detrás de escena.

    Debe comprender los métodos Function.prototype: llamar, aplicar y vincular. Este es un gran recurso de MDN que debería darle más cosas para mirar (incluidos diferentes métodos de matriz como mapear, filtrar y reducir): objetos integrados estándar

    Todo lo que realmente necesitas es practicar. Intente comprender cómo funcionan las cosas y las diferentes formas en que puede implementarlas, así como señalar las ventajas / desventajas de esos enfoques.

    Creo que un ejercicio de buena práctica es hacer Katas a través de TDD usando algo como Jasmine. Además, investigue y comience a usar marcos y bibliotecas JS. Node.js es un buen servidor. Hay un montón de marcos JS que se pueden usar para crear aplicaciones de una sola página que son realmente ordenadas.

    ¡Espero que ayude! ¡Siempre hay cosas que puedes aprender, construir, optimizar y ampliar! Una vez que haya dominado JavaScript, es probable que haya hecho algunas cosas súper espectaculares con él. Siguiente paso: trascenderlo. 😉

    Hola, la mayoría de los alumnos comienzan con una copia pegando el código. El aprendizaje viene con la práctica. Debe dejar de copiar y pegar códigos a menos que intente aprender la lógica mientras lo hace. Muchas veces hay pequeños fragmentos de códigos que se repiten en un proyecto o en varios proyectos. Trate de pensar si ya ha logrado esto antes y trate de recordar en lugar de buscar soluciones en los motores de búsqueda. Hágase estas preguntas.

    ¿Cuál debería ser mi salida? ¿Qué entradas puedo usar? Lo que cambia la entrada a la salida.

    Por ejemplo, la salida es C. Sus entradas son A y B. Intente encontrar relaciones entre A, B y C. Con el tiempo, aprenderá a encontrar soluciones. La lectura no es útil a menos que esté listo para implementar lo que ha leído.

    Y para tu otra pregunta. cualquier marco MVC debería ser bueno. Investigue las diferencias entre Backbone, angular, react, etc. y vea qué se ajusta a sus necesidades y qué marco es fluido. Explorar diferentes idiomas le brinda la ventaja de poder comparar y luego decidir.

    A continuación, el aprendizaje de idiomas de back-end abre una puerta amplia para oportunidades de pila completa. También le ayuda a comprender mejor sus proyectos y puede expandirlos a una escala mayor con más funcionalidades. Es fácil perderse en la gran cantidad de idiomas, pero Ruby, PHP, Python y Java (más para aplicaciones de software en lugar de aplicaciones web) son los más utilizados en la actualidad hasta donde yo sé. También hay una base de datos (mSQL o mongoDB) entre los idiomas front-end y backend. Para que puedas aprender un poco de eso demasiado tarde en algún momento de tu carrera.

    Aprenda lo básico y luego cree algo usando JavaScript 🙂

    Aquí hay algunos consejos: –

    1. Piense en una idea pequeña pero buena que pueda implementarse utilizando JS.
    2. Piensa en las cosas mínimas que necesitas implementar.
    3. Comience a construirlo. Intenta seguir los estándares desde el principio.
    4. Resolverás problemas reales y en realidad estarás creando algo en el camino también.
    5. Una vez que haya dominado los conceptos básicos y tenga conceptos tan claros como un cristal, salte a los marcos JS front-end.
    6. Mejore el producto a medida que mejora sus habilidades de JS.
    7. ¡Haz algo bueno, cambia el mundo! 🙂

    También puede consultar algunos buenos libros de JS para comenzar. Ejemplo
    http://shop.oreilly.com/product/

    Espero que aprendas rápido y compartas esa hermosa creación con nosotros 🙂

    Tuve preguntas similares hace aproximadamente 2 años. Me gustaría escribir lo que he hecho para mejorar mis habilidades, no solo JavaScript, sino también como programador.

    • He leído un par de libros. Personalmente, creo que leer un libro es una experiencia completamente diferente y te ayuda a comprender muchos conceptos que no encuentras en blogs y artículos en línea. Algunos de mis libros favoritos son:
    • JavaScript profesional para desarrolladores web
    • Secretos de JavaScript Ninja
    • JavaScript de alto rendimiento
    • JavaScript Good Parts
  • Luego me suscribí a un par de canales en youtube. Como jsconf . Tienes la oportunidad de aprender mucho sobre lo que está por venir en JavaScript. Conduzco casi 1 hora al día, escucho estos canales o algunos podcasts. Es posible que no puedas entenderlo completamente, pero tienes una idea. Pude utilizar mi tiempo mientras conducía.
  • Estoy siguiendo a muchas personas en Twitter que han escrito libros en JavaScript o han escrito bibliotecas. Esto ayuda mucho. Cada vez que escriben un nuevo artículo, lo tuitean. Twitter es una excelente forma de compartir conocimientos.
  • Entonces comencé a leer cómo funciona el navegador. HTML5Rocks tiene excelentes artículos sobre cómo funcionan los navegadores. Es muy importante saberlo. Me ayudó mucho a escribir un buen JavaScript rápido y confiable. Puede ver algunos buenos recursos aquí Resumen de recursos internos del navegador web
  • También me uní a la comunidad local de JavaScript . Me ayudó mucho porque pude colaborar con otras personas de JavaScript. Pude contribuir en algunas de las fuentes abiertas.
  • Me encanta leer el código de otros e intentar pensar si puedo mejorarlo. Bifurco el código fuente abierto en github e intento leer el código y entenderlo. Comencé con bibliotecas JS muy pequeñas. Me encantó.
  • Me uní a la selección de códigos y me suscribí a las bibliotecas js que me gustan. Recibo notificaciones sobre nuevos errores que se informan en github. Si puedo resolverlo, creo una nueva rama y trato de resolverlo. Esto ayuda mucho.
  • Comencé a dar capacitaciones dentro de mi equipo y la comunidad local de JavaScript. Empecé a escribir un blog sobre JavaScript. El intercambio de conocimientos es muy muy importante.
  • También comencé a ir a foros y tratar de ver si puedo responder algo allí.
  • Hay muchas maneras de mejorar tus habilidades. También te sugiero que leas este artículo Aventuras en el desarrollo de JavaScript . En el artículo hay un enlace a alguna evaluación js basada en pruebas. Intenta hacer eso, te ayudará mucho. Espero que mi respuesta te ayude. Una cosa más ama JavaScript y ten fe en ello 🙂

    More Interesting

    Estoy estudiando informática y no me gusta la codificación. ¿Qué trabajos podría obtener con este título que no impliquen codificación?

    ¿Con qué frecuencia los estudiantes de pregrado en HYPSM tienen trabajos estándar durante el verano?

    ¿Cuál es el futuro para un probador manual?

    Cómo convencer a los empleadores de mi competencia independientemente de mi grado 2.2 de licenciatura

    ¿Cuál es el programa de estudios de los cursos B.Tech y BE en varios colegios BITS e IIT de varias ramas?

    ¿De qué manera la especialización en física te ayudará a comenzar una carrera en Deep Learning / AI?

    ¿Es absurdo perseguir la ley después de completar una maestría? ¿Qué rama del derecho sería adecuada para mí?

    ¿Cuáles son los requisitos previos para unirse a una empresa de análisis de datos como una nueva?

    ¿Cómo son las colocaciones para los estudiantes de MTech en IIIT-Delhi?

    ¿Cómo es la especialización en informática?

    Soy un graduado de ingeniería de EC y prefiero un trabajo en el campo de la electrónica. ¿Cómo puedo salir y seguir mi carrera?

    Estoy estudiando informática. Estoy interesado en los juegos. ¿Qué debo hacer después de mi graduación para buscar un trabajo en la industria del juego?

    ¿Cuál es el papel de un diseñador de UI / UX? ¿Necesita saber lenguaje de programación?

    ¿Cuál es el mejor centro de formación de VMware en Bangalore?

    Regreso a la escuela a los 50 años para obtener una licenciatura en Ciencias de la Computación después de una carrera en un campo diferente. Creo que podré aprender el material y hacerlo bien. ¿Mi edad me impedirá encontrar empleo?