Wie werde ich ein JavaScript-Ninja? [geschlossen]

8

Ich möchte neben HTML und CSS auch JavaScript als Hauptentwicklungsfeld auswählen, um ein Entwickler zu werden, der allgemein als Front-End-Entwickler bekannt ist . Aber ich weiß nicht, wie ich ein JavaScript-Profi werden soll. Ich habe viele Bücher gelesen und die Teile gelernt, einschließlich Datentypen, Syntax, Verwendung von Tools (wie IDEs, Debugger usw.), jQuery usw. Aber wenn ich mir einige ausgefeilte JavaScript-Codes einschließlich berühmter Bibliotheken anschaue, bin ich wie " Ich könnte diesen Code nie schreiben ". Was ist hier los? Welchen Schritt hätte ich tun sollen, den ich nicht getan habe? Ich habe das Gefühl, dass mir hier etwas fehlt, um ein professioneller JavaScript-Entwickler zu werden. Ich habe mir auch Schulungsfilme angesehen, darunter Douglas Crockfords Filme im Yahoo Theatre.

Saeed Neamati
quelle
23
Können wir davon ausgehen, dass Sie das Outfit bereits haben?
JeffO
Was für eine umwerfende Entscheidung ... Shakehead
ThomasX
1
DOM Scripting, das Buch. Lesen Sie dann John Resigs Artikel und lernen Sie ihn gut genug, um zu verstehen, was sie mit der Architektur von jQuery gemacht haben. Es handelt sich im Grunde genommen um eine Adapter- / Dekorationsfabrikfunktion für das DOM, die den Funktionsabschluss stark nutzt, um Abfrageobjekte so leicht (im Speicher) wie möglich zu halten. Komm zurück und lies diesen Satz gelegentlich, während du neue Dinge lernst, bis es Sinn macht. Oh, und benutze keine IDEs. Erst wenn Sie ohne einen kompetent sind und eine fundierte Entscheidung treffen können.
Erik Reppen

Antworten:

19

Ihre Antwort ist Erfahrung. Ich fürchte, es gibt keinen anderen Weg, ohne Übung gut darin zu werden. Versuchen Sie, ähnliche Bibliotheken zu erstellen, wie Sie sie als Übung angesehen haben. Lesen Sie weiter, aber üben, üben, üben!

Gary Willoughby
quelle
3
+1 für Erfahrung, fürchte ich. Es gibt wirklich keinen anderen Weg. Wenn Sie es bei der Arbeit nicht bekommen können, machen Sie entweder einige Haustierprojekte zu Hause oder beschäftigen Sie sich mit Open-Source-Software. Selbst das Beheben kleiner Fehler in einer JS-Bibliothek, die Sie bewundern, wird eine enorme Lernerfahrung sein.
Tom Morgan
1
Danke @Gary. Ich frage mich nur, ob es vielleicht einige Techniken gibt, um diesen Übungsprozess zu beschleunigen. Oder vielleicht gibt es einige Verknüpfungen, wie einige JavaScript-Konzepte, mit denen viele Entwickler nicht vertraut sind.
Saeed Neamati
2
@SaeedNeamati gibt es einige Bücher, wie die Good Parts. Ich würde auch die Beteiligung von Stackoverflow empfehlen. Ich habe viel gelernt durch die Beantwortung von Javascript- Fragen
Raynos
1
@Saeed Neamati - Probieren Sie etwas aus, von dem Sie glauben, dass es außerhalb Ihrer derzeitigen Grenzen liegt. Sie können sich selbst überraschen, wie weit Sie kommen. Die besten Lernerfahrungen, die ich gemacht habe, sind, wenn ich etwas überfordert bin und etwas recherchieren und lernen musste, um mit dem Projekt fortzufahren.
Gary Willoughby
Aldo Raine: "Sie wissen, wie Sie zur Carnegie Hall kommen, nicht
wahr
19

"Ich könnte diesen Code nie schreiben"

"Ja wirklich?" Versuchen Sie es zuerst.

