Como se tornar um ninja JavaScript? [fechadas]

8

Quero escolher o JavaScript como meu principal campo de desenvolvimento, ao lado de HTML e CSS para me tornar um desenvolvedor conhecido como desenvolvedor front-end . Mas não sei como me tornar um profissional de JavaScript. Eu li muitos livros e aprendi as peças, incluindo tipos de dados, sintaxe, uso de ferramentas (como IDEs, depuradores, etc.), jQuery etc. Mas quando olho para alguns códigos JavaScript sofisticados, incluindo bibliotecas famosas, fico " Eu nunca poderia escrever esse código ". O que há de errado aqui? Que passo eu deveria dar que não dei? Sinto que estou perdendo algo aqui para me tornar um desenvolvedor profissional de JavaScript. Também assisti a filmes de treinamento, incluindo os filmes de Douglas Crockford no Yahoo Theatre.

Saeed Neamati
fonte
23
Podemos assumir que você já tem a roupa?
JeffO 23/07
O que um incompreensível decisão ... shakehead
ThomasX
1
DOM Scripting, o livro. Em seguida, comece a ler as coisas de John Resig e aprendê-las o suficiente para entender o que elas fizeram com a arquitetura do jQuery. É basicamente uma função de fábrica de adaptador / decorador para o DOM aproveitando bastante o fechamento da função para manter os objetos jquery o mais leve possível (na memória). Volte e leia a frase ocasionalmente enquanto aprende coisas novas até que faça sentido. Ah, e não use IDEs. Não até que você seja competente sem um e possa tomar uma decisão informada.
Erik Reppen

Respostas:

19

Sua resposta é experiência. Receio que não haja outra maneira de se tornar bom sem prática. Tente criar bibliotecas semelhantes às que você considerou um exercício. Continue lendo, mas pratique, pratique, pratique!

Gary Willoughby
fonte
3
+1 por experiência, receio. Realmente não há outro caminho. Se você não conseguir fazê-lo no trabalho, faça alguns projetos de estimação em casa ou envolva-se em software de código aberto. Até mesmo corrigir pequenos bugs em uma biblioteca JS que você admira será uma experiência de aprendizado enorme.
Tom Morgan
1
Obrigado @Gary. Só me pergunto se há algumas técnicas para tornar esse processo de prática mais rápido. Ou talvez haja alguns atalhos, como alguns conceitos de JavaScript com os quais muitos desenvolvedores não estão familiarizados.
Saeed Neamati
2
@SaeedNeamati, existem alguns livros, como o Good Parts. Eu também recomendaria o envolvimento do stackoverflow. Eu aprendi muito de responder javascript perguntas
Raynos
1
@Saeed Neamati - Tente algo que você acha que está fora dos seus limites atuais. Você pode se surpreender até onde você chega. As melhores experiências de aprendizado que tive foram quando estou um pouco fora da minha profundidade e precisei pesquisar e aprender para continuar com o projeto.
Gary Willoughby
Tenente Aldo Raine: "Você sabe como chegar ao Carnegie Hall, não sabe? Prática."
MattyD
19

"Eu nunca poderia escrever esse código"

Mesmo? Experimente primeiro.

DeadMG
fonte
2
Esse é um ótimo conselho! Experimente e aprenda as partes que você ainda não conhece. É assim que você cresce.
Gary Willoughby
Eles não podiam escrever o código até que o fizessem.
Yatrix
E em 6 ou 12 meses em Javascript, você analisará seus primeiros passos e pensará 'cara, que amador é esse'. Prática.
Alan B
5

Engraçado você deve formular sua pergunta dessa maneira. A maioria dos livros sobre javascript básico não ajuda a entender por que e como certos aspectos do JavaScript devem ser usados ​​para obter um ótimo código. O que realmente REALMENTE me ajudou a entender o lado mais avançado do JavaScript, bem como as melhores práticas de codificação, foram os escritos de John Resig, o principal engenheiro do JQuery.

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

Particularmente:

Técnicas JavaScript Pro

Segredos do JavaScript Ninja

Isso ajuda você a entender como os recursos avançados de JavaScript devem ser usados ​​e por quê. Você também pode ler sobre Padrões e Princípios Ágeis e, em particular, os escritos de Martin Fowler para idéias mais generalizadas sobre as melhores práticas de codificação.

