¿Cuál es la mejor manera de aprender JavaScript?

Resulta que realmente amo Javascript, pero a menudo me han visto raro. Javascript se ejecutará en más computadoras y dispositivos de computadora (teléfonos inteligentes, SmartTV, etc.) que cualquier otra tecnología o plataforma en el mundo, sin modificaciones. Es decir, podría escribir algo en C ++ y quizás golpear todas las computadoras con Windows … después de una instalación … y quizás algunas actualizaciones de Windows. O tal vez escriba C ++ multiplataforma y golpee más computadoras pero no teléfonos inteligentes. O tal vez escriba algo de Java que se ejecutará en máquinas que tengan Java instalado y habilitado, que es menos de lo que podría esperar … y tiene que ser la JVM correcta o no funcionará … y así sucesivamente. Al final, Javascript los supera a todos. Durante un tiempo, Flash estuvo por delante de JS aquí, pero como ya sabrán, Flash ahora también está en declive. iOS (iPhone y iPad) lo prohíbe, IE10 lo deshabilita sin la aprobación de la aplicación por parte de Microsoft, y algunos teléfonos Android no lo ejecutan. Todos estos dispositivos ejecutan Javascript sin instalar nada adicional.

Con Javascript, puede escribir software sorprendentemente complejo y terminar con algo que se ejecuta en cualquier navegador hoy en día: más del 99.9% de cobertura. Si te gusta la codificación porque quieres que las personas puedan usar tu trabajo, es una cobertura increíble y algo a lo que ningún otro lenguaje o tecnología se puede acercar. En el caso de Chrome, incluso puede escribir Extensiones de navegador en el mismo Javascript y crear aplicaciones basadas en Chrome o hacks de sitios. Y, por supuesto, con Node.js, ASP / Jscript y otros enfoques de Javascript del lado del servidor, incluso puede escribir el lado del servidor de su aplicación web en … más Javascript.

A las personas que me ven como extraño por amar Javascript, no les gusta porque JS en sí es extraño, y tienen toda la razón. Es un lenguaje extraño con tipos detrás de escena pero sin tipos explícitos, tipeo de patos, un espacio de nombres global desordenado, cobertura limitada de la biblioteca, trucos raros para usarlo de manera eficiente, y para al menos codificadores novatos, sin métodos o propiedades privadas.

Admito que algunos de estos son problemas reales, y hay varios movimientos en marcha para abordarlos, algunos de los cuales ya están disponibles en el lado del servidor. Pero algunas de estas desventajas percibidas son, en mi opinión, grandes ventajas, creo que el mundo de la programación está atrasado. En particular, en mi opinión, casi nada debería ser privado, y sin embargo, cada curso CS101 comienza enseñando a los niños algo de Java donde cada variable que declaran es privada. Consideremos a dónde lleva eso.

A menudo, las innovaciones más convincentes en software las escriben codificadores novatos que intentan resolver un problema. Muchas de las mejores herramientas no están escritas por alguien que aprende un idioma durante 10 años y luego se encuentra con el problema perfecto para resolver con sus habilidades. En cambio, alguien que apenas ha codificado lidia con un problema molesto durante 10 años, se harta y aprende el idioma suficiente para ir y arreglar con lo que está luchando. El resultado es que gran parte del código más útil en el mundo de código abierto simplemente no está bien escrito, pero debes admitir que es muy útil, incluso si está estructurado de manera ofensiva.

A menudo, este software increíblemente útil tiene errores. Me encontré con un error de este tipo en una biblioteca de fechas ExtJS en un proyecto, donde ciertas fechas de un formato específico se analizaron incorrectamente. Todo lo demás era correcto al respecto, pero este caso de borde estrecho estaba mal y el cliente se había dado cuenta: no podíamos dejar el error allí. El error estaba en una sola línea de código enterrada en aproximadamente 1000 líneas de clases y funciones. Reescribir todas las funciones de manejo de fechas de ExtJS sería un movimiento doblemente malo: si se publicaran actualizaciones, tendríamos que separar las actualizaciones de la parte de la fecha o perder nuestras correcciones, dejando la aplicación en el pasado. Y perderíamos mucho tiempo y esfuerzo (para el cliente: dinero) arreglando un error de fecha muy limitado.

Javascript al rescate. Debido a que las propiedades y los métodos en este código de formato de fecha ExtJS no eran privados (porque los codificadores que lo escribieron eran novatos resolviendo un problema, no expertos en JS), pude usar parches de mono para sobrescribir solo una propiedad y método dentro de la fecha formatear objetos que estaban en uso en nuestra aplicación, sin modificar la fuente ExtJS. Los parches futuros para ExtJS se aplicarían sin complicaciones, y si el error se corrigiera alguna vez, podríamos eliminar el hack.

Comparemos eso con Java, C ++ o C #, que la mayoría de los programadores que ven JS como extraño preferirían. Primero, probablemente tenga un archivo DLL o .class compilado que necesito descompilar, no es fácil trabajar con él. Si tengo suerte, tengo acceso a la fuente o puedo usar una herramienta Reflection para volcar dicha fuente. Pero incluso entonces, tengo que modificar esa fuente. Java no tiene tipo de pato, y los codificadores de Java tienen la actitud colectiva de que si declara una variable, debe ser privada, a menos que haya una buena razón para que se declare lo contrario. C ++ y C # tienen limitaciones técnicas y culturales similares. Si al menos lo declararan protegido, podría haber subclasificado la clase problemática y haber solucionado el método en la subclase. Pero, en cambio, generalmente me manguito. La única solución para este error sería reemplazar toda la biblioteca, ya sea reescribiendo todo yo mismo o modificando la fuente y bloqueando la aplicación en el pasado.

Entonces, Javascript es increíblemente útil, y creo que tiene algunas ventajas interesantes sobre otros idiomas que extraño cuando los uso. Si fuera por mí, mis actualizaciones adoptarían una sintaxis de tipo explícito opcional, acortarían la sintaxis para declarar una función (“sintaxis lambda”) y adoptarían una sintaxis / protocolo explícito “requiere / usa”. La mayoría de los otros cambios generales propuestos por aquellos con un fondo de Java … probablemente lo prescindiría.

Entonces, sí, recomendaría aprender Javascript, creo que es un excelente lenguaje y un conjunto de plataformas. Encantado de responder preguntas más específicas.

Has elegido un gran lenguaje para aprender en 2016. JavaScript está creciendo en popularidad como loco y, según la encuesta de desarrolladores de Stack Overflow 2016, es el lenguaje de programación más utilizado entre los desarrolladores front-end, full-stack e incluso back-end.

Fuente: desbordamiento de pila

Hay muchas posiciones disponibles para desarrolladores de JavaScript …

Fuente: Codementor

… y estarás ganando dinero ca $ h.

Fuente: desbordamiento de pila

Pero, ¿cómo pasas de ser un novato total a obtener tu primer trabajo de programación (JavaScript)?

Una de las mejores cosas de la programación de aprendizaje en 2016 es (como lo atestiguan todas estas respuestas) la abundancia de recursos a menudo disponibles gratuitamente. Pero si está aprendiendo a programar por su cuenta, esto también hace que sea muy difícil saber por dónde empezar y cómo seguir progresando.

Hay muchos caminos diferentes, pero estos principios básicos son cómo pasé de ser un programador principiante total a conseguir un trabajo un año después como ingeniero de software (principalmente JavaScript y PHP).

1. Realice tutoriales, pero tenga en cuenta que eventualmente necesitará construir algo desde cero (y no en su navegador)

Hice tutoriales de HTML, CSS, JavaScript, jQuery, etc. en CodeAcademy y pude pagar una suscripción de CodeSchool de mi empresa anterior, lo cual fue bastante relajado. Estos son realmente útiles para aprender los conceptos básicos y acostumbrarse a la sintaxis, pero después de un tiempo, los encontré menos convincentes y útiles de lo que eran cuando recién comenzaba. Es como si estuvieras aprendiendo francés, haciendo un montón de ejercicios de gramática y aprendiendo vocabulario. Probablemente podrá recitar algunas frases y realizar algunas tareas básicas, pero eventualmente, tendrá que aprender a usarlas en la naturaleza.

Por eso deberías …

2. Construye cosas, pero ten un objetivo de aprendizaje cada vez

¡Construye cualquier cosa! Construye una página que tenga el nombre de tu gato. Dale estilo a esa página para que el nombre de tu gato se vea más elegante. Agregue un poco de JavaScript para que aparezca una alerta si hace clic en el nombre de su gato. Crea una cuenta de Github y lleva ese trabajo a un repositorio y páginas de Github para que todos puedan ver lo genial que es tu gato.

Lo que digo es que deberías construir cosas, incluso si es feo y se rompe y nada funciona (al principio), porque probablemente aprenderás mucho más en el proceso de lo que harías solo haciendo tutoriales, especialmente cuando ‘ Repasar las primeras etapas y tener algunos de los bloques de construcción básicos (HTML / CSS / JavaScript) de la web inactiva.

Una de las mejores cosas de escribir tus propias aplicaciones es que eventualmente tienes algunos proyectos geniales para mostrarles a tus amigos. La programación no es fácil, lo que hace que sea realmente fácil renunciar (especialmente al principio), por lo que tener proyectos que hayas creado desde cero para presumir es un gran motivador para continuar, incluso si no es perfecto.

La clave, sin embargo, es aprender algo nuevo cada vez. Antes de comenzar un proyecto, tenga un objetivo en mente sobre lo que quiere aprender o mejorar su conocimiento, y asegúrese de desafiarse a sí mismo y crecer como desarrollador, en lugar de hacer solo lo que ya se siente cómodo.

3. Sumérgete

Para recuperar la analogía de aprender un idioma extranjero (¿puedes decir que fui profesor de idiomas antes de ser ingeniero de software?), Personas que se sumergen en un idioma viviendo en un país donde se habla o yendo a una escuela de inmersión. se volverá mucho más competente, mucho más rápido que la persona promedio que aprende un idioma extranjero solo o solo en clases. Eso se debe a que te ponen en una posición en la que te obligan a usar el idioma para comunicarte, e incluso si no eres bueno al principio, eventualmente lo serás porque no tienes otra opción.

El fracaso da miedo y el miedo a parecer estúpido puede paralizarlo cuando está aprendiendo porque puede evitar que haga el tipo de preguntas que realmente debería estar haciendo. Sumérgete en la habilidad que estás aprendiendo, ya sea de forma consistente y frecuente yendo a codificar reuniones de coworking, hackatones, obtener un título en ciencias de la computación o ir a un campamento de programación, te ayudará a superar las cosas difíciles, superar el miedo al fracaso y comenzar a convertirse en un mal programador.

