Live data from Hacker News

How to Become a Great JavaScript Developer

blog.ustunozgur.com

41–50 of 171 posts

Re: How to Become a Great JavaScript Developer

#41
post #36
post #24

Earlier quoted context omitted.

> In ES6 classes provide nothing more additional than the closures already in use via a bit of extra utility code. ES6 classes are sugar over prototypes, not closures. Insisting that ES6 classes aren't classes requires at the very least a basic understanding of how they are implemented. > Do you know what classes actually do in a real OO language JavaScript is a real OO language. Do you mean class-based? > are you ju…

Have you looked at the implementations of classes in jQuery, Prototype, Mootools, Dojo, etc? I have. I've used thousands of lines of codes from these libraries and fixed numerous bugs in them. ( Note I'm referring to the 'bind' function specifically in the case of jQuery as it doesn't even provide an equivalent to Class.create(). That said, John Resig himself wrote an article about this and ported out the core of Pro…

> Have you looked at the implementations of classes in jQuery, Prototype, Mootools, Dojo, etc?

Yes, and jQuery doesn't implement classes.

> I care about providing the most accurate information I can to the benefit of others.

By calling other people fanboys after they provided a link?

> ES5, ES6, etc are not cross-browser compatible.

I guess it depends on your definition of cross-browser compatible, but ES5 is what, 5 years old now? I guess it doesn't work on IE8, but by that definition ES3 isn't cross-browser compatible because it doesn't work on IE1.

As for ES6, it's cross-browser compatible in the same way that CoffeeScript is, with the added benefit that it'll work natively in most browsers in a few years.

> My last paragraph is in reference to the fact that JS/Ecmascript have never truly been "fixed". It is just a constant hodgepodge of whatever vendors decides to add on to the language.

That's really not the case anymore.

Re: How to Become a Great JavaScript Developer

#44
"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." — Robert Heinlein, Time Enough for Love

I have a hard time thinking of "web programmer" as "polymath" and worrying that it's not specialized enough.

Re: How to Become a Great JavaScript Developer

#45
Maybe it's person-dependent, but I've learn most JS from MDN (https://developer.mozilla.org/en-US/docs/Web/JavaScript) _and_ collaborating with others (plus a lot of blog posts, code snippents, and in general: reading code by good developers (side note: it's why I hate minification - I habitually read code on webpages)).

For books the main problem is that they are getting obsolete quickly (JS is a rapidly-changing technology) and, except for very basics, somewhat opinionated and task-dependent.

Re: How to Become a Great JavaScript Developer

#46
post #20

Earlier quoted context omitted.

Yes, Genius: http://genius.it/5088474/ejohn.org/files/jquery-original.htm...

Thanks for this link. I will be reading it for sure. I also stumbled on the annotated source of Underscore.js a few days ago ( http://underscorejs.org/docs/underscore.html ). Would love any more stuff like this that anyone knows of.

Why oh why are those not comments within the source file? It would help me so much to have comments like those in software...

Generally I think that a linear step-by-step description is often not the best way though, often you would have to explain concepts or the bigger picture first.

Re: How to Become a Great JavaScript Developer

#47
post #20

Earlier quoted context omitted.

Yes, Genius: http://genius.it/5088474/ejohn.org/files/jquery-original.htm...

Thanks for this link. I will be reading it for sure. I also stumbled on the annotated source of Underscore.js a few days ago ( http://underscorejs.org/docs/underscore.html ). Would love any more stuff like this that anyone knows of.

If you liked that, here are some links to sister projects:

Docco Source: http://jashkenas.github.io/docco/

Backbone Source: http://backbonejs.org/docs/backbone.html

CoffeeScript Source: http://coffeescript.org/documentation/docs/grammar.html

Re: How to Become a Great JavaScript Developer

#48

Books are a waste of time. Most of them are garbage to begin with, and most of them are practically obsolete by the time they are published. Few have any lasting staying power. Besides, nobody ordained the author to be an authority on the subject. He was just a guy who wrote a book. It's zero indication of the quality of the content. Just write code. Practice, practice, practice.

If a book on software is truly obsolete anytime shortly after publication, then the tech itself isn't truly stable.

Read "The C Programming Language", by Kernighan and and Ritchie. Written decades ago, still accurate and relevant today. "The Mythical Man-Month", "The Pragmatic Programmer", "Design Patterns"... books like this will always be relevant.

Maybe a good rule is to stick to CS books that have been in continuous print for at least ten years.

Re: How to Become a Great JavaScript Developer

#49
post #41
post #36

Earlier quoted context omitted.

Have you looked at the implementations of classes in jQuery, Prototype, Mootools, Dojo, etc? I have. I've used thousands of lines of codes from these libraries and fixed numerous bugs in them. ( Note I'm referring to the 'bind' function specifically in the case of jQuery as it doesn't even provide an equivalent to Class.create(). That said, John Resig himself wrote an article about this and ported out the core of Pro…

> Have you looked at the implementations of classes in jQuery, Prototype, Mootools, Dojo, etc? Yes, and jQuery doesn't implement classes. > I care about providing the most accurate information I can to the benefit of others. By calling other people fanboys after they provided a link? > ES5, ES6, etc are not cross-browser compatible. I guess it depends on your definition of cross-browser compatible, but ES5 is what, 5…

jQuery provides bind. That and related code is what I am referring to in that case, hence my insistence on the importance of closures. I have revised my comment to mention this as well as the fact the John Resig himself reccomends the Prototype way of doing Class.create(). By the way, Class.create() itself is implemented as a closure.

Are you claiming that CoffeeScript is cross browser compatible? If so you are just going further down the rabbit hole. To my knowledge there is not a single browser than itself is capable of parsing CoffeeScript without a helper library that doesn't come installed by default. ( Firebug comes to mind, and if I recall correctly there is a helper tool for that. I'm also aware of source mapping for debugging things such as JS in both Firebug and Chrome )

Re: How to Become a Great JavaScript Developer

#50

Just adding my two cents. Wanna be a good JS dev? Go play around with a lisp. Like Clojure for a month or two. Get comfortable with functional programming. Then come back to JS. So many people come from a OOP to JS and they have a bad time with it. JS is more like a lisp with C syntax than it is a traditional OO language. Learning Clojure, not only improved my JS abilities, but just my over all programming maturity.…

Interesting, thanks for this perspective. As someone who started with C/C++ (and a hint of Python) but has recently started working in Clojure, I'm now very encouraged to re-try JS.
Post reply on HN