¿Cuál es el camino hacia el dominio de JavaScript? [cerrado]

18

Sé cómo comenzamos con JavaScript, cortamos y pegamos un fragmento para obtener una pequeña funcionalidad o validación del lado del cliente.

Pero si sigue este camino al intentar implementar un comportamiento interactivo rico, no pasará mucho tiempo antes de que se dé cuenta de que está creando una Big Ball Of Mud.

Entonces, ¿cuál es el camino hacia la experiencia en la programación de la capa de interacción? ¿Qué libros, tutoriales, ejercicios y procesos contribuyen a la capacidad de programar JavaScript robusto y mantenible?

Todos sabemos que la práctica es importante en cualquier esfuerzo, pero estoy buscando un camino similar a la respuesta aquí: /programming/2573135/

Eric Wilson
fuente
La "capa de interacción"?
Robert Harvey
1
Debería ser una nueva etiqueta en mi opinión: P
Mike
1
Otra pregunta donde la respuesta es practicar como cualquier otro campo que quieras dominar. Practique, aprenda de sus compañeros (los que tienen más habilidades) y mencioné la práctica. El proceso para dominar el lenguaje de programación x es el mismo que para el lenguaje de programación y, que es el mismo que para dominar la escultura, el croché o cualquier otro oficio.
Chris
1
@johnny: cuando puedes arrebatar la excepción del seguimiento de la pila ...
TMN
1
@Chris: si sigues el enlace que incluí, verás que esa pregunta puede ser útilmente respondida. Decir "la respuesta es práctica" no es útil. Señale algunos puntos de referencia a lo largo de un camino útil, no solo me diga que comience a caminar.
Eric Wilson

Respuestas:

15

lea el código de otras personas ( MUCHO ) e intente comprender lo que están haciendo y por qué lo están haciendo. Escriba su propio código ( MUCHO ) pruebe nuevos conceptos e ideas, sobre todo juegue y diviértase. La mejor manera de mejorar en algo es practicar, practicar y luego practicar un poco más.

Lea libros, tutoriales, artículos, blogs, fuentes RSS, etc.

Cree algún proyecto para trabajar en su tiempo libre. Si no puede pensar en algo, busque un proyecto de código abierto en el que pueda estar interesado en trabajar.

Además, no se desanime y, sobre todo, recuerde que el "dominio" no es un destino, sino un viaje: tómelo a su propio ritmo, diviértase y disfrute del paisaje. Si lo tomas demasiado en serio, te quemarás y eso no servirá de nada.

Muad'Dib
fuente
77
Deseo que esto responda automáticamente cuando alguien pregunte "cómo aprender / dominar X". Suena muy parecido a cómo dominas una prueba matemática o refinas una novela. Vea otros trabajos de X, practique X usted mismo, enjuague, repita -> Master en X.
Chris
@ Chris, sí. Esta es más o menos mi respuesta estándar.
Muad'Dib
Aunque puedo decir que las preguntas sobre dónde obtener buenas referencias / libros / materiales son preguntas que disfruto. Recientemente asumí Python y la pregunta que tuvimos programmers.stackexchange.com/questions/12189/... Me pareció ser estelar para ponerme en marcha.
Chris
@ Chris, sí, esta respuesta es más un consejo general y carece de pasos específicos que, en mi opinión, pueden ser muy objetivos. A mí también me gusta ver enlaces. Pero, para eso es Google, ¿verdad?
Muad'Dib
Correcto, pero Google no puede proporcionar ninguna reacción / impresión del material. Google hace bien pero no hace todo. De acuerdo independientemente. t
Chris
3

En primer lugar, debe saber cuál será su objetivo con respecto al aprendizaje de JavaScript. Si solo está buscando hacer una validación de entrada y hacer que la interfaz de usuario sea un poco más fácil para el usuario, entonces realmente no necesita tener una comprensión completa del lenguaje si está utilizando marcos como jQuery .

Dicho esto, si desea obtener una comprensión sólida de JavaScript, intente escribir una extensión en un marco existente que implemente una herramienta útil.

En términos de libros y otros recursos, realmente no he oído hablar mucho de libros útiles y, en general, he aprendido el idioma al tratar de resolver problemas y verificar que mi código esté limpio de acuerdo con JSLint . Una combinación de un problema interesante (por ejemplo, extensión de marco), JSLint, y tiempo suficiente para practicar un poco, probablemente sea su mejor opción en términos de aprendizaje del idioma.

rjzii
fuente
2

Antes de aprender cualquiera de los detalles de desarrollo web (DOM, etc.), aprenda el idioma principal. Puede aprender de muchas maneras: libros, videos , etc. Por supuesto, necesitará leer y escribir código.

ECMAScript (ese es el nombre del estándar de lenguaje; javascript se refiere a varias implementaciones) es un lenguaje muy interesante. Es un lenguaje orientado a objetos dinámico, funcional y basado en prototipos, por lo tanto, debe tomarse su tiempo para comprender los principios de estos paradigmas.

Aprenda a usar una consola interactiva en su navegador (en Chromium, puede acceder a esto presionando Ctrl+ Shift+J ), que es similar a herramientas como IRB y el intérprete interactivo de Python. Esto es útil para probar características de lenguaje y depuración.

Use JSLint para verificar la calidad de su código.

Cuando comience a hacer un desarrollo 'real' usando DHTML, haga su vida más fácil usando un marco, como JQuery , para manejar los frustrantes problemas entre navegadores.

david4dev
fuente
1