Mi experiencia inmersiva fue dejar mi trabajo e ir a la Escuela Flatiron, lo que ayudó a llenar los vacíos en mi conocimiento al aprender a través de los pasos 1 y 2 anteriores y me permitió programar todo el día, todos los días, durante 3 meses en compañía de algunos de las personas más inteligentes y comprensivas que he conocido.

Lo importante es programar todo lo que pueda, y si puede ponerse en una situación en la que lo necesite, mejorará muy rápidamente.

4. ¡Nunca dejes de aprender!

Por mucho que ciertos fanfarrias ególatras hayan ganado popularidad en los últimos años, la humildad (contrarrestada con confianza) sigue siendo el sello distintivo de las personas exitosas. Las personas que buscan ingresar a la programación deben ser muy conscientes de que no hay una cantidad limitada para saber en la disciplina porque las tecnologías, los lenguajes, los marcos, etc. están en constante evolución, crecimiento e invención. Es un maratón, no un sprint.

Como desarrollador bastante nuevo, todavía tengo mucho que aprender, pero estoy tratando de mejorar a diario empujándome en el trabajo, leyendo Hacker News todos los días, trabajando en proyectos paralelos, leyendo libros y blogs sobre temas que quiero mejorar. comprensión de, etc. Para ser un buen ingeniero de software, solo necesita mantener la curiosidad, seguir aprendiendo, seguir presionando y nunca asumir que lo que ya sabe es lo suficientemente bueno.

———-

Esperemos que estos consejos combinados con los excelentes materiales proporcionados por otros comentaristas lo ayuden a aprender JavaScript de la manera más rápida y agradable posible.

¡Buena suerte!

Todo lo que necesita es Pasión, con algo de locura y hambre de aprendizaje para implementar las cosas a su manera.

Aprendí lo básico, la creación de prototipos y otras cosas en 3 días. Creo que la historia puede inspirarte.
Todo comenzó cuando quería convertirme en Hacker (sí, no se correlaciona, pero sigue leyendo), así que lo que me fantaseaba eran los sitios web geniales de Hackers, por lo que finalmente decidí que ser la primera prioridad de Hacker es aprender Web Dev & Diseño. No pertenezco a una familia de clase alta, así que no había forma de tener Internet en casa para comenzar a aprender en ese momento, tenía Pentium-4 Pc en casa, las bibliotecas escolares ni siquiera tienen estas cosas.
Entonces, una buena mañana, lo que hice fue iniciar mi sistema (Windows Xp, sí, tuve un arranque dual con BackTrack ahora Kali Linux) ir a Buscar y busqué * .js | * .html, todos los archivos del sistema escritos en Javascript y HTML salí, abrí el primero, no obtuve la sintaxis, me parece mágico, ni siquiera sabía cómo ejecutar ese archivo, así que como un idiota seguí haciendo doble clic en ellos, lo que siempre arrojó un JS Error de script de Windows. Fue un fracaso, pero cuanto más leía los archivos, más familiarizaba con las sintaxis, anteriormente había trabajado en VB, por lo que desde la sintaxis lo que uso para comprender es la disciplina del lenguaje. Y luego, un día, el amigo de mi hermano mayor me dio la versión sin conexión de W3Schools.

Pasaron más días y me estaba frustrando más con mi naturaleza inferior / cobarde de No pelear para regresar, y un día todo se rompió, fue la mañana del 2 de mayo de 2010 cuando encendí mi sistema, me desafié a no correr. hasta que pueda aprender todo lo que se necesita para validar un formulario, cargando un Iframe y un poco cerca de los conceptos de Ajax (solo sabía los nombres). Mi madre estaba fuera de la ciudad esa vez, solo estábamos mi hermano y yo en casa, así que tenemos que cocinar nuestra comida por nuestra cuenta para esos días. Gracias a mi hermano por cocinar toda la comida y entregarla directamente en mi escritorio para Esos 3 días. Apenas tomé una siesta de 4 horas en ese lapso de 3 días, había un montón de pestañas y ventanas abiertas, una para buscar en el directorio de W3School como referencia, una para buscar en todo el sistema, 2 navegadores, Internet Explorer y Firefox, pares de bloc de notas (No sabía sobre Notepad ++, Sublime en ese entonces) y estaba aprendiendo CSS, HTML y Javascript en paralelo, sé que suena loco y confía en mí, me parece lo mismo cuando miro hacia atrás. Al final de 3 días, aprendí todo lo que marqué al principio (excepto Ajax) Pero estaba feliz, fui al dormitorio, me caí boca abajo en la cama y me quedé dormido porque no sé cuánto tiempo.

A partir de ese día, comencé a desafiarme a mí mismo en pequeños terrenos para aprender una pequeña implementación todos los días. Sé que esta no era la forma correcta, pero en ese entonces tenía pocos recursos, hasta ahora he cometido innumerables errores en mi procedimiento de aprendizaje y he aprendido mucho. Lenta y gradualmente, ahora he llegado a un lugar donde puedo codificar cosas como la agrupación en clústeres y la construcción de plataformas distribuidas utilizando NodeJs, programación de servidores, bibliotecas front-end, plataformas de evaluación comparativa, cosas de nivel de sistema y mucho más.

Por mi propia experiencia, te sugiero lo siguiente:

  • No se dirija directamente a jQuery, AngularJS, Backbone o cualquier marco, ¡es una trampa!
  • Comience con el corazón de un lenguaje de programación, tipos de datos y métodos incorporados. Mozilla Developer Network es un gran recurso y me ayudó mucho y, de hecho, también me atrajo a Open Source y me convertí en un Representante de Mozilla.
  • Todos los días Cree su propio problema o visite cualquier sitio web aleatorio, vea cualquier implementación pequeña de JS en el sitio web, lea el código (si no está minimizado, vaya a cualquier ejemplo en línea u otro sitio web) intente imitar esa cosa. Pero recuerde que este proceso nunca debe terminar. El que solía hacer era un área de texto de expansión automática (la que Facebook tiene para que escriba el estado) y luego, cuando terminé, intenté imitar lo mismo con un contenido editable div (conocerá en el proceso de aprendiendo lo que es)
  • Puede utilizar las bibliotecas en primer lugar, pero el objetivo debe ser aprender cómo funcionan y acercarse para construir una imitación de ella y luego optimizar su biblioteca de una mejor manera.
  • Abra Firefox, abra la consola en él (CTRL + Shift + I) o desde Menú, escriba window. Si ve la lista completa de nombres y variables de métodos, asegúrese de aprender qué hacen cada uno de ellos.
  • Asíncrono: Otra característica central de JS, más adelante, sabrá esto cuando comience con Ajax.
  • Para un principiante o un intermedio, los servidores MDN (Mozilla Developers Network) tienen todo el propósito, es simplemente increíble.
  • Cuando haya terminado con los conceptos básicos hasta AJAX y Async, suba a las arquitecturas MVC, conozca el concepto, busque algunos ejemplos y luego comience con cualquier biblioteca (no importa cuál elija, el objetivo final) es aprender), no juzgues nada, es una fase de aprendizaje.
  • Experimenta, rompe cosas y encuentra tu camino por tu cuenta.
  • Cuando creas que tienes suficientes fundamentos, entonces pasa a probar NodeJS, confía en mí, no es nada, solo un código javascript respaldado con bibliotecas incorporadas para hacer poco más de lo que no puedes lograr a través de un entorno JS de navegador.
  • Después de esta etapa, asegúrese de escribir una biblioteca propia cada semana, no importa lo que vaya a ser, cualquier cosa que pueda usar en su propio proyecto reemplazando las bibliotecas que usó antes (tal vez una característica minimalista, todo eso requiere), luego cambie esa biblioteca, ajústela a las necesidades de cada desarrollador y póngala en Github.
  • Y lo más importante, cometa errores tanto como pueda durante este proceso, lo hará perfecto. ¡Ser curioso! Nunca dejes que tu hambre de aprendizaje muera.

¡Aclamaciones!

Estás en el camino correcto y haces la pregunta correcta, así que es un gran comienzo.

Lo primero que debe saber sobre JavaScript es que hay mucha información antigua y mala. Es posible aprender una forma completamente incorrecta de escribir JavaScript leyendo muchos de los libros que existen o mirando el código de otras personas.

Desea aprender JavaScript correctamente desde el principio. Parece que ya tiene una base de conocimiento sobre lo que está involucrado en JavaScript, por lo que le recomendaría leer el JavaScript de Douglas Crockford: The Good Parts junto con un libro reciente de JavaScript para principiantes y el curso de JavaScript de Codecademy. No te preocupes si no entiendes todo en el libro de Crockford, solo sigue leyendo.

Probablemente notará algunas diferencias de opinión entre estos tres sobre cómo se debe escribir JavaScript, y notará partes que uno de ellos menciona que los otros no. Este es un conocimiento esencial que debes tener cuando comienzas con JavaScript. Hay muchas formas de hacer las cosas, y algunas son mejores que otras. Tenga esto en cuenta y descubra por qué algunas cosas son mejores (por ejemplo, addEventListener es una forma mucho mejor de vincular eventos en JavaScript que utilizando atributos de evento … si aún no lo sabe, péguelo en su monitor y descubra por qué).

A continuación, obtenga experiencia con node.js y todo lo que viene con él (npm, express, etc., etc.). Aprende git al mismo tiempo. NodeSchool es una excelente manera de comenzar.

Es esencial saber JQuery, y también deberías aprenderlo en algún momento, pero no lo aprendas antes de que realmente sepas JavaScript. El curso Codecademy jQuery es bastante bueno.

Si trabajas diariamente, puedes alcanzar un nivel básico de competencia con todo lo anterior en un mes.

JavaScript se encuentra en un período de transición en este momento, con el inicio gradual de la actualización a ECMAScript 6 (y viene Angular 2.0). Entonces, después de aprender cómo se escribe JavaScript hoy (la versión totalmente compatible con los navegadores), debe comenzar a aprender la próxima versión. La mejor manera de hacerlo es aprendiendo TypeScript (Bienvenido a TypeScript). Una vez que tenga experiencia con TypeScript, aprenda Angular.

¡Buena suerte y mis mejores deseos!

-Chris
@chrisminnick

Resuelve un problema que tienes con Javascript

Cree una aplicación web simple que resuelva un problema simple que le interese.

Acabo de hacer esto (desplegado literalmente hoy) y fue una forma invaluable de aprender algo de Javascript.

Mi pequeña aplicación se llama Oaxaqueando. “eando” es un sufijo de verbo español, como ‘ing’ en inglés. Entonces es como Oaxaca-ing.