dqhendricks
fonte
1
Acho que você realmente respondeu à pergunta e forneceu conselhos muito melhores do que "apenas faça". Obrigado por fornecer esses recursos.
Ryan Rodemoyer
4

Você tem que programar ... muito.
Estude o código fonte de projetos como jQuery, Node.js. Adicione CoffeScript ou ClojureScript ao seu arsenal.
Dê uma olhada no JavaScript MVC ou Backbone.js.

Veja o que o Google Closure traz para a mesa.
E, claro, adicione a Mozilla Developer Network aos favoritos.

Quíron
fonte
4
O CoffeeScript e o ClojureScript têm seu lugar, mas não ajudam a aprender javascript.
Raynos 23/07
1
Sim, eu sei, foi por isso que disse: Adicione CoffeScript ou ClojureScript ao seu arsenal. É bom saber sobre essas duas tecnologias.
Quíron
4

Se você escolher esse campo, esteja preparado para receber menos e ser considerado menos profissional / bom que c / c ++ / c # / java / etc.

Geralmente é esse o caso, especialmente em termos de salários. É muito fácil encontrar codificadores js + html + css realmente bons, mas é meio difícil encontrar programadores c / c ++ / c # realmente bons. Esse é o problema que a empresa em que trabalho (cerca de 300 funcionários) está enfrentando agora. Até os alunos que têm uma boa compreensão dos idiomas mencionados foram pagos melhor do que os desenvolvedores de JS experientes.

A maioria dos desenvolvedores de JS aprende com os tutoriais da Internet e participa de projetos de código aberto, o que é uma coisa bastante boa - talvez encontre algum projeto FOSS que use muito o JS (desenvolvimento de front-end para o gnome 3, para dar um exemplo) e contribuir para isso. Dessa forma, você pode obter alguma experiência com as ferramentas e idiomas.

Além disso, encontre alguns livros com boa classificação na Amazon e leia-os. Mas lembre-se, CODING é a maneira que você aprende, então comece a desenvolver, além de ler;)

Adi
fonte
1
Parece-me que é fácil encontrar desenvolvedores de js / html / css ruins que possam hackear uma bagunça impossível de manter rapidamente. Bons desenvolvedores ainda são difíceis de encontrar.
Sean McMillan
1
Um bom cara de front-end é provavelmente mais querido do que os de back-end - realmente há muito mais vodu por lá e esse mundo está mudando de carga mais rapidamente do que o back-end.
Wyatt Barnett
3

Eu concordo com o que foi dito acima, você só precisa praticar. Também é importante entender os padrões de design usados ​​no código javascript high-end. Eu acho que depois que você entender os padrões usados ​​e por que eles os utilizaram, pode ficar muito mais claro. Os Pro JavaScript Design Patterns de Harmes e Diaz são um bom começo. Veja também os Padrões de design JavaScript essenciais da Osmani para iniciantes .

George P
fonte
3

Os ninjas normalmente são apenas agricultores ou camponeses vestidos com roupas simples, mas furtivas, que disfarçam a identidade. Mas o que faz de uma pessoa simples um verdadeiro ninja é um objetivo significativo, realizá-lo e depois não se matar. Então, com isso em mente, por que você não encontra um demônio samurai javascript, aguça a codificação da katana e vê se consegue derrubar o badboy sem se matar. Se você conseguir, fará do mundo um lugar melhor para os outros criadores de código e descobrirá que se tornou um ninja no processo. Isso ou você estará morto.

Boa sorte!

ChrisFM
fonte
Também - a maioria dos ninjas chupar e foi morto muito rápido - mas aqueles que sobrevivem - se tornar lendas vivas;)
C69
2

Eu não me chamaria de mestre em javascript, mas muito bom mesmo assim. Leia, entenda e codifique como estes livros:

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

Isso cobriria o básico. Depois explore todo o campo. Tente aprender o máximo possível. Aprenda a depurar código no Firebug. Aprenda algumas estruturas javascript (um tanto decentes) - o Jquery é o mais fácil. Talvez kit de ferramentas Dojo, Mootools e Prototype. Tente ler e entender o código fonte das estruturas javascript. Crie um plugin no jQuery. Aprenda o padrão do módulo. Há muito o que aprender ..

Mas a regra mais importante de todas é:

Código e tente melhorar a si mesmo todos os dias!

E não se torne apenas um viciado em framework que precisa do mais recente plugin ou framework para fazer algo de bom. Tente dominar o idioma principal e faça plug-ins ou widgets desde o início. Se você não pode fazer isso, ainda não é ótimo.