DeadMG
quelle
2
Das ist ein sehr guter Rat! Probieren Sie es aus und lernen Sie die Teile, die Sie noch nicht kennen. So wächst man.
Gary Willoughby
Sie konnten den Code auch nicht schreiben, bis sie es taten.
Yatrix
Und 6 oder 12 Monate nach Javascript werden Sie auf Ihre ersten Schritte zurückblicken und denken: "Mann, wie amateurhaft ist das?". Trainieren.
Alan B
5

Lustig, dass Sie Ihre Frage so formulieren sollten. Die meisten Bücher über grundlegendes Javascript helfen Ihnen nicht zu verstehen, warum und wie bestimmte Aspekte von JavaScript verwendet werden sollten, um großartigen Code zu erzielen. Was mir WIRKLICH geholfen hat, die fortgeschrittenere Seite von JavaScript sowie die besten Codierungspraktiken zu verstehen, waren die Schriften von John Resig, dem leitenden Ingenieur von JQuery.

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

Insbesondere:

Pro JavaScript-Techniken

Geheimnisse des JavaScript Ninja

Diese helfen Ihnen zu verstehen, wie erweiterte JavaScript-Funktionen verwendet werden sollten und warum. Vielleicht möchten Sie sich auch über Muster und agile Prinzipien und insbesondere über die Schriften von Martin Fowler informieren, um allgemeinere Gedanken zu den besten Codierungspraktiken zu erhalten.

dqhendricks
quelle
1
Ich denke, Sie haben die Frage wirklich beantwortet und viel bessere Ratschläge gegeben als "einfach machen". Vielen Dank für die Bereitstellung dieser Ressourcen.
Ryan Rodemoyer
4

Man muss ... viel programmieren.
Studieren Sie den Quellcode von Projekten wie jQuery, Node.js. Fügen Sie Ihrem Arsenal CoffeScript oder ClojureScript hinzu.
Schauen Sie sich JavaScript MVC oder Backbone.js an.

Überprüfen Sie, was Google Closure auf den Tisch bringt.
Und natürlich das Mozilla Developer Network mit einem Lesezeichen versehen.

Chiron
quelle
4
CoffeeScript und ClojureScript haben ihren Platz, aber sie helfen Ihnen überhaupt nicht, Javascript zu lernen.
Raynos
1
Ja , ich weiß, das ist , warum ich sagte: In Coffeescript oder ClojureScript zu Ihrem Arsenal. Es ist schön, über diese beiden Technologien Bescheid zu wissen.
Chiron
4

Wenn Sie dieses Feld gewählt haben, sollten Sie darauf vorbereitet sein, weniger bezahlt zu werden und als weniger professionell / gut als c / c ++ / c # / java / etc. Zu gelten.

Dies ist normalerweise der Fall, insbesondere in Bezug auf die Gehälter. Es ist sehr einfach, wirklich gute js + html + css-Codierer zu finden, aber es ist schwierig, wirklich gute c / c ++ / c # -Programmierer zu finden. Dies ist das Problem, mit dem das Unternehmen, für das ich arbeite (ca. 300 Mitarbeiter), derzeit konfrontiert ist. Selbst Studenten, die die genannten Sprachen gut beherrschen, wurden besser bezahlt als erfahrene JS-Entwickler.

Die meisten JS-Entwickler lernen aus Tutorials aus dem Internet und nehmen an Open-Source-Projekten teil, was eine gute Sache ist. Vielleicht finden Sie ein FOSS-Projekt, das JS stark nutzt (Front-End-Entwicklung für Gnome 3, um Ihnen ein Beispiel zu geben) und dazu beitragen. Auf diese Weise können Sie Erfahrungen mit den Tools und Sprachen sammeln.

Außerdem finden Sie einige gut bewertete Bücher bei Amazon und lesen Sie sie. Aber denken Sie daran, CODING ist die Art und Weise, wie Sie lernen, also beginnen Sie neben dem Lesen mit der Entwicklung;)

Adi
quelle
1
Mir scheint, es ist einfach, schlechte js / html / css-Entwickler zu finden, die schnell ein nicht zu wartendes Durcheinander hacken können. Gute Entwickler sind immer noch schwer zu finden.
Sean McMillan
1
Ein guter Front-End-Typ ist wahrscheinlich lieber als die Back-End-Typen - dort oben ist wirklich viel mehr Voodoo los und diese Welt verändert ihre Lasten schneller als das Back-End.
Wyatt Barnett
3