Oaxaqueando es una aplicación de mapas JS / HTML muy básica que me ayuda a encontrar cosas interesantes en Oaxaca, México (donde vivo en este momento). Quería aprender a hacer mapas y también quería encontrar lugares para practicar senderismo, yoga y voluntariado en Oaxaca. Esta pequeña aplicación me enseñó los conceptos básicos de la creación de mapas y me ayudará (y tal vez a otros expatriados) a encontrar cosas interesantes en Oaxaca.

Resolver su propio problema con el código es interesante y motivador. Entiende el problema y quiere verlo resuelto. Esto le permite superar todos los momentos difíciles. Te quedarás atrapado mucho y tal vez te sientas frustrado hasta las lágrimas. Si realmente te importa el resultado, podrás perseverar mucho más fácilmente. Contraste esto con solo pasar por tutoriales / libros donde no parece haber una recompensa cada vez mayor esperando por usted (solo un trabajo más tedioso).

Resolver su propio problema tiene un ciclo de retroalimentación inherente. Cada vez que agregué una capa al mapa o agregué una característica, me dio una explosión de emoción / alegría / alivio. Podía sentirme cada vez más cerca de tener algo útil.

Resolver su propio problema responde a la pregunta inherente que la mayoría de los estudiantes hacen “¿Pero cuándo voy a usar esto?”. Por ejemplo, recuerdo haber leído sobre los métodos jQuery para agregar o el alcance variable de Javascript. Una cosa es leer sobre ellos, pero otra es ver literalmente el impacto que estas cosas tienen en su aplicación.

Resolver su propio problema es como aprender un idioma extranjero mientras está inmerso en un país donde lo hablan. Estudias un poco de sintaxis / gramática en un libro y luego lo aplicas allí mismo. Mientras lo aplica, refuerza lo que su libro le dijo y aprende cosas en el campo que complementan el trabajo de su libro.

Recomiendo una combinación de resolver su problema mientras hace algunas tareas. Haga la cantidad de trabajo suficiente (aprendizaje justo a tiempo) para comenzar, pero luego siga trabajando en su proyecto.

Resuelve algo que te importa y no dejes de probar nuevos libros / tutoriales hasta que encuentres los que te gustan.

Recursos que me gustan:
jQuery
Tutsplus 30 días para Jquery (divertido, ligero, fácil de seguir)
Head first Jquery (divertido, ligero, fácil de seguir)

Javascript
JavaScript profesional para desarrolladores web (exhaustivo)
Javascript elocuente (desafiante pero interactivo)

Cosas más específicas que recomiendo:

Alcance cuando está atascado
Parte de la construcción de mi sitio fue trabajar con Geojson (son datos json para mapas). Por alguna razón, geojson usa longitud, latitud en lugar de latitud, longitud (que casi todo lo demás usa). Me golpeé la cabeza contra el escritorio durante más de 2-3 días preguntándome por qué mis puntos estaban en la Antártida. Finalmente, contacté a GIS.stackexchange y en 20 minutos alguien me dijo qué estaba mal. Eso es mucho tiempo perdido y estrés en retrospectiva.

Comuníquese, en línea o en persona, cuando esté realmente atrapado. Hay una diferencia entre un buen atasco donde estás vadeando y aprendiendo, y un mal atascado, donde no estás aprendiendo y destruyendo tu moral.

La clave para hacer una pregunta sobre algo como Stackexchange es mostrarles que ha probado muchas otras opciones. Reduzca su problema a la parte exacta en la que está atrapado en lugar de publicar un muro de texto por el que alguien tiene que pasar.

No lo hagas para nadie más que para ti.
Claro, había y hay una pequeña parte de mí a la que le encantaría ver a la gente usar mi aplicación. Me gustaría obtener esa dulce validación de alguien que dice “Descubrí una nueva caminata gracias a tu mapa, Kyle”.

Ten cuidado con estos pensamientos. Pueden engañarlo para que intente y luche por hacer algo sorprendente que obtenga validación cuando lo que realmente necesita hacer es aprender y construir.

Solo construyelo para ti. Entonces puedes validarte a ti mismo.

Cambie los tutoriales si necesita
Ahora hay docenas de formas de aprender JS. No dudes en cambiar.

Realmente me gustan partes de Eloquent JS, pero en algunos puntos va demasiado rápido para mí. Rápidamente se convirtió en una lucha para completar los ejercicios más básicos. Tal vez algunos digan que esta lucha es donde aprendes. Creo que es necesario un poco de sudoración mental y de lucha, pero solo quedarte atrapado solo matará la moral rápidamente.

El ímpetu y la moral son el rey
Estos importan mucho. Tentarás a dejarlo muchas veces. Guarda y mantén tu moral.

Ver: trampas de Gumption

Asegúrate de estar cómodo en la computadora
Intente asegurarse de que su cuerpo esté cómodo cuando trabaje en la computadora. Obtenga un monitor, teclado, mouse o un mejor escritorio si es necesario. No deberías lastimarte mientras tratas de pensar en el código. No debe estar adolorido o adormecido al final del día.

Personalmente, uso dos muñequeras cuando escribo y mis manos se sienten mucho mejor al final del día.

No te aferres demasiado a las características soñadas
Desea poner en marcha su aplicación más temprano que tarde. Recuerde, el impulso es la clave. Probablemente tendrá todo tipo de funciones de ensueño para su aplicación. Si algunos de ellos te sostienen demasiado, déjalos ir. Encuentre una forma más sencilla de implementar cosas. Piensa: Producto mínimo viable (para mí). No dudes en bajar la barra. Esta no será tu última aplicación. Necesitas hacer el primero.

Realmente quería una barra lateral interactiva para mi mapa. Uno en el que pasa el cursor sobre el elemento de la lista y el marcador del mapa se ilumina y viceversa (como lo hacen Yelp y Foursquare). Pero eventualmente tuve que dejarlo ir. Perdí docenas de horas tratando de descubrir los eventos de clic. Sé que habrá otros proyectos en el futuro donde pueda resolver eso. Quizás vuelva más tarde y lo agregue a Oaxaqueando. Pero decidí dejarlo ir porque hacer algo era más importante que jugar constantemente con algo sin hacer.

Jsfiddle y Github
Busque en Jsfiddle (“sitio: jsfiddle.net” en google) y Github para encontrar y usar el código de otras personas. Jsfiddle, en particular, es una excelente manera de ver exactamente cómo funciona una parte de JS / Jquery. Se reduce a la esencia. Busque y use estos libremente.

Espero que esto te ayude.