marko
fonte
2

Definitivamente praticar - mas, IMHO, é melhor não apenas fazer um trabalho ocupado para praticar; encontre um problema real para resolver. Pense em algo legal para realizar e escreva-o. Encontre alguém que queira fazer algum trabalho javascript gratuitamente (como para uma instituição de caridade ou sem fins lucrativos) ou muito barato e escreva um código para eles. Em outras palavras, sua melhor prática ocorrerá fazendo algo significativo.

Além disso - acho que o javascript é uma linguagem realmente interessante e realmente muito poderosa -, mas aprendi mais sobre programação em geral na classe C da faculdade que fiz anos atrás do que em qualquer fonte antes ou depois. Aprender C veio com aprender sobre como os computadores pensam, sobre a memória em bits e bytes, e eu tive um professor bastante decente que enfatizou algumas práticas de programação fundamentais realmente sólidas. O cara que disse aprender outra língua não estava completamente errado - aprender outra língua muda um pouco sua visão de programação e faz você apreciar as semelhanças e diferenças.

Aerik
fonte
1

O código javascript que você encontra em um aplicativo Web típico é bastante fácil, especialmente se você usar uma estrutura como o jQuery. Escrever plugins personalizados é um pouco mais avançado, mas ainda requer apenas alguns conceitos básicos. Isso é suficiente para a maioria das finalidades - em ambientes corporativos, você pode realmente impressionar os clientes com algumas técnicas simples de desenvolvimento da Internet, porque a interface do usuário existente geralmente é horrível - mas não é realmente um nível ninja.

Se você realmente deseja conhecer o javascript, precisa de algo um pouco mais desafiador, onde encontrará as limitações do sistema e será forçado a aplicar técnicas mais avançadas. Você pode encontrar parte desse tipo de código em estruturas que precisam lidar com a compatibilidade do navegador, mas esse é um problema amplamente resolvido, além de ser bastante frustrante de se trabalhar. Existem muitas opções mais interessantes em torno dos aplicativos html5 - tente implementar algo que normalmente não seria feito em um navegador.

Meu próprio exemplo disso é um cliente git. Javascript não lida com dados binários muito bem, e a implementação ingênua bloqueia a interface do usuário por vários minutos e aloca novos objetos com rapidez suficiente para ficar sem memória antes que o GC seja acionado. A otimização de algo assim leva a aprender exatamente o que acontece quando o código é executado, e como esse entendimento é impossível com códigos mal estruturados, você aprenderá a escrever javascript com uma estrutura clara, aplicável também a aplicativos mais comuns.

Tom Clarkson
fonte
0

Prática em campo e JQuery. Este é o melhor conselho que posso dar.

Dinâmico
fonte
-7

Não aprenda JavaScript como seu primeiro idioma e não tente emular o estilo de programação encontrado nas bibliotecas JavaScript. A maioria dos programadores de JavaScript são hackers que desistiram de linguagens de programação reais como C ++, C, Java etc. O resultado é que o código JavaScript deles é um amontoado de código espaguete não comentado e indecifrável. Eu sei, porque trabalhei como engenheiro de software C ++ / Java / C # e estou entrando no mundo do JavaScript agora.

Portanto, se você deseja ser um ótimo programador de software JavaScript, aprenda algumas outras linguagens de programação primeiro e depois volte ao JavaScript.

stackoverflowuser2010
fonte
4
Você implica "C ++, C, Java" são linguagens melhores que JavaScript. Você implica que o JavaScript é o problema . Estas são todas declarações falsas.
Raynos 23/07
4
Eu acho que você não estão a ver a grande funcionalidade de javascript, e que essa linguagem é capaz de ...
@ stackoverflowuser2010 Isso é falso. Tenho certeza de que C ++ e PHP têm o mesmo número de programadores não qualificados cortando sem saber o que estão fazendo como JavaScript. É certo que a barreira de entrada para js é menor. No entanto, a solução é aprender JavaScript e não aprender uma linguagem superior . E enquanto estamos falando de línguas superiores, deve-se aprender a si mesmo . Isso vai ajudar a aprender JavaScript mais
Raynos
2
A maioria dos programadores é péssima - em qualquer idioma. A diferença com o JavaScript é que você pode visualizar a fonte e vê-la.
Sean McMillan
1
-1: Apenas um discurso não suportado.
Kevin cline