¿Cómo convertirse en un ninja de JavaScript? [cerrado]

8

Quiero elegir JavaScript como mi campo de desarrollo principal, junto con HTML y CSS para convertirme en un desarrollador comúnmente conocido como desarrollador front-end . Pero no sé cómo convertirme en un profesional de JavaScript. Leí muchos libros y aprendí las piezas, incluidos los tipos de datos, la sintaxis, el uso de herramientas (como IDE, depuradores, etc.), jQuery, etc. Pero cuando miro algunos códigos JavaScript sofisticados que incluyen bibliotecas famosas, me parece " Nunca pude escribir ese código ". ¿Qué pasa aquí? ¿Qué paso debería haber dado que no hice? Siento que me falta algo aquí para convertirme en un desarrollador profesional de JavaScript. También vi películas de entrenamiento, incluidas las películas de Douglas Crockford en el Teatro Yahoo.

Saeed Neamati
fuente
23
¿Podemos suponer que ya tienes el atuendo?
JeffO
Qué decisión alucinante ... Shakehead
ThomasX
1
DOM Scripting, el libro. Luego comience a leer las cosas de John Resig y aprenda lo suficientemente bien como para ver el punto de lo que hicieron con la arquitectura de jQuery. Básicamente es una función de fábrica de adaptador / decorador para el DOM que aprovecha al máximo el cierre de la función para mantener los objetos jquery lo más livianos (en la memoria) posible. Vuelve y lee esa oración ocasionalmente mientras aprendes cosas nuevas hasta que tenga sentido. Ah, y no uses IDEs. No hasta que seas competente sin uno y puedas tomar una decisión informada.
Erik Reppen

Respuestas:

19

Tu respuesta es la experiencia. Me temo que no hay otra manera de llegar a ser bueno sin práctica. Intenta crear bibliotecas similares a las que has visto como ejercicio. ¡Sigue leyendo pero practica, practica, practica!

Gary Willoughby
fuente
3
+1 por experiencia, me temo. Realmente no hay otra manera. Si no puede hacerlo en el trabajo, realice algunos proyectos favoritos en casa o participe en un software de código abierto. Incluso corregir pequeños errores en una biblioteca JS que admires será una experiencia de aprendizaje masiva.
Tom Morgan
1
Gracias @Gary. Me pregunto si tal vez hay algunas técnicas para acelerar ese proceso de práctica. O tal vez hay algunos atajos, como algunos conceptos de JavaScript con los que muchos desarrolladores no están familiarizados.
Saeed Neamati
2
@SaeedNeamati hay algunos libros, como Good Parts. También recomendaría la participación de stackoverflow. Aprendí mucho al responder preguntas de JavaScript
Raynos
1
@Saeed Neamati: prueba algo que podrías pensar que está fuera de tus límites actuales. Te sorprenderás de lo lejos que llegas. Las mejores experiencias de aprendizaje que he tenido son cuando estoy un poco fuera de mi alcance y tuve que investigar y aprender para continuar con el proyecto.
Gary Willoughby
Teniente Aldo Raine: "Sabes cómo llegas al Carnegie Hall, ¿no? Practica"
MattyD
19

"Nunca pude escribir ese código"

De Verdad? Pruébalo primero.

DeadMG
fuente
2
¡Este es un muy buen consejo! Pruébalo y aprende las partes que aún no conoces. Así es como creces.
Gary Willoughby
Tampoco podían escribir el código hasta que lo hicieron.
Yatrix
Y 6 o 12 meses después de Javascript, mirará hacia atrás en sus primeros pasos y pensará 'hombre, qué aficionado es eso'. Práctica.
Alan B
5

Es curioso que expreses tu pregunta de esta manera. La mayoría de los libros sobre JavaScript básico no lo ayudan a comprender por qué y cómo se deben usar ciertos aspectos de JavaScript para lograr un código excelente. Lo que REALMENTE me ayudó a comprender el lado más avanzado de JavaScript, así como las mejores prácticas de codificación, fueron los escritos de John Resig, el ingeniero principal de JQuery.

http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=John+Resig

Particularmente:

Técnicas Pro JavaScript

Secretos del JavaScript Ninja

Estos le ayudan a comprender cómo deben usarse las funciones avanzadas de JavaScript y por qué. También puede leer sobre Patrones y Principios Ágiles, y en particular los escritos de Martin Fowler para obtener ideas más generalizadas sobre las mejores prácticas de codificación.

dqhendricks
fuente
1
Creo que realmente respondió la pregunta y proporcionó un consejo mucho mejor que "simplemente hágalo". Gracias por proporcionar estos recursos.
Ryan Rodemoyer
4