Recomiendo JavaScript: The Good Parts por Douglas Crockford ( http://www.amazon.com/gp/product …). Es breve y explica todas las mejores características del lenguaje en aproximadamente 150 páginas.

¡NodeSchool ofrece talleres de codificación interactivos gratuitos que instala y completa en la Terminal! http://nodeschool.io/#workshoppers Los más útiles para aprender JavaScript son:

npm install -g javascripting
npm install -g learnyounode
npm install -g count-to-6

Esta serie de publicaciones de blog también es bastante buena. Explica aspectos básicos como objetos, funciones, cierres y referencias visualmente :

La serie de videos Crockford en JavaScript también es una excelente introducción al lenguaje. Explica la historia del lenguaje y muestra algunas de las características más potentes, incluidas las funciones de primer orden, la notación literal de objetos (es decir, JSON) y más:

Otra buena forma de aprender los conceptos básicos rápidamente es crear una aplicación web simple (lista de tareas, api mashup, etc.). Construir algo con la API de YouTube siempre es divertido y es bastante fácil comenzar. Siempre encuentro que tener un proyecto en mente facilita el aprendizaje de nuevos idiomas.

Para cualquier aplicación web, recomiendo jQuery ( http://jquery.com/ ). Soluciona muchas de las incompatibilidades del navegador en el DOM y hace que trabajar con JavaScript sea un placer. Si te gusta la programación funcional, vale la pena echarle un vistazo a Underscore.js ( http://documentcloud.github.com/ …). Proporciona 60 funciones extrañas que le permiten hacer muchas cosas funcionales útiles.

Tanto para jQuery como para subrayar, le recomiendo que se sumerja en el código fuente para ver cómo se implementan las cosas si tiene curiosidad. Es realmente genial ver cómo funcionan estas bibliotecas bajo el capó y no es tan difícil entender el código fuente como cabría esperar.

En ese sentido, Paul Irish (un desarrollador en Chrome, jQuery, Modernizr y HTML5 Boilerplate) tiene un gran video titulado “10 cosas que aprendí de la fuente jQuery”, que fue muy interesante y contiene muchos detalles sobre JavaScript.

Si está buscando una introducción más suave dirigida a principiantes , le recomiendo la excelente “Una reintroducción de JavaScript” de Mozilla ( https://developer.mozilla.org/en …). Mozilla también tiene más tutoriales de JS aquí: https://developer.mozilla.org/en

Además, esto no le enseñará nada, pero es bastante divertido : https: //www.destroyallsoftware.c

¡Feliz pirateo!

Principalmente no estoy de acuerdo con las respuestas que mencionan Codeacademy, w3schools y jQuery.

Esos son recursos para principiantes, sí, pero principiantes como “eres un principiante ahora” y también como “seguirás siendo un principiante”, y nunca te llevarán por encima de un nivel de novato. Necesita experiencia práctica práctica, y no hay mejor manera de obtener eso que prueba y error. Naturalmente, si está en el nivel de newb absoluto, revise esos solo para familiarizarse con la sintaxis, pero deséchelos tan pronto como haya terminado.

Existen numerosos ejemplos del mundo real, y aunque mi empleador me desaprobaría por sugerirme competencia, Nettuts + tiene buenas críticas. También escribí un par de ejemplos desde cero del mundo real para SitePoint: crear extensiones de Chrome desde cero (Extensión de Chrome para Diigo Archives – SitePoint) y contribuir a una aplicación Node de código abierto al agregar una característica muy deseada (Contribuir a código abierto: Dillinger como un caso de estudio – SitePoint), pero la mejor manera sería seguir el siguiente procedimiento:

  • Encuentre un proyecto de código abierto que le gustaría mejorar o piense en un proyecto que desea construir
  • Decida una función para comenzar. Por ejemplo, obtenga una aplicación Node en funcionamiento, solo un esqueleto. O bien, agregue la capacidad de cargar imágenes a la aplicación Dillinger Markdown que he vinculado anteriormente. Etc.
  • Comience a codificar la función.
  • Cada vez que se quede atascado, vaya a StackOverflow y busque una solución a su problema; sin duda, ya existe.
  • Cuando esté satisfecho con lo que ha hecho, enjuague y repita, o repita la solución e intente optimizarla.

También agregaría que es muy importante saber en qué tipo de JS desea enfocarse. Si desea desarrollar aplicaciones Node, jQuery será menos que útil. Si desea desarrollar para frontend, entonces las bibliotecas de manipulación de frontend como jQuery son esenciales, pero no debe aprender a depender de ellas.

Para obtener el apoyo adecuado de la comunidad, definitivamente siga los consejos de Shawn Drost y vaya a ese subreddit. Una buena manera de obtener ayuda también puede ser Wizpert: he realizado un buen número de asistencias allí y la gente en general está muy satisfecha.

En cuanto a las herramientas de productividad que mencionas en la segunda parte de la pregunta:

  • Las herramientas de desarrollo de Firefox / Chrome son las alfa y omega del desarrollo de JS.
  • Git + Github para control de versiones y comentarios de la comunidad
  • Un buen IDE para facilitar el desarrollo y deshacerse de los procedimientos de configuración al comenzar un nuevo proyecto o configurar una nueva máquina: WebStorm es absolutamente maravilloso y multiplataforma, solo necesita guardar su configuración en línea en algún lugar y listo. en cualquier sitio.
  • JSFiddle para experimentos sobre la marcha y JSHint para control de sintaxis
  • Vagrant y Puppet para máquinas virtuales, para que pueda tener un entorno de desarrollo de VM nuevo e idéntico en cualquier momento, sin contaminar su máquina de desarrollo principal con tiempos de ejecución y actualizaciones. Ver protobox para un buen punto de partida. Esto también evita que pueda estropear su máquina. Simplemente destruya y reconstruya la VM y ya está listo, no pasó nada.

Buena suerte

Hay buenas respuestas por aquí, pero permítanme comenzar con lo más importante:

  • No es el lenguaje “quintessencial”, no es el único idioma que tendrá que aprender, no es Deus Ex Machina por ningún tramo de la imaginación.
  • Es un lenguaje muy defectuoso (y quiero decir “muy”), muy mal diseñado. Comienza viendo esta charla de Gary Bernhardt El nacimiento y la muerte de JavaScript
  • Los marcos web JS están en todas partes. Para comenzar, no confíes en gran medida en las aplicaciones de página única (SPA). ¡Solo no lo hagas! Son útiles, sí, pero si su sitio web tiene contenido público accesible y flujos de navegación (cualquier sitio web de contenido, comercio electrónico, etc.), arruinará su SEO a lo grande. Úselos solo para páginas conectadas, páginas a las que ningún motor de búsqueda puede acceder de todos modos.
  • Javascript todavía tiene diferentes motores y diferentes comportamientos, especialmente en Internet Explorer. Sí, a menos que use soluciones como jQuery (o conozca algunos de los trucos), todavía lo morderá.
  • El lenguaje en sí no es demasiado difícil, en su mayor parte programarás como cualquier lenguaje imperativo / de procedimiento. Con el tiempo, puede agregar un comportamiento similar a un objeto utilizando la infame estructura de Json. Entonces te engañarán los aspectos “funcionales” del lenguaje como el curry. De todos modos, la parte importante es comprender el aislamiento y el sangrado variable. Aísle adecuadamente sus variables en JavaScript | @nicoespeon
  • Aprenda sobre la gestión de dependencias adecuada (Bower) y la cartera de tareas adecuada (Grunt, Gulp). Esto no es opcional, hágalo de la manera correcta o no lo haga en absoluto.
  • De hecho, Javascript está evolucionando, y es posible que desee aprender sobre ES6 y el formato AMD requiere. Javascript ES6: aprenda funciones importantes en unos minutos
  • La mayoría de las veces se trata de agregar comportamiento al DOM HTML.
  • En el lado del servidor, aprenda Node.js + NPM. Una vez más, no se trata de un anillo para gobernarlos a todos, pero es un servidor de E / S asíncrona lo suficientemente decente, especialmente si se combina con Express.js para Websockets (aunque, hay varios servicios SaaS fácilmente disponibles y muy baratos) eso no requerirá que codifique esos bits en absoluto).
  • No debe pasar más de unas pocas horas para aprender toda la sintaxis y la mayoría de las principales API. Debería pasar unos días aprendiendo algunos de los patrones básicos (como se describe en algunos de los enlaces anteriores). Hay trucos avanzados que tomarán mucho más tiempo dominar, pero son del tipo que rara vez necesitarás.
  • ¡Aprenda las PRUEBAS adecuadas! Esta es una de las cosas que diferencia a un aficionado de un profesional. Comience con Jasmine jasmine / jasmine o Buster.js (¡Bienvenido! Buster.JS es …).
  • En términos de libros, The Good Parts es quizás uno de los pocos que vale la pena leer (ciertas partes) JavaScript: The Good Parts: Douglas Crockford: 9780596517748: Amazon.com: Libros Aprenderá más rápido practicando y buscando en línea. Obtenga algunos proyectos de código abierto para aprender realmente la estructura y la organización del código adecuado. Verifique sitios como JS: The Right Way y JSLint, la herramienta de calidad de código JavaScript.

Escribir código es muy fácil, cualquiera puede hacerlo. Para escribir código legible y mantenible, este es un oficio para unos pocos.

Creo que la mejor manera de aprender JavaScript es haciendo cosas. Quiero decir, por supuesto, tienes que aprender los conceptos básicos (variables, funciones …), pero si ya estás familiarizado con los paradigmas de programación, te llevará un buen día, si no lo estás, tal vez 2 días …
Pero conocer JavaScript y saber programar en JavaScript son dos cosas muy diferentes. Así que voy a mostrarle cómo aprendí JavaScript y cómo pasé de todo en el index.html vanilla JS al estado de la técnica EcmaScript 6, trago, pruebas unitarias, React / Angular y compañía.

Bueno, lo primero que aprendí es JavaScript en la escuela. Pero tuvimos como una lección de medio día (qué es una variable, una función, una condición … la básica). Luego, la maestra nos dio un ejercicio para hacer, el “moulinette”. Básicamente, un desarrollo impulsado por pruebas: 20 ejercicios, clasificando desde mostrar una alerta con una cadena para implementar un algoritmo Pathfinding. Este último específico es, por supuesto, bastante imposible para nuestro nivel. Pero los revisamos y, por necesidad, aprendimos cosas como qué era una matriz, cómo acceder a ella, qué era un bucle. Y, por supuesto, ayuda a no buscar una solución en el desbordamiento de la pila y a no usar material prefabricado. Por ejemplo, un ejercicio solicitó ordenar una matriz por orden alfabético. Podrías usar un array.sort () para eso, pero ¿no es más divertido recorrer el array e introducir el resultado en uno nuevo?

Bueno, de todos modos, después de esta puesta en marcha, tuvimos nuestro primer ejercicio real: hacer un juego en 2D, con un personaje que pueda subir, izquierda, derecha y abajo y no pueda salir de una “caja”. Si lo hiciéramos, tendríamos 10/20, pero entonces podríamos agregar cualquier característica que deseamos. Esto es lo que hice
Zelda Ocarina Of Time 2D

Este es un remake de los primeros momentos de la ocarina del tiempo. Pero mira el código. Esto es lo que llamamos código spagetti: una forma muy mala de hacer las cosas, su código salta de un lugar a otro, etc. Además, es medio francés (lo siento). Pero funciona Funciona perfectamente (a excepción de un pequeño error si lee el texto en la casa y luego sale). Tiene detección de colisión, texto autoescrito (en color), una hoja de sprites animada …

Mi punto es que, aunque el código es horrible, funciona. Y eso es lo que debería preocuparte, las cosas funcionan. Si comienzas a aprender buenas prácticas desde el principio, bueno, nunca entenderás realmente por qué son buenas prácticas. Nunca sabrás lo que podrías hacer en su lugar. Y siempre será el tipo de programador que no sabe programar, que solo sigue una receta y es incapaz de trabajar creativamente.

Un par de meses después trabajé en un juego real esta vez, Watergrass
WaterGrass

Tuvimos un día para crear un juego en HTML5. Lo que ves es lienzo, un poco de DOM, un setTimeout para animar cosas. Si nos fijamos en el código, es un poco mejor. Todavía está en un archivo, pero al menos ahora está en un archivo .js. Más código está separado en funciones. Pero aún así es un código spagetti, y peor que eso, no es SECO, ni SECO en absoluto. Si quisiera que se ejecutara una función AI para la computadora, simplemente copiaría y pegaría la función del reproductor y reemplazaría algunas de las entradas. Pero una vez más, funcionó bien. Y aprendí algunas cosas nuevas, la API de Canvas, objetos

Más tarde, trabajé en Serum42
Suero 42
Este juego es mucho más complejo que Watergrass. Es una especie de sudoku con reglas específicas. Si observa el código, notará que finalmente comienza a separarse en diferentes archivos (aprendí la lección de Watergrass, un archivo grande no es el camino a seguir). Aunque puede estar en desacuerdo con la separación (quiero decir, function.js y event.js y variables.js, ¿en serio?), Al menos introduce alguna categorización del código. Pero también notará que es mucho más corto que el pasto de agua. ¿Cómo es que el juego en realidad es más simple? En realidad no, es solo que aprendí lo que DRY quería decir. No te repitas a ti mismo. Comencé a usar las funciones de manera más inteligente y pude reducir gran parte de la complejidad. Y así es como debería ser, con el tiempo, su código se volverá cada vez más simple. Si ve que su código se vuelve cada vez más complejo, probablemente signifique que tiene la enfermedad de la ingeniería excesiva. Has aprendido qué es OOP, y de repente ves interfaces y clases abstractas en todas partes. Ten cuidado con eso. De todas formas. Esto termina mi primer año de programación de JavaScript (al menos en proyectos personales).

Algunos abogarán por que durante un año no aprendí mucho de JavaScript. Quiero decir, hoy en día, la gente solo aprende angular o reacciona de CodeAcademy y otros en un mes. Pero aunque no utilicé ninguna biblioteca elegante (ni siquiera jQuery), dominé lo que estaba haciendo. Entiendo todo, y cuando estaba codificando, estaba codificando, no gastando mi tiempo en el desbordamiento de la pila.

El segundo año, tuvimos un nuevo maestro, Pierre Lancien ( http://www.toxicode.fr/ ) que nos enseñó la importancia de DRY, la programación orientada a objetos en JavaScript, y requireJS. Esta fue mi primera biblioteca realmente, y cambió la forma en que entiendo el código. Con un amigo (Antony Pigeot), creamos este juego en línea.
http://tanks-game.herokuapp.com/

Un juego de tanques en línea similar al de Wii Play. Utiliza NodeJS, requireJS y Box2D. Técnicamente, hay una brecha real con el suero 42, por ejemplo. Bueno, para empezar, éramos dos programadores, así que pudimos sumar nuestra fuerza. Y utilizamos todo lo que aprendimos de Pierre, requireJS para empezar (aunque no de la mejor manera posible), programación orientada a objetos, programación asincrónica. Y aquí es donde entra en juego la magia. Si aprendiera todo eso desde el principio, estoy bastante seguro de que nunca habría completado watergrass o serum 42. Porque necesitas experiencia para poder realizar una arquitectura adecuada. Y si intentas aprender todo eso de un golpe, bueno, probablemente te rendirás cuando intentes programar tu juego / aplicación porque en lugar de concentrarte en lo que estás haciendo, te enfocarás en cómo hacerlo.

Podría continuar la historia y mencionar a Folks, Fierysnake, proyectos de trabajo … Pero creo que todos los que llegarían a este punto conocen JavaScript. Claro, todavía tiene mucho que aprender (frameworks, bibliotecas, lado del servidor, sistemas de construcción, supersets de JavaScript …), pero comprende lo que está haciendo. Y si hoy tengo que contratar un desarrollador, prefiero cien veces un desarrollador que entienda cómo hace las cosas que un desarrollador que simplemente está “personalizando” su “cómo hacer un tutorial de aplicación web estadística”.

Si quieres ver algún otro juego que hice (en mi tiempo libre o en la escuela), ingresa aquí http://lajili.com
No dudes en agregarme en linkedin
https://uk.linkedin.com/in/johan
Y no olvides votar la respuesta si te gustó :).

Marcus Geduld ya ha escrito una respuesta integral. Debes prestar atención a sus palabras, ya que su experiencia en JavaScript es enorme. Yo, por otro lado, soy un novato y actualmente estoy luchando con JavaScript. Viniendo de un fondo de C / C ++ / Java, JavaScript resulta ser un minx indomable para mí.

Si aún no lo has descubierto, JavaScript es muy difícil. No se parece en nada a sus lenguajes imperativos típicos como C / C ++ / Java / Python. JavaScript es un lenguaje funcional, más parecido a Lisp en la ropa de C. Y si cree que es solo un lenguaje de script para hacer que sus botones sean interactivos rápidamente, se encontrará con algunos momentos difíciles.

JavaScript está llegando a lo grande, y no puede haber un mejor momento para aprender esto. JavaScript se puede usar para escribir código del lado del servidor (NodeJS), se puede usar para diseñar aplicaciones de Windows 8 y Windows Phone (WinJS) y muchas más. Mozilla tiene un proyecto llamado Shumway en GitHub, un intento de reemplazar Flash con JavaScript y lenguajes similares. Puedes escribir juegos 3D en el navegador usando JavaScript.

Entonces, ¿cómo lo dominarías? Además de los consejos de Marcus Geduld, también debe consultar el código fuente de las famosas bibliotecas JavaScript con frecuencia. Si tiene dudas, verifique el código fuente anotado. Comprende cómo está organizado.

Por ejemplo, tome el jQuery DOM selector $() . Intenta implementarlo por tu cuenta. Luego revise el código fuente en GitHub, vea cómo los expertos lo implementan. Cómo se manejan todos los casos posibles.

La mejor manera de dominar cualquier cosa es hacerlo. Practícalo, vívelo, respíralo. Recuerdo haber luchado con JavaScript y le pedí consejo a un desarrollador senior. Citó a Churchill: ” Si estás atravesando el infierno, sigue adelante. Solo para tu información, resulta ser el desarrollador principal de FireBug.

Lo que me lleva a otra sugerencia mía: hable con expertos en el campo y solicite comentarios, ayuda, etc. El canal IRC de JavaScript es un buen lugar para comenzar. MDN es otro gran lugar para los aspirantes a desarrolladores de JS. Puedes buscar en Google por horas para algo amplio, o puedes preguntarle a un experto.

Es posible que desee leer esta publicación de blog: Por qué aprender a codificar es tan difícil.

Los cursos de Udacity en JavaScript me parecen bastante buenos. Hay dos cursos sobre JavaScript que definitivamente debería consultar: JavaScript orientado a objetos y patrones de diseño de JavaScript. Deberían ayudarlo a comenzar bien. El descanso depende de ti.

Estos son mis recursos favoritos que cubren los dos lados diferentes para aprender JavaScript (y la programación de aprendizaje en general): son los recursos que recomiendo para las personas que solicitan Codesmith

Aprendiendo a programar – Stephen Foote – Aprendiendo a programar

  • El libro que más recomiendo para aprender JS. Más que cualquier otro recurso, te ayuda a desarrollar modelos mentales intuitivos de conceptos y tiene proyectos fantásticos para trabajar , especialmente una extensión de Chrome que reemplaza todas tus imágenes de Facebook con gatos.


JavaScript elocuente – Capítulos 1-6 – JavaScript elocuente

  • Cubre variables, funciones, objetos y lo que significa ‘escribir instrucciones en una computadora’


JS para gatos – JavaScript para gatos

  • Incluso más intuitivo (pero más básico) que Eloquent JS: el lugar para comenzar.

‘Javascripting’, ‘Scopes, Chains and Closures’, ‘Functional Javascript’ – todo de NodeSchool – NodeSchool

  • Proyectos para completar en la línea de comandos con indicaciones que son lo suficientemente abiertas para que investigue qué hacer pero lo suficientemente claro como para no darse por vencido

No me encanta , pero codecademy javascript track – Codecademy JavaScript – es una increíblemente popular lugar para familiarizarse primero con la sintaxis (asegurándose de tener los conceptos básicos absolutos del idioma)


Estos recursos cubren los dos lados de aprender a codificar:

  1. Conferencias intuitivas para comprender los conceptos.
  2. Codificación a través de desafíos (o proyectos de construcción) para convertirse en programador

1. Clases intuitivas (JavaScript elocuente, JS para gatos): modelos mentales y te ayudan a entender por qué lo que estás aprendiendo es importante. El 10% de su tiempo debe dedicarlo a desarrollar estos modelos mentales.

2. Codificación a través de desafíos (Javascripting, Scopes, Chains and Closures, Functional Javascript): hay una razón por la cual las personas que solo ven videos de programación no se convierten en programadores, es porque no están programando. El 90% de su aprendizaje debe gastarse construyendo y trabajando a través de desafíos.

Recomendaría usar Eloquent JS, JS For Cats y los talleres de la escuela nodal juntos, pero concéntrese en el edificio que hace con NodeSchool .


JavaScript las partes duras

Cada semana enseño una nueva sesión de JavaScript, las partes duras en vivo en Codesmith que cubren:

  1. Callbacks y funciones de orden superior
  2. JavaScript orientado a objetos (las palabras clave ‘nuevo’ y patrones de instanciación)
  3. Cierre, contexto de ejecución y alcance

10-15 minutos de lectura intuitiva y 20-30 minutos de desafío de codificación programada por pares antes de más conferencias y más programación de pares.

Vamos a poner a JS las partes duras en línea como una versión beta gratuita tan pronto como sea posible; avísenos aquí si está interesado: JavaScript El registro en línea de las partes duras


Esa es la forma en que abordamos la enseñanza de JavaScript en Codesmith. El 90% del aprendizaje de nuestros estudiantes en la primera parte del programa es programación en pareja a través de desafíos, junto con conferencias guiadas por la intuición. Es la única forma de aprender todo lo que enseñamos en 12 semanas.

Cuando las personas intentan aprender JavaScript, o cualquier habilidad de codificación realmente, a menudo se enfrentan a los mismos desafíos:

  • Algunos conceptos pueden ser confusos, especialmente si viene de otro idioma.
  • Es difícil encontrar el tiempo (y a veces la motivación) para aprender.
  • Una vez que haya entendido algo, es demasiado fácil olvidarlo nuevamente.
  • El panorama de herramientas es tan vasto y cambia constantemente que es difícil saber por dónde empezar.

Afortunadamente, estos desafíos pueden ser reconocidos y finalmente conquistados. En este artículo, presentaré seis trucos mentales que lo ayudarán a aprender JavaScript más rápido y a convertirse en un codificador más feliz y productivo.

1. No permita que las decisiones futuras le impidan progresar ahora

Para muchas personas que aprenden JavaScript, una de las primeras preguntas que hacen es qué marco usar (y seamos justos, hay muchas). Pero si no se ha sentido cómodo con JavaScript sin procesar, esta es la pregunta incorrecta que debe hacerse. Pasará todo su tiempo investigando diferentes marcos y nada de su tiempo avanzará realmente.

Una forma de ayudar a salir de la trampa de la indecisión es tener una hoja de ruta para lo que necesita aprender. Por ejemplo, para convertirse en un desarrollador front-end,

Desglosándolo aún más, puede crear una página web funcional con solo HTML y CSS. Al ver los pasos individuales establecidos de esta manera, se hace más fácil ver en qué enfocarse ahora para no perder el tiempo preocupándose por cosas que vendrán después.

Para aquellos que lo encuentren útil, he escrito un mapa de ruta de aprendizaje más detallado para convertirse en un desarrollador front-end.

2. No dejes que la confianza te engañe para olvidar cosas

Comprender un concepto rápidamente puede ser una de las cosas más perjudiciales para su progreso en el aprendizaje de JavaScript. Permíteme explicarte.

Cuando lees algo y tiene sentido, puede ser tentador pasar a lo siguiente de inmediato. Tal vez entiendas lo siguiente y luego sigas adelante. Pero pronto, llegará a un punto en el que se dará cuenta de que ha olvidado algunas de las cosas anteriores que aprendió, por lo que debe regresar. Le da un vistazo rápido a los conceptos anteriores para refrescar su memoria y luego continuar nuevamente. Pero ahora has olvidado algo más. Sigues repitiendo este baile de ida y vuelta hasta que llegas a un punto en el que te das cuenta de que estás completamente perdido. Te desanimas, tomas un descanso y luego, cuando intentas volver, te olvidas de todo.

Afortunadamente, hay una cura simple de dos pasos para este problema:

  1. Limite la cantidad de cosas que aprende a la vez.
  2. Practica de verdad: escribe el código.

Cuando aprenda un nuevo concepto, asegúrese de probarlo, jugar con él, sentirse cómodo con él e incluso combinarlo con otros conceptos. Es muy importante escribir el código en los ejemplos que está siguiendo, porque eso es lo que lo ayuda a absorberlo. Además, limitar la cantidad que aprende a la vez lo ayudará a retener el material, por la sencilla razón de que es más fácil recordar menos cosas.

Parece que este proceso lleva más tiempo que solo leer las cosas y moverse rápidamente, pero en realidad toma mucho menos tiempo porque no necesitará retroceder tanto. Aprendí esto de la manera difícil en varias ocasiones.

3. Practica el enfoque con la mentalidad correcta

Muchas personas ven la práctica como algo aburrido y repetitivo, por lo que a menudo la omiten o intentan tomar atajos. Si intentas atajar tu práctica de JavaScript, en realidad terminarás tardando más en aprenderla. Pero, ¿cómo haces que la práctica sea más emocionante para que realmente lo hagas?

Prueba este cambio de mentalidad:

¿Qué sucede si aprendió un nuevo concepto de JavaScript y no se le permitió probarlo? ¿Cómo te sentirías? Personalmente, estaría un poco molesto, especialmente después de tomarme el tiempo para entenderlo. Sería como un niño que compra un juguete nuevo y no se le permite jugar con él.

Cuando aprenda algo nuevo en JavaScript, intente tratarlo como un juguete nuevo, un auto nuevo, un par de zapatos nuevos o lo que sea que le resulte divertido probar. Entonces no practiques como si estuvieras trabajando, practica como si estuvieras jugando. Haz algo genial con tus nuevas habilidades. Sorpréndete a ti mismo. Muestra a tus amigos.

Con una mentalidad más lúdica, aprenderás mucho más rápido, recordarás cosas por más tiempo y te divertirás más.

4. Encuentra tiempo para codificar usando el truco de Facebook

Uno de los problemas más comunes que tiene la gente es que no puede encontrar el tiempo para codificar. A menudo, las mismas personas pasarán horas en sitios como Facebook, YouTube, Wikipedia o Reddit. Ya sea que esto lo describa o no, todavía hay lecciones que aprender aquí.

Definitivamente he tenido momentos en los que solo tenía la intención de mirar Facebook por un tiempo, pero terminé allí por horas. ¿Cómo sucede eso? Sucede precisamente porque no tenía la intención de seguir allí por mucho tiempo. Comenzar con algo es la parte más difícil, por lo que al mantener el compromiso inicial pequeño, me resulta mucho más fácil participar. Si alguien me hubiera preguntado si estaba preparado para pasar horas en Facebook, diría que no porque no lo hago ‘ No tengo ese tipo de tiempo. Sin embargo, soy mucho más receptivo a la idea de simplemente verificar una cosa rápidamente, y así es como me dejo llevar.

La buena noticia es que puede usar esta misma psicología a su favor cuando aprenda a codificar. No intente comprometerse a varias horas de codificación porque nunca encontrará el tiempo. Solo dite a ti mismo que vas a probar un código durante tres minutos. Nunca tendrás problemas para encontrar el tiempo otra vez.

5. Piensa más despacio y aprenderás más rápido

Este suena contradictorio, así que lo explicaré con una historia.

Una vez, un amigo mío estaba confundido acerca de cierta característica de JavaScript. Le pedí que me explicara lo que sabía y que me explicara qué parte era confusa. Mientras leía el código, me di cuenta de que estaba corriendo.

“¡Espera!” Dije. “Disminuye la velocidad y guíame a través de cada paso de esto”.

Mi amigo procedió a darme un resumen general de lo que estaba sucediendo en el código.

Lo detuve de nuevo. “Todavía estás corriendo. Inténtalo de nuevo, pero esta vez, quiero que literalmente pases por cada línea de esto y me digas qué está sucediendo exactamente en cada línea “.

Esta vez, mi amigo pudo explicar mejor lo que estaba sucediendo en el código. La clave era que se había tomado el tiempo de leer cada parte en lugar de tratar de entenderlo todo de una vez.

En casos como este, pensar más despacio en realidad te hace aprender más rápido.

6. Escribir código complejo en lenguaje sencillo primero

Si un código va a ser complicado o desconocido, escríbalo primero en lenguaje sencillo. De esa manera, puede descubrir qué quiere que haga el código antes de que realmente tenga que escribirlo. Aquí hay dos beneficios para este enfoque:

  1. Su código será más fácil y rápido de escribir porque no tendrá que detenerse constantemente y pensar cómo quiere que se comporte.
  2. Detectará errores antes de que sucedan porque tendrá una idea más clara de lo que debe hacer el código.

Mucha gente te dirá que leas este libro, y ese y luego el otro también. Realmente dudo que necesites leer más de un libro para entender JavaScript.

Tomé un curso completo de 15 horas en JavaScript puro y luego olvidé todo. Aquí hay tres razones por las que no debe preocuparse demasiado por llegar al final de JavaScript.

La belleza de aprender un nuevo lenguaje de programación es poder implementar algo en él. Para poder resolver un problema en él. Un problema que realmente le importa a alguien en alguna parte.

Leer por el simple hecho de que suena divertido durante las primeras 2 horas en un curso o un libro, pero después de eso te aburres rápidamente y te quedas dormido.

Es posible que desee aprender JavaScript al revés, pero ¿por qué hacer eso? ¿Por qué infligir tanto dolor a ti mismo si lo que necesitas para hacer el trabajo es solo unos pocos capítulos?

Aquí hay tres razones por las cuales:

1. Usarás bibliotecas

En casi todos los casos, usará bibliotecas para implementar algo en JavaScript.

De hecho, parecería ignorante que siempre quisiera escribir JavaScript vainilla para implementar funciones que pueden hacer las bibliotecas ya disponibles.

¿Por qué digo eso? Porque el código de espagueti no es mantenible. Usted mismo volvería a verlo después de 60 días y estaría seguro de que fue escrito por otra persona.

Pero hay bibliotecas escritas en JavaScript, ¿por qué no aprender JavaScript …? Bueno, estas bibliotecas, como jQuery, por mucho que estén escritas en JavaScript, tienen su propia sintaxis que también debes aprender.

2. Usarás frameworks

Alguien ya ha mencionado algo sobre Angularjs.

No hay otra manera de implementar una aplicación SPA usando JavaScript puro sin usar marcos como Angular, Backbones, etc.

E incluso si quisieras, no tendrás la oportunidad de hacerlo porque te contratarán para formar parte de un equipo de desarrollo que ya está utilizando un marco particular.

De hecho, ningún anuncio de trabajo requiere que tenga un conocimiento profundo de JavaScript, pero se requiere que tenga experiencia en algún marco particular.

3. Inconsistencias en la implementación de JavaScript

Cuando tomas un curso de JavaScript, todo se ve bonito y bonito.

Pero espere hasta que comience a implementar su aplicación y los usuarios se quejan de ciertas características que no funcionan para ellos.

Los llamas y te das cuenta de que están usando Internet Explorer y, mientras todavía sostienes el teléfono, tienes ganas de gritarles -> “¿Por qué diablos no puedes descargar e instalar la última versión del navegador Google Chrome?”.

Bueno, su respuesta es que están usando una computadora de oficina y no se les permite hacer esas cosas.

Prefieren renunciar a sus funciones agradables antes que meterse en problemas con el personal de TI o la administración.

La mayoría de las bibliotecas y frameworks trabajan duro para quitarte este dolor de cabeza, pero implementan algunas características en segundo plano para manejar las inconsistencias.

No podrías escribir esto con cada JavaScript que escribiste para asegurarte de que sea lo suficientemente portátil.

Por último, mi consejo es que solo aprenda un poco de JavaScript y luego use marcos y bibliotecas para crear una aplicación realmente genial y créame que lo contratarán mientras duerme.

¡Aclamaciones!

Todas las respuestas anteriores son excelentes y proporcionan un maravilloso conjunto de recursos y principios de aprendizaje. Desafortunadamente, están escritos para personas que ya son competentes en codificación. Es decir, está escrito para informáticos con estudios universitarios. Personalmente, no estoy incluido en esta categoría. Por lo tanto, creo que si hubiera seguido muchos de los consejos anteriores cuando comencé a aprender Javascript, me habría frustrado muy rápidamente.

Codecademy ( http://www.codecademy.com ) es una plataforma prometedora, pero hizo poco para ayudarme a entender los conceptos básicos de Javascript. (Hablo un poco sobre Codecademy en una publicación de blog reciente: La brecha).

La opinión unánime en el desarrollo de software es que JavaScript: The Good Parts es uno de los mejores libros disponibles en Javascript. Dicho esto, sentiría una punzada de dolor por cualquiera que intentara aprender el idioma desde cero. El libro está escrito para personas que ya dominan el idioma y buscan avanzar al siguiente nivel. Todavía no me he aventurado a romper el libro porque no resuelve ninguno de mis problemas. Sin embargo, estoy seguro de que llegará un día en que será muy útil.

Como novato en Javascript, me parece que Douglas Crockford es una especie de padrino de la lengua. Por lo tanto, todos sugieren sus cosas. Desafortunadamente, una vez más, su material está realmente orientado a proporcionar una comprensión conceptual del lenguaje en lugar de lecciones prácticas y ejemplos que se pueden utilizar como dispositivos de aprendizaje para un principiante en Javascript.

Por supuesto, si puedes encontrar un proyecto en el que trabajar, es genial. Sin embargo, a menudo es bastante difícil dividir un problema en diferentes partes y resolver los problemas más pequeños si aún no tiene una sólida comprensión de la programación y cómo podría resolver un problema. Por lo tanto, hay una situación de “la gallina o el huevo”. Sin saber cómo podría resolver ciertos problemas, es difícil descubrir qué podría ser posible. Tener un proyecto específico en mente me motivó a querer aprender a codificar, pero tener la oportunidad de ver cómo un tipo brillante de desarrollo de software separa un problema me ayudó a comprender todas las posibilidades.

Entonces, ¿cuáles son los recursos más útiles para un verdadero principiante en Javascript? (Esto supone que ya tiene un buen dominio de HTML / CSS)

  • El punto de partida -> Tutorial de JavaScript – Existen innumerables problemas con los Tutoriales web en línea de W3Schools y muchas personas lo han señalado en otras partes de la web. Sin embargo, todavía patean el trasero de Codecademy. La razón principal de esto es debido a su pequeño y práctico editor que te permite jugar con ejemplos. Soy un gran admirador de escribir líneas de código incluso si comprende perfectamente el concepto; todavía hay valor en escribir minuciosamente el código. Ayuda a arraigar artículos comúnmente vistos. Sin embargo, puede llevar mucho tiempo y ser molesto alternar constantemente entre el navegador, el tutorial de JavaScript y el editor de texto para jugar en la construcción de diferentes funciones. El editor de w3schools no lo obliga a seguir un camino determinado ni a resolver problemas molestos para pasar a la siguiente etapa. Simplemente hace que sea más fácil jugar con el código y ver el resultado sin perder tiempo. Revise estos tutoriales y pase por alto conceptos y ejemplos rápidos que no parecen demasiado relevantes para lo que desea hacer.
  • Javascript 4 You: esta es una serie fenomenal de videos alojados en YouTube e iTunes. Cada video es muy corto y cubre diferentes conceptos en Javascript. No recuerdo cómo encontré este sitio, pero me encantaron los breves tutoriales del chico. No hay explicaciones largas y sin aliento. Él simplemente muestra el código, da una explicación rápida y muestra lo que hace en el navegador. ¡¡Es brillante!! Me sorprende que más personas no lo hayan mencionado. La mejor parte es que lo ha seguido haciendo durante los últimos años, por lo que ahora hay un gran archivo de material que va hasta partes más avanzadas de Javascript. ¡¡Es asombroso!!
  • javascript / tutorials – WebPlatform Docs – Este es un sitio que es rico en todo Javascript y desarrollo web. Si trabaja en secciones de este sitio, poco a poco, escribiendo cada línea de código y luego creando sus propios ejemplos, aprenderá una cantidad fenomenal.
  • JavaScript Garden: esta es una excelente descripción general de los fundamentos de Javascript. Escriba cada línea de código y, luego, intente crear su propio código basado en el modelo que acaba de ver en ese paso particular del tutorial.

Una vez que realmente comprende los conceptos básicos, es importante tener un problema que resolver. Cree su propio sitio web como proyecto, incluso si ya hay un millón de sitios que hacen lo mismo. A medida que juegue con su propio proyecto, comenzará a fluir los jugos creativos y comenzará a aprender más sobre los detalles de Javascript. A medida que avanzas, la clave es ser realmente bueno en la investigación. Mezcle textos avanzados, como JavaScript Cookbook y Eloquent Javacsript: A Modern Introduction to Programming. Combina períodos enfocados en el aprendizaje y períodos enfocados en experimentar.

Lleva un poco de tiempo, pero es algo genial cuando llegas al punto en el que puedes resolver problemas increíbles y crear programas geniales. Rápidamente se vuelve adictivo.

Compartiré las formas en que me he “nivelado” a lo largo de los años en Javascript.

  1. Mire los cursos : Obtener un curso o un conjunto de cursos en sitios como PluralSight, CodeAcademy, TreeHouse, Lynda, Udemy, etc. es una excelente manera de comenzar. Vi cursos al comienzo de mi carrera y hasta el día de hoy.
  2. Leer libros : ahora probablemente podría argumentar que con los cursos no necesita libros, pero todavía me encuentro leyendo todo el tiempo. Hay algunos grandes libros de O’Reilly para entrar.
  3. Construir proyectos paralelos : no puedo enfatizar lo importante que es esto. Si eres un desarrollador apasionado, te encontrarás muy curioso y con ganas de construir cosas, incluso si es solo por diversión o con fines de aprendizaje. Aquí hay algo que construí hace un par de años solo para practicar ReactJS: TouchyTouchy (mini proyecto muy simple pero genial)
  4. Emparéjese con otros programadores : ya sea que alguien sea más joven que usted, igual o mejor, trabajar con otro programador donde revise su código u obtenga una idea de cómo se creó y funciona algo es crucial.
  5. Lea el código fuente : otro punto que no puedo enfatizar lo suficiente. Mentiría si dijera que podría construir mi propio jQuery o React, pero leer el código fuente me ha dado mejoras significativas en mis habilidades y me ha permitido escribir aplicaciones más inteligentes y complejas.
  6. Responder preguntas : esta es una de mis técnicas nuevas y más favoritas. Me encanta responder preguntas sobre Quora y StackOverflow. En Quora, las preguntas que respondo suelen ser de nivel superior, como las suyas, pero me hace pensar más críticamente sobre la programación y sobre cómo otros piensan sobre temas similares. En StackOverflow, en realidad estoy escribiendo soluciones a problemas que otros desarrolladores están encontrando. Hay muchos problemas comunes a los que nos enfrentamos como desarrolladores, pero hay muchos problemas nuevos por los que otros pasan. No solo tengo que pensar en el problema (generalmente con menos contexto que el OP), sino ver cómo otros resuelven el problema.

Una combinación adicional que me gustaría sugerir son los puntos 6,3 y 4. En ese orden específicamente, me dirijo a StackOverflow generalmente, encuentro una pregunta y la convierto en un pequeño proyecto paralelo donde implemento mi propio diseño, y luego llevarlo a un amigo para que lo critique.

1) ¡Construye mierda! Obtenga una cuenta en Google App Engine y comience a lanzar aplicaciones web reales, con funciones CRUD reales.
2) EVITE JQUERY. Intenta todo lo que puedas para escribir javascript con 0ut Jquery. Jquery es una API superpuesta y pasarás demasiado tiempo aprendiéndola en lugar de JavaScript. ¡document.querySelector () funcionará bien!
3) Publique cada bit de código que escriba en GitHub e intente convencer a las personas / amigos más inteligentes que usted para que lo lean y le den consejos.
4) ¡Busca el fracaso y sigue aprendiendo!