Ich stimme dem oben Gesagten zu, Sie brauchen nur Übung. Es ist auch wichtig, die Entwurfsmuster zu verstehen, die im High-End-Javascript-Code verwendet werden. Ich denke, wenn Sie die verwendeten Muster verstehen und wissen, warum sie verwendet wurden, wird es möglicherweise viel klarer. Pro JavaScript Design Patterns von Harmes und Diaz ist ein guter Anfang. Schauen Sie sich auch Osmanis grundlegende JavaScript-Entwurfsmuster für Anfänger an .

George P.
quelle
3

Ninjas sind normalerweise nur Bauern oder Bauern, die in einfachen, aber hinterhältigen, identitätsverkleidenden Gewändern gekleidet sind. Aber was eine einfache Person zu einem wahren Ninja macht, ist ein bedeutungsvolles Ziel, es durchzuziehen und dann nicht selbst getötet zu werden. Warum finden Sie nicht einen Javascript-Samurai-Dämon, schärfen Sie das Codierungs-Katana und sehen, ob Sie den Badboy ausschalten können, ohne sich selbst zu töten? Wenn Sie Erfolg haben, werden Sie die Welt zu einem besseren Ort für die anderen Codefarmer machen und feststellen, dass Sie dabei ein Ninja geworden sind. Das oder du wirst tot sein.

Viel Glück!

ChrisFM
quelle
auch - die meisten Ninjas saugen und wurden ziemlich schnell getötet - aber diejenigen, die überleben - werden zu lebenden Legenden;)
c69
2

Ich würde mich nicht als Meister in Javascript bezeichnen, aber trotzdem ziemlich gut. Lesen, verstehen und codieren Sie aus diesen Büchern:

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

Das würde die Grundlagen abdecken. Dann erkunden Sie das ganze Feld. Versuche so viel wie möglich zu lernen. Erfahren Sie, wie Sie Code in Firebug debuggen. Lernen Sie ein paar Javascript-Frameworks (etwas anständig) - Jquery ist das einfachste. Vielleicht Dojo Toolkit, Mootools und Prototype. Versuchen Sie, den Quellcode von Javascript-Frameworks zu lesen und zu verstehen. Erstellen Sie ein Plugin in jQuery. Lernen Sie das Modulmuster. Es gibt viel zu lernen ..

Aber die wichtigste Regel von allen ist:

Code und versuche dich jeden Tag zu verbessern!

Und werden Sie nicht nur ein Framework-Junkie, der das neueste Plugin oder Framework benötigt, um etwas Gutes zu tun. Versuchen Sie, die Kernsprache zu beherrschen und Plugins oder Widgets von Grund auf selbst zu erstellen. Wenn du das nicht kannst, bist du noch nicht großartig.

Marko
quelle
2

Auf jeden Fall üben - aber meiner Meinung nach ist es besser, nicht nur viel zu üben. finde ein echtes Problem zu lösen. Überlegen Sie sich etwas Cooles und schreiben Sie es. Finden Sie jemanden, der möchte, dass Javascript entweder kostenlos (wie für eine Wohltätigkeitsorganisation oder für gemeinnützige Zwecke) oder zu einem günstigen Preis ausgeführt wird, und schreiben Sie Code für ihn. Mit anderen Worten, Ihre beste Übung wird darin bestehen, etwas Sinnvolles zu tun.

Auch - ich denke, Javascript ist eine wirklich interessante und tatsächlich sehr mächtige Sprache - aber ich habe in der C-Klasse am College, die ich vor Jahren belegte , mehr über das Programmieren im Allgemeinen gelernt als aus irgendeiner Quelle zuvor oder seitdem. Das Lernen von C kam mit dem Lernen darüber, wie Computer denken, über das Gedächtnis in Bits und Bytes, und ich hatte einen ziemlich anständigen Lehrer, der einige wirklich solide grundlegende Programmierpraktiken hervorhob. Der Typ, der sagte, eine andere Sprache zu lernen, war nicht ganz falsch - das Erlernen einer anderen Sprache ändert Ihre Sicht auf das Programmieren ein wenig und lässt Sie die Ähnlichkeiten und Unterschiede schätzen.