Tienes que programar ... mucho.
Estudie el código fuente de proyectos como jQuery, Node.js. Agregue CoffeScript o ClojureScript a su arsenal.
Echa un vistazo a JavaScript MVC o Backbone.js.

Comprueba lo que Google Closure trae a la mesa.
Y, por supuesto, marcar la red de desarrolladores de Mozilla.

Quirón
fuente
44
CoffeeScript y ClojureScript tienen su lugar, pero no le ayudan a aprender javascript en absoluto.
Raynos
1
Sí, lo sé, por eso dije: agregue CoffeScript o ClojureScript a su arsenal. Es bueno saber sobre estas dos tecnologías.
Quirón
4

Si elige este campo, prepárese para recibir un pago menor y ser considerado menos profesional / bueno que c / c ++ / c # / java / etc.

Este suele ser el caso, especialmente en términos de salarios. Es muy fácil encontrar codificadores js + html + css realmente buenos, pero es un poco difícil encontrar realmente buenos programadores c / c ++ / c #. Este es el problema que enfrenta la compañía para la que trabajo (alrededor de 300 empleados) ahora. Incluso a los estudiantes que tienen una buena comprensión de los idiomas mencionados se les paga mejor que a los desarrolladores experimentados de JS.

La mayoría de los desarrolladores de JS aprenden de los tutoriales de Internet y participan en proyectos de código abierto, lo cual es bastante bueno; tal vez encuentren algún proyecto de FOSS que utilice JS en gran medida (desarrollo front-end para gnome 3, para darle un ejemplo) y contribuir a ello De esta manera, puede ganar algo de experiencia con las herramientas y los idiomas.

Además, encuentre algunos libros bien calificados en Amazon y léalos. Pero recuerde, la CODIFICACIÓN es la forma en que aprende, así que comience a desarrollar, además de leer;)

Adi
fuente
1
Me parece que es fácil encontrar desarrolladores malos de js / html / css que puedan hackear un desastre imposible de mantener rápidamente. Los buenos desarrolladores aún son difíciles de encontrar.
Sean McMillan
1
Un buen chico de front end es probablemente más querido que los chicos de back-end: realmente hay mucho más vudú allí y ese mundo está cambiando mucho más rápido que el back-end.
Wyatt Barnett
3

Estoy de acuerdo con lo que se dijo anteriormente, solo necesitas practicar. También es importante comprender los patrones de diseño utilizados en el código javascript de gama alta. Creo que una vez que comprenda los patrones utilizados y por qué los usaron, puede ser mucho más claro. Pro JavaScript Design Patterns de Harmes and Diaz es un buen comienzo. También eche un vistazo a los patrones de diseño JavaScript esenciales de Osmani para principiantes .

George P
fuente
3

Los ninja normalmente son solo granjeros o campesinos vestidos con un atuendo simple pero furtivo que disfraza la identidad. Pero lo que hace que una persona simple sea un verdadero ninja es un objetivo significativo, lograrlo y luego no ser asesinado. Entonces, con eso en mente, ¿por qué no encuentras un demonio samurai javascript, afina tu katana de codificación y ve si puedes derrotar al chico malo sin matarte? Si tienes éxito, harás del mundo un lugar mejor para los otros granjeros de código y descubrirás que te has convertido en un ninja en el proceso. Eso o estarás muerto.

¡Buena suerte!

ChrisFM
fuente
también, la mayoría de los ninjas apestan y mueren bastante rápido, pero los que sobreviven se convierten en leyendas vivas;)
c69
2

No me llamaría maestro en javascript, pero de todos modos es bastante bueno. Lea, comprenda y codifique como estos libros:

http://www.amazon.com/Pro-JavaScript-Techniques-John-Resig/dp/1590597273/ref=sr_1_2?s=books&ie=UTF8&qid=1320176633&sr=1-2

http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742/ref=pd_sim_b_1

Eso cubriría lo básico. Luego explora todo el campo. Intenta aprender lo más posible. Aprende a depurar código en Firebug. Aprenda un par de frameworks javascript (algo decente): Jquery es el más fácil. Tal vez Dojo toolkit, Mootools y Prototype. Intenta leer y comprender el código fuente de los frameworks javascript. Construye un complemento en jQuery. Aprende el patrón del módulo. Hay mucho que aprender ...

Pero la regla más importante de todas es:

¡Codifica y trata de mejorar cada día!

