Js se aprende primero los conceptos básicos, se practica mucho, mucho no... demasiado, ¿Como? Haciendo proyectos, retándote a ti mismo, una vez que aprendes JS comprendes que no se trata de memorizar si no la lógica inmensa que hay detrás de la programación, la teoría y la practica te da a conocer las herramientas y es con la lógica que se construyen aplicaciones.
Antes de conocer un poco de programación nunca entendí porque hablaban tanto de lógica, pero ahora entiendo que la lógica lo es todo en la programación, es como cuando hablamos otro idioma conocer las palabras pero no saber cómo usarlas, por eso es que cuando comprendes todos los conceptos básicos y avanzados de un lenguaje se te facilita aprender otro porque aunque cambie su sintaxis la lógica es la misma.
¿Dónde aprender? Yo aprendí mucho en Udemy, Primero aprendiendo los conceptos y la sintaxis luego haciendo proyecto tras proyecto, una vez "Copiamos" proyectos tenemos una idea para comenzar a crear nuestros propios proyectos porque extraemos de todo un poco.
Pero... Realmente ser buen programador implica no hacer páginas web, eso lo hace cualquiera o cosas que ya existen, ser un buen programador es utilizar la lógica para crear cosas que no se hayan creado,
Plataformas como Platzi aunque muy costosas te colocan todo en bandeja de plata para aprender desde cero también es un buen comienzo, en mi opinión personal ya hay tantos usuarios en platzi que apuesto a que todos saben hacer lo mismo y probablemente alguien de Udemy sepa muchas más cosas ya que el libre albedrío que te da Udemy de escoger tus propios cursos no hacen una sola línea de aprendizaje para todos si no la tuya, ya depende de ti de hasta donde llegar, yo todavía considero que me faltan años para profundizar en muchos aspectos, no sé cómo alguien dice que aprendió JS en 6 meses, lo básico se aprende en 1 o 2 meses pero desarrollar la lógica y profundizar en conceptos más avanzados de JS implica hasta que vuelvas a repasar la matemática que aprendiste en secundaria.