Aerik
quelle
1

Der Javascript-Code, den Sie in einer typischen Webanwendung finden, ist ziemlich einfach, insbesondere wenn Sie ein Framework wie jQuery verwenden. Das Schreiben von benutzerdefinierten Plugins ist etwas fortgeschrittener, erfordert jedoch nur einige grundlegende Konzepte. Dies ist für die meisten Zwecke ausreichend - in Unternehmensumgebungen können Sie Kunden mit ein paar einfachen Techniken aus der Internetentwicklung wirklich beeindrucken, da die vorhandene Benutzeroberfläche normalerweise schrecklich ist - aber nicht wirklich auf Ninja-Ebene.

Wenn Sie Javascript wirklich kennenlernen möchten, benötigen Sie etwas Herausfordernderes, bei dem Sie auf Einschränkungen des Systems stoßen und gezwungen sind, fortgeschrittenere Techniken anzuwenden. Sie können einige dieser Arten von Code in Frameworks finden, die sich mit Browserkompatibilität befassen müssen, aber dies ist größtenteils ein gelöstes Problem und es ist ziemlich frustrierend, damit zu arbeiten. Es gibt viele weitere interessante Optionen für HTML5-Apps - versuchen Sie, etwas zu implementieren, das normalerweise nicht in einem Browser ausgeführt wird.

Mein eigenes Beispiel hierfür ist ein Git-Client. Javascript verarbeitet Binärdaten nicht sehr gut, und die naive Implementierung sperrt die Benutzeroberfläche für einige Minuten und weist neue Objekte schnell genug zu, um nicht genügend Speicher zu haben, bevor GC ausgelöst wird. Wenn Sie so etwas optimieren, erfahren Sie genau, was passiert, wenn der Code ausgeführt wird. Da dieses Verständnis bei schlecht strukturiertem Code nicht möglich ist, lernen Sie, Javascript mit einer klaren Struktur zu schreiben, die auch für typischere Anwendungen gilt.

Tom Clarkson
quelle
0

Übe im Feld und in JQuery. Dies ist der beste Rat, den ich geben kann.

Dynamisch
quelle
-7

Lernen Sie nicht JavaScript als Ihre erste Sprache und versuchen Sie nicht, den Programmierstil zu emulieren, den Sie in JavaScript-Bibliotheken finden. Die meisten JavaScript-Programmierer sind Hacks, die mich auf echte Programmiersprachen wie C ++, C, Java usw. verzichtet haben. Das Ergebnis ist, dass ihr JavaScript-Code ein Durcheinander von unkommentiertem, nicht entzifferbarem Spaghetti-Code ist. Ich weiß, weil ich als C ++ / Java / C # -Softwareentwickler gearbeitet habe und jetzt in die JavaScript-Welt komme.

Wenn Sie also ein großartiger JavaScript-Softwareprogrammierer sein möchten, lernen Sie zuerst einige andere Programmiersprachen und kehren Sie dann zu JavaScript zurück.

stackoverflowuser2010
quelle
4
Ihre impliziten "C ++, C, Java" sind bessere Sprachen als JavaScript. Sie implizieren, dass JavaScript das Problem ist . Dies sind alles falsche Aussagen.
Raynos
4
Ich denke, Sie sehen nicht die enorme Funktionalität von Javascript und was diese Sprache kann ...
@ stackoverflowuser2010 Das ist falsch. Ich bin sicher, dass in C ++ und PHP genauso viele ungelernte Programmierer hacken, ohne zu wissen, was sie tun, wie JavaScript. Zugegebenermaßen ist die Eintrittsbarriere für js niedriger. Die Lösung besteht jedoch darin, JavaScript zu lernen , um keine überlegene Sprache zu lernen . Und während wir über überlegene Sprachen sprechen, sollte man stattdessen Selbst lernen . Das wird helfen, JavaScript am meisten zu lernen
Raynos
2
Die meisten Programmierer saugen - in jeder Sprache. Der Unterschied zu JavaScript besteht darin, dass Sie die Quelle anzeigen und anzeigen können.
Sean McMillan
1
-1: Nur eine nicht unterstützte Beschimpfung.
Kevin Cline