Y no se convierta simplemente en un adicto al framework que necesita el último plugin o framework para hacer algo bueno. Intenta dominar el lenguaje central y haz complementos o widgets desde cero. Si no puedes hacer eso, entonces aún no eres genial.

marko
fuente
2

Definitivamente practique, pero, en mi humilde opinión, es mejor no solo hacer un trabajo ocupado para practicar; Encuentra un problema real para resolver. Piensa en algo genial para lograr y ve a escribirlo. Encuentre a alguien que quiera realizar un trabajo de JavaScript de forma gratuita (como una organización benéfica o sin fines de lucro) o de manera barata, y escriba el código para ellos. En otras palabras, su mejor práctica ocurrirá haciendo algo significativo.

Además, creo que JavaScript es un lenguaje realmente interesante y realmente muy poderoso, pero aprendí más sobre programación en general en la clase C de la universidad que tomé hace años que de cualquier fuente anterior o posterior. El aprendizaje C vino con el aprendizaje sobre cómo piensan las computadoras, sobre la memoria en bits y bytes, y tuve un maestro bastante decente que enfatizó algunas prácticas de programación fundamentales realmente sólidas. El tipo que dijo aprender otro idioma no estaba completamente equivocado: aprender otro idioma cambia un poco tu visión de la programación y te hace apreciar las similitudes y diferencias.

Aerik
fuente
1

El código javascript que encuentra en una aplicación web típica es bastante fácil, especialmente si utiliza un marco como jQuery. Escribir complementos personalizados es un poco más avanzado, pero solo requiere algunos conceptos básicos. Esto es suficiente para la mayoría de los propósitos: en entornos empresariales realmente puede impresionar a los clientes con algunas técnicas simples del desarrollo de Internet porque la interfaz de usuario existente generalmente es horrible, pero no es realmente un nivel ninja.

Si realmente quiere saber javascript, necesita algo un poco más desafiante donde se encontrará con limitaciones del sistema y se verá obligado a aplicar técnicas más avanzadas. Puede encontrar parte de este tipo de código en marcos que tienen que lidiar con la compatibilidad del navegador, pero este es en gran medida un problema resuelto, además de ser bastante frustrante para trabajar. Hay muchas opciones más interesantes en torno a las aplicaciones html5: intente implementar algo que normalmente no se haría en un navegador.

Mi propio ejemplo de esto es un cliente git. Javascript no maneja muy bien los datos binarios, y la implementación ingenua bloquea la interfaz de usuario durante varios minutos y asigna nuevos objetos lo suficientemente rápido como para quedarse sin memoria antes de que se active GC. La optimización de algo como esto lleva a aprender exactamente qué sucede cuando se ejecuta el código, y dado que esta comprensión es imposible con un código mal estructurado, aprenderá a escribir JavaScript con una estructura clara que también se aplica a las aplicaciones más típicas.

Tom Clarkson
fuente
0

Practica en el campo y JQuery. Este es el mejor consejo que puedo dar.

Dinámica
fuente
-7

No aprenda JavaScript como su primer idioma, y ​​no intente emular el estilo de programación que encuentra en las bibliotecas de JavaScript. La mayoría de los programadores de JavaScript son hacks que me entregaron a lenguajes de programación reales como C ++, C, Java, etc. El resultado es que su código JavaScript es una mezcla de código de espagueti no comentado e indescifrable. Lo sé, porque trabajé como ingeniero de software C ++ / Java / C # y ahora estoy llegando al mundo de JavaScript.

Entonces, si quieres ser un gran programador de software de JavaScript, primero aprende algunos otros lenguajes de programación y luego vuelve a JavaScript.

stackoverflowuser2010
fuente
44
Su implicación de "C ++, C, Java" son mejores lenguajes que JavaScript. Estás insinuando que JavaScript es el problema . Estas son todas declaraciones falsas.
Raynos
44
Creo que usted no está pudiendo ver la gran funcionalidad de JavaScript, y lo que el lenguaje es capaz de ...
@ stackoverflowuser2010 Eso es falso. Estoy seguro de que C ++ y PHP tienen tantos programadores no calificados pirateando sin saber lo que están haciendo como JavaScript. Es cierto que la barrera de entrada para js es menor. Sin embargo, la solución es aprender JavaScript para no aprender un lenguaje superior . Y mientras hablamos de idiomas superiores, uno debería aprender a aprender a sí mismo . Eso ayuda para el aprendizaje de JavaScript más
Raynos
2
La mayoría de los programadores apestan, en cualquier idioma. La diferencia con JavaScript es que puede ver la fuente y verla.
Sean McMillan
1
-1: Solo una diatriba no admitida.
Kevin Cline