Aquí se pueden aplicar muchas de las técnicas que hacen que un programador sea un experto en un idioma dado, aunque javascript tiene un par de perlas que permiten su uso con un efecto extraordinario. Quizás uno de los mayores obstáculos que tuve que superar usando JavaScript fue deshacer mi mentalidad de programación "C", es decir, mil funciones diminutas agrupadas en un solo archivo js.

Un consejo general es hacer un resumen cada vez que puedas e intentar formar clases siempre que puedas para organizar el comportamiento general. Cree nuevos archivos js para cualquier funcionalidad que pueda usarse con buenos resultados en sus otros archivos js (dentro de lo razonable) y evite las variables globales si es posible. Te recomiendo que aprendas jQuery si aún no lo has hecho. Es una herramienta que he llegado a amar y ahora no podría prescindir. Es una extensión extremadamente flexible de javascript que le permite simplificar enormemente su código, lo cual es bueno para la simplicidad y también para poder codificar de manera rápida y eficiente. jQuery viene con una gran biblioteca de complementos que le permite hacer muchas cosas que no podrían ser más impresionantes si lo hiciera en flash. Echa un vistazo a jQuery UIpara un sistema de temas completo para su sitio, lo que le permite modificar de manera efectiva todo el diseño de su sitio sin hacer mucho. Viene incluido con muchos efectos de animación y controles útiles que se usan comúnmente en sitios web (selector de fecha, botón, barra de progreso, etc.), la mayoría de los cuales se pueden activar usando una sola línea de javascript.

¡Espero que ayude!

Neil
fuente
1

Gran parte de lo que hace en JavaScript está esencialmente entrelazado con la compatibilidad con DOM, CSS y navegador, por lo que comprender el DOM es uno de los requisitos principales para dominar JavaScript.

Aprender las características principales del lenguaje, como la orientación de objetos basada en prototipos, funciones anónimas y características más generales del lenguaje, como bucles, condiciones, etc., es la clave para comprender cualquier código que lea que no esté interactuando específicamente con DOM / CSS .

También necesitará aprender la biblioteca estándar de idiomas, por ejemplo, la cadena y las matemáticas y otras funciones de objetos centrales.

También debe estudiar algoritmos, si desea obtener una comprensión verdadera y completa de cómo se están haciendo las cosas y cómo implementar soluciones más avanzadas, este conocimiento es fundamental para comprender la programación avanzada y va más allá de la sintaxis específica del lenguaje.

ocodo
fuente
1

Lea el código de las bibliotecas que está utilizando. Leer la fuente jQuery o Prototype le enseñará montones sobre lo que realmente sucede en javascript y en el dom. Investigue las técnicas que utilizan las bibliotecas para que pueda comprenderlas. Siéntase libre de comenzar leyendo los micro-marcos en http://microjs.com/ . Asegúrese de mirar la fuente real, y no solo los archivos distribuidos. (jQuery tiene una docena de archivos de origen, pero se ensamblan mediante un proceso de compilación).

Sean McMillan
fuente
0

Javascript se aplica en muchas áreas de desarrollo en este momento.

  • Es el único idioma presente en el navegador moderno.
  • Puede ejecutarse en el servidor, gracias a node.js y al motor V8.
  • Se puede ejecutar incrustado en dispositivos móviles a través de PhoneGap u otras alternativas.
  • Se puede usar para crear aplicaciones de Windows 8.

Por lo tanto, creo que hay más maestrías de JavaScript. Depende de con qué quiera comenzar, pero tenga la seguridad de que cada uno de los 4 elementos mencionados anteriormente le dará un desafío diferente, está bien, tal vez los campos de ventana 8 y teléfono podrían ser similares, pero el resto son diferentes.

Si hablamos del entorno del navegador, aprender cómo se debe organizar casi todas las aplicaciones web podría ser uno de los caminos que podría seguir. Voy por ese camino, y experimento con mis propias ideas, revisando repositorios git de bibliotecas populares de organización de códigos como dojo, backbone, ember, etc.

Si estamos hablando del entorno del nodo js, ​​esa es una historia diferente. No nos preocupa la minificación y el tamaño del archivo. Al crear aplicaciones completas en nodos, sistemas de compilación, sitios, API REST, hay muchas cosas por descubrir allí.

Si hablamos del mundo móvil, viene a la mente la optimización excesiva. Para empezar, las propiedades aceleradas de CSS3, las animaciones, los eventos táctiles y el intento de usar la misma arquitectura que la web con componentes de IU más especializados son excelentes.

En general, como otros respondieron, experimentar con su propio código y con el código de los demás es la mejor manera de involucrarse, mantenerse al día con las novedades, y quién sabe, tal vez idear el próximo gran paso.

Otra cosa que ayuda es trabajar en equipo y comprender las diferencias entre su forma y la forma en que el equipo escribe el código. Trabajar en un equipo de desarrolladores de JavaScript lo obligará a escribir un mejor código y documentarlo bien. Creo que no hay mejor manera de aprender sobre la arquitectura de una aplicación que escribir un wiki sobre lo que pretendes implementar o que ya has implementado.

Vlad Nicula
fuente
-1

Odiaba JavaScript hasta que descubrí jQuery. Ahora me encanta y lo uso todo el tiempo. Probablemente demasiado.

bestattendance
fuente
Odiaba el DOM y el cumplimiento entre navegadores, no EcmaScript.
Raynos
¡jQuery hace que Javascript sea divertido! +1
Dinámico