Buena suerte, compañero hacker 🙂

Soy un desarrollador web autodidacta y digo que la mejor manera de aprender JavaScript es aprender solo . Al igual que cualquier otro lenguaje de programación / script web, el proceso de aprendizaje de JavaScript debe iniciarse desde el nivel Principiante hasta el nivel Intermedio y finalmente el nivel Avanzado .

El mayor error que hacen los desarrolladores:

————————————————————————————————————

Lo que muchos estudiantes de JavaScript cometen es que siguen leyendo los tutoriales de JavaScript uno por uno y no implementan ninguno de ellos. Esta forma de aprender es totalmente errónea y vana.

Los estudiantes deben leer un tutorial y luego implementar lo que el tutorial les ha enseñado, en su propio código. Esto les hará comprender el código correctamente, de lo contrario les garantizo que olvidarán lo que acaban de leer en los próximos 30 minutos o antes.

Tu primer tutorial de JavaScript

————————————————————————————————————

Supongamos que usted indicó con su primer tutorial de JavaScript que muestra la fecha actual.

El código JavaScript para esto es:

Después de leer este tutorial , debe implementarlo en su propia computadora. A continuación se detallan los pasos de implementación que debe seguir:

  1. Crea una nueva página web.
  2. Agregue el botón y el evento onclick.
  3. Agregue la alerta para mostrar la fecha.
  4. Ejecute la página web en su navegador para probar la función que acaba de crear.

Ahora ya sabe cómo implementar su código.

¿Qué editor debo usar para JavaScript?

————————————————————————————————————

Como principiante, también preguntará cómo escribir código JavaScript. Puede usar su bloc de notas de Windows, o puede descargar notepad ++ que es un muy buen editor

Sin embargo, el mejor editor según mí sería Visual Studio Code que es muy liviano con solo 45 MB de tamaño y muy, muy potente también. Es totalmente gratuito y se ejecuta en todos los sistemas operativos : Windows, Linux y Mac .

Lo que debe cubrirse en el nivel de principiantes de JavaScript

Los temas que debe cubrir son:

1. Sintaxis de JavaScript – Sintaxis de JavaScript

2. Variables – Variables de JavaScript

3. Tipos de datos – Tipos de datos de JavaScript

4. Operadores – Operadores JavaScript

5. Operaciones aritméticas – Aritmética JavaScript

6. Asignación – Asignación de JavaScript

7. Salida JS – Salida JavaScript

8. Objetos – Objetos JavaScript

9. Bucle: varias formas de recorrer una matriz en jQuery JavaScript

10. Break & Continue – JavaScript Break and Continue

Ejemplos de programas de JavaScript para principiantes

También me gustaría enumerar algunos programas que los principiantes deberían implementar.

1. Cree un programa donde el usuario ingrese 2 valores int en 2 cuadros de entrada y muestre el mayor de ellos en el cuadro de alerta, cuando se hace clic en un botón.

2. Cree un programa donde el usuario ingrese un número en un cuadro de texto y usted debe mostrar su tabla (hasta 10) en un div. La tabla debe crearse en el evento de clic del botón. También evite que el usuario ingrese una cadena en el cuadro de texto (dé el error apropiado en el cuadro de alerta cuando la entrada es una cadena).

3. Cree un pequeño formulario para la Solicitud de empleo. Debe tener 5 campos: nombre, edad, educación, dirección y salario esperado. Estos 5 campos deben tener controles HTML donde el usuario ingrese su información, debe haber un botón que al hacer clic muestre la información del usuario en un control div.

4. Encontrar si un número es número primo o no .

5. Cree una calculadora con una función común: sumar, restar, dividir y multiplicar

Lo que debe cubrirse en el nivel intermedio de JavaScript

1. AJAX

a. Introducción a AJAX

si. Base de datos AJAX

do. Aplicaciones XML

2. Funciones

a. Argumentos objeto

si. Funciones de flecha

do. Parámetros por defecto

re. Definiciones de métodos

mi. Parámetros de descanso

F. adquiridor

sol. setter

h. función asincrónica

3. Trabajando con clases

a. clase

si. constructor

do. se extiende

re. estático

4. Cookies de JavaScript

Lo que debe cubrirse en el nivel avanzado de JavaScript

Cuando estás en el nivel avanzado, esto significa que básicamente sabes cómo trabajar en JavaScript. En el nivel avanzado, debe lidiar con la integración de JavaScript con aplicaciones creadas en Python, Ruby, PHP, el sitio oficial de Microsoft ASP.NET, etc.

Aquí su trabajo sería crear funciones en JavaScript que se comuniquen de manera eficiente con la tecnología del servidor, como bases de datos, Python, Ruby, PHP, el sitio oficial de Microsoft ASP.NET.

Algunos ejemplos de funciones avanzadas hechas con JavaScript son:

1. Actualización parcial de partes de una página web desde la base de datos cada pocos segundos usando AJAX.

2. Obtenga y muestre precios de acciones en tiempo real en la página. Puede obtener el precio de las acciones implementando la API con su código JavaScript.

3. Crear una función interactiva en su sitio web para que aumenten las tasas de conversión. El ejemplo puede ser una característica de autocompletar que puede crear con JavaSript.

4. Implementaciones de API externas como TMDB API en su JavaScript y ayudando a los usuarios a obtener detalles de cualquier película, actor y serie

5. Desplazamiento infinito o función de paginación automática

Conclusión

Solo quiero señalarle directamente a la derecha para que pueda aprender JavaScript de manera eficiente y al mismo tiempo también le encanta este lenguaje web.

Espero que les guste mi respuesta y deseo que me den un voto positivo para que pueda saber si soy útil o no.

Gracias
Naina

¿Cómo aprendes algo?

Usted hace un plan, se establece metas SMART, establece un pequeño sistema de recompensas para alcanzar sus metas y comienza a marcar las casillas.

Claro, pero ¿cómo logras estos objetivos INTELIGENTES?

Bueno, te lo propones.

¿Qué? ¡Pero eso ya es lo que hago!

Tal vez. Pero probablemente no.

Dejame explicar.


¿Alguna vez has comenzado una rutina de ejercicios, incluso diseñando un plan para cuándo y qué hacer ejercicio, estando súper motivado y listo para matarlo …

¿Solo para parar después de una semana?

¿O tal vez dos si estuvieras realmente motivado?

¿Alguna vez te has dicho que comenzarías a despertarte temprano, te pondrías una alarma e incluso harías planes para lo que harías en las primeras horas de la mañana?

Y esa primera mañana, su despertador lo despierta muy temprano, y está enojado con el mundo porque no quiere levantarse de la cama, pero sabe que debe hacerlo y quiere hacerlo, pero al mismo tiempo no lo hace. ty todo es realmente frustrante …

Entonces, ¿Qué haces?

Tomas el camino fácil y presionas el botón de repetición.

Y así, su buena resolución no continuará.


¿Por qué te estoy diciendo esto?

Debido a que no estás motivado por el qué, estás motivado por el por qué .

No está motivado por la posibilidad de levantarse temprano, al igual que no está motivado por la simple perspectiva de aprender JavaScript.

Probablemente ni siquiera esté motivado por las cosas adicionales que podría hacer con sus nuevas horas de vigilia temprano en la mañana ‘. Al igual que no estás motivado por los ‘proyectos aleatorios’ que puedes hacer como parte de tu aprendizaje de JavaScript.


Ok, genial, pero eso no me dice cómo puedo mantenerme motivado .

Tienes razón. Pero sí le dice lo que no ayuda a mantenerse motivado .

Y para que quede claro:

Tu motivación tiene que provenir de tu por qué , no de tu qué .

El siguiente paso para ti es encontrar tu por qué.

Podría ser “Tengo 45 años, tengo una gran hipoteca, una familia que cuidar, hago un salario mínimo y en realidad me gusta la codificación, por lo que aprender JavaScript es mi única salida “.

O,

“Tengo 18 años y todo lo que siempre quise desde niño era construir cosas geniales que la gente usara. Tengo este increíble proyecto para una aplicación que mostrará eventos deportivos cercanos y alentará a las personas cercanas a practicar deportes juntos. Así que necesito aprender JavaScript para hacer realidad ese sueño “.

Sí, tiene que ser tan profundo. No puedes burlarte de algo como: “Me gusta la codificación y puedo aprenderlo solo, así que pensé en intentarlo”.

Eso no es lo suficientemente bueno.

Necesitas llegar al núcleo de por qué estás haciendo esto. Si está estancado en esto, podría beneficiarse al usar la técnica del porqué, que presento aquí y doy un ejemplo de la respuesta de Maxime Decleire a ¿Cómo puedo cambiar de carrera ahora a un campo de computadora / software?

Solo cuando sepa por qué está haciendo algo, lo hará de todo corazón.


Una vez que hayas entendido por qué, el resto es fácil: no es realmente un paseo por el parque, pero tener el motivo por el que hace que el descanso sea más fácil.

En este punto, necesitas saber cómo .

Se trata de establecer metas claras y viables. Metas INTELIGENTES.

Ser un aprendiz comprometido, es decir, como dije anteriormente, establecer objetivos SMART, rastrearlos, recompensarse por lograr objetivos y trabajar en proyectos que le interesen , preferiblemente los suyos.

I made an article about this for web development, which includes javascript, so still highly relevant: How to learn web development: what are the steps?


The motivation part is mainly taken care of by you knowing your why. Making a solid plan is also very important , but you probably already know that. SMART goals, projects that truly interest you – aka that you design or at least personalize to some extent, and making sure you keep track of your learning – I’m talking DEADLINES!

There’s only one thing I didn’t address yet, and it’s the what . The reason I didn’t spend any time on this is because there are already tons of resources out there to learn javascript, and you know them, so use them!

For the sake of being comprehensive, I will give you one resource I find very good that will get you started, and a bit more … How to Learn JavaScript Properly

Note: Notice that I followed the Golden Circle’s logic for this answer. You can read about it on my blog post , or see Simon Sinek’s original video on it:

Okay so this is how i learned JavaScript back in the day and i hope it’ll help ya as well:

  • JavaScript Basics:

So this is the most fundamental and most important part and first step of path to JS learning. Start with how to add JS to html and whats the difference between async and defer? and then move to variable , data types, loops and conditionals, functions , Anonymous functions, closures, arrays and associative arrays, events, Regular expressions, promises. And in the exact order. Maybe i’ve missed a few topics in here but you’ll stumble on ’em along the way anyway. Also learn how to debugg with Chrome DevTools coz Chrome DevTool is the best in business that is anything remotely related to JS.

  • Object-Oriented programming :

After you’ve the strong foundation of the JavaScript Basics, perhaps you should move to OOPs concept. I’d say OOPs is the most important concept in the JS or any other programming language. OOPs in JS is based on prototype inheritance chain thingy , unlike object or class inheritance in Java or C++. Perhaps, move to meta programming after OOPs, its not the most important part of JS but its nice to know coz believe me you dont want JS to surprise ya.

  • Testing and QA:

Testing your code is as important as debugging. You might’ve heard of words like TDD or BDD. TDD(Test driven development) is the concept of programming where you write automated failing tests before you write your actual codes. I know it sounds all weird but believe me you’ll prefer TDD development over BDD ( Behaviour driven development). BDD is the contrary to TDD. When you’ll be working with big projects , Testing is really important for your code to work the way you expect it to. It gives ya that satisfaction and sense of security. One of my fave tool to test JS is jasmine/jasmine . Its really simple and most effective way to test your codes.

  • jQuery:

jQuery is the library for JavaScript to make everything more dynamic ad interactive , i really mean everything. Its really fun to use and play around and it only takes like few lines of code to execute a code written in jQuery. jQuery interacts with DOM and css. In the jquery itself, you’ll encounter how to integrate AJAX with jQuery. Have you ever seen something like this in the browser where you get the content you requested without refreshing the web page? Yep thats AJAX. AJAX stands for Asynchronous JS and XML and it handles the requests ansynchronously to your HTML and CSS.

————————————————————————————————————————————————

Now that you’ve learned the jQuery , JS basics, AJAX, Chrome DevTools, Testing and QA, now you could call yourself a proper JS developer. Now its time to move forward to frameworks which gets the job done and are not only most demanding in 2017, they are the languages with the highest pay as well. Here are frameworks you should really really learn in my opinion.

  • React:

Formerly known as React.js, React, alongwith Angular, is the most demanding language of 2017. React was initially developed by facebook and few individuals and a small community. But over the time, React had lots of changes and now ’em changes are paying off. React lets ya develop UIs in the small chunks of a web page called components. React is really easy to learn and yet really strong and fun to code. I’d highly recommend learning React. If you decided to be a React developer , you should also consider learning React panels , React servers and React native.

  • Angular :

Angular is pretty much like React in few ways, but Angular lets you code SPAs(single page applications) in the form of components. Its THE MOST DEMANDING language in the front-end developing side of IT industry. Yep you read it correct. Angular is the JS framework, which basically means its written in JS. Since you can found JS everywhere in every browser , thats makes it really powerful and pretty useful as well. I’d highly recommend learn both React as well as Angular.

If you want to continue your journey with JS , there are other frameworks like Ember, Backbone, Knockoutjs, Vue.js, Chart.js etc. Its really crazy that JS also has a framewrok to deal with data science and its called D3.js. If you wanna learn any of ’em , just go ahead and learn it.

————————————————————————————————————————————————-

You might or might not find it shocking and fascinating that JS has its own framework to write JS on server side just like PHP or ASP .NET.

  • NodeJS :

NodeJS is the framework to write JS on the server-side. Believe me or not , but the code or APIs written in NodeJS is ridiculously fast and can handle mutiple requests at the same time unlike other back-end languages out there. Few companies have already implemented many of their servers on NodeJS. Its the future of server side languages but i wouldnt call it present coz there are few issues with scalability and deployment of big web apps implemented in Node.

  • ExpressJS:

ExpressJS is the framework of server side NodeJS which is also written in JS.If you are learning or want to learn Nodejs be sure to master ExpressJS as well coz it solves all the issues with NodeJS. Its a powerful framework as well.

————————————————————————————————————————————————

This is the last section of learning path of JavaScript but its not the least. There will be a time when you’d want to write very less code and legible codes. But this small library, i wouldnt say call it library per se, is really really really fun to learn and use.

CoffeeScript:

CoffeeScript is the equivalent to JS but without any clutter and hassle of semi-colons or brackets or double quotes , even curly braces. I’d really recommend it learning. Its really easy and even easier to write.

Other Tools and requisites:

  • ECMAscript6
  • XML and jSON
  • Git
  • Heroku

Also visit JavaScript for docs on JS when you begin your learning curve. And dont afraid to take on some projects along the way . This is all might sound like a lot but dont worry its really not. When you’ll get comfy in JS , there is no limitations to learn and be an expert in JS. As a programmer you gotta keep learning throughout your life and be inspired about whatchu do.

Also be sure to upvote or even comment if it really helped you. I’m passionate about coding and i think everyone shouod be able to learn it. So yeah Happy Coding!

As other users have mentioned, the best and quickest way to learn JavaScript is to jump right in and start writing some code. Before you begin learning JavaScript, however, you want to make sure you have a solid foundation in HTML & CSS, and web development concepts in general.

JavaScript de Douglas Crockford : The Good Parts es un recurso excelente con respecto a las mejores prácticas en JavaScript. La documentación de JavaScript de Mozilla es un buen recurso como referencia de JavaScript.

CodeAcademy and Treehouse are also great learning resources if you’re a beginner to coding. CodeAcademy le permitirá experimentar y aprender la sintaxis en un entorno interactivo, y Treehouse tiene miles de videos de cursos que puede ver.

Thinkful ofrece cursos Full Stack Flex (tiempo parcial) e Ingeniería de inmersión (tiempo completo). Both courses are based on a well-rounded, immersive curriculum that will help you develop advanced JavaScript knowledge and a solid foundation for you to be able to use the language on both the front and backend. In addition to the curriculum, both courses include three hours each week of 1-on-1 mentor sessions. Soy un mentor en Thinkful, yo mismo.

Regardless of the path that you take, a project-based approach should get the ball rolling for you.