Live data from Hacker News

How to Become a Great JavaScript Developer

blog.ustunozgur.com

21–30 of 171 posts

Re: How to Become a Great JavaScript Developer

#21
What prompted me to develop as a JavaScript developer was being put in charge of a major project that was mostly JS code. Up till then, I had done some JS work, using jQuery to add animations and interactions to a UI and some ajax. Doing this JS project exposed me to pretty much everything you can do with JS, and I learned it all pretty quickly so I could start contributing to the project.

I only got this project too because the dev previously in charge of the project left the company and I asked about it. It's another lesson to new developers: never let an opportunity pass you by.

Re: How to Become a Great JavaScript Developer

#22
I think it totally depends on the problem domain you are working with. There are so many different ways to use javascript it is overwhelming. There are also lots of ways to structure it. I feel like a very good understanding of a widely used OOP language such as Java is a good place to start before jumping into the wild west of javascript programming.

Re: How to Become a Great JavaScript Developer

#23
If you're already a decent enough developer and just need to get your grips on JavaScript, I'd say that most books listed aren't that useful. A decent enough online reference will get you going and after that you'll have to consider that JS is a pretty large dung heap by now where you probably won't get a lot of mileage out of inhaling dust from the crusty parts. Unless you're an enterprise developer tasked with maintaining your company's Dojo application.

If you're a new developer coming into JS from a more tabula rasa situation (possibly these days), I'd still say that most of those books are wasted, and you'd probably get a better mileage out ouf SICP or the GoF book than most Ninja/21days/Dummies tomes.

The core of JS is small enough, and the rest is highly dependent on your task, scope and framework. No jQuery book will help you with your intranet extjs app or your state of the art fluxified React SPA. You'll have to wade through code to get there, preferably as much of your own as possible.

And the most important thing: Pick something and stick with it. No mid-project framework/build tool/library changes. Even "obsolete" tech still works better than falling into the Duke Nukem hole. So don't get nervous about still using "grunt" when all the cool kids are using "gapoodle".

Re: How to Become a Great JavaScript Developer

#24
post #13
post #7

Earlier quoted context omitted.

- Learn how classes work in JS ( Note this is amusing to me since JS does not have classes and everything about the way they are done is just craziness compared to a real OO language ) ES6 brings classes: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... - Learn what Es5, Es6, ES7 are ( good for confusing yourself and writing code that won't work cross-browser... ) Babel means you can write ES6 and ES7…

Are you kidding here? In ES6 classes provide nothing more additional than the closures already in use via a bit of extra utility code. Doubters should click the link here provided by Luke. It is filled with "To Be Determined" for all details of anything useful. Do you know what classes actually do in a real OO language, or are you just a fanboy of JS? Also, using shims or translators proves nothing. I can write in C+…

> 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 just a fanboy of JS?

Surprising vitriol here and makes you lose all credibility. Why does stating a couple of facts imply that you are a fanboy of JS?

> Also, using shims or translators proves nothing. I can write in C++ and use translators to convert that to JS. What is the point here exactly?

The point is that you stated that ES6 and ES7 code don't work cross-browser. Using Babel means that they do.

> Adding extra confusing junk onto a weak language does not make the language "better", especially when the standards you are recommending people to learn aren't even finalized.

Where exactly did he make this argument?

Re: How to Become a Great JavaScript Developer

#25
post #23

If you're already a decent enough developer and just need to get your grips on JavaScript, I'd say that most books listed aren't that useful. A decent enough online reference will get you going and after that you'll have to consider that JS is a pretty large dung heap by now where you probably won't get a lot of mileage out of inhaling dust from the crusty parts. Unless you're an enterprise developer tasked with main…

For the decent developers picking up Javascript, http://learnxinyminutes.com/docs/javascript/ is hard to beat. All the basic syntax and language features in one page without trying to explain to you what a while loop does.

Re: How to Become a Great JavaScript Developer

#26
post #8

The best thing that happened to me as a JavaScript developer was being exposed to other languages. Especially the not-so-fancy Java and C++, really opened my mind about structuring code and planning for a long-term project. Knowing JavaScript and JavaScript frameworks is surprisingly useless for the type of work JS devs usually handle. The documentation often consists of TodoMVC type of examples and approaches. Hardl…

I agree a lot with it. I also think it's useful to work with at least one statically-typed language (like Java for example) because it teaches some good maintainability practices. In JS world, I've seen far too often creating objects in random places, as a map of parameters, passing them around, and injecting new keys to the object in other random places, and when such an object goes around too much and is augmented randomly in a myriad of ways, it's really hard to reason about it.

In Java, you'd typically create a separate class for such an object, create fields, assign types to them and document them, and have a constructor which populates the fields with sensible defaults if not provided. Sometimes it's an overkill to do it this way, but often it pays off with a better understanding of the data model. In JS you have a lot of freedom, but too much freedom leads often to a mess when enough people are working on the code.

Re: How to Become a Great JavaScript Developer

#27
post #17

Earlier quoted context omitted.

... I'll never, for the life of me, understand comparing a high-level scripting language to almost the lowest of low-level assembly languages, as if JS doesn't give you abstractions at all. If you can't write good code in JS, it's because you're a bad programmer.

As a veteran C++ developer, I actually quite enjoy Javascript. Once I understood that Prototypes are linked lists and that *this is a pointer that changes according to 2 simple rules, Javascript became quite easy. I mean they even give you a GUI debugger. It's hard to get stuck for long, even though it's not not a Visual Studio. Like you said, you have already all the abstractions you need with this language. You can…

Composition is really the key.

Re: How to Become a Great JavaScript Developer

#28
Tastes in books varies wildly between developers: there are many on there that I wouldn't say helped me as much as others, but to each their own!

With that in mind, I'd put a plug in for David Herman's _Effective JavaScript_. It goes beyond simply stating the mechanics of JavaScript into what pitfalls can be had, and uncommon but critical factors to consider when writing your code. The point about UTF-16 code points in strings alone makes it a valuable resource.

   [1]: http://effectivejs.com/

Re: How to Become a Great JavaScript Developer

#29

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.

You say "Books are a waste of time" but all your explanation says is "Books can be bad". That's not the same thing.

:|

Because there is no objective way to evaluate the quality of a book before reading it, and because any useful information in most of the few good technical books is of limited lifespan, books are a waste of time. It's not just that books can be bad. It's that most books are bad, and having to wade through them is what makes them a waste of time.

Re: How to Become a Great JavaScript Developer

#30
post #6

tldr: ( my own, not the authors in the article itself ) - Read books - Learn libraries ( author seems to like node.js and recommends libraries associated with that ) - Do exercises - Learn how classes work in JS ( Note this is amusing to me since JS does not have classes in the typical sense [ they are implemented via libraries with prototypes and closures ] ) - Learn what Es5, Es6, ES7 are ( There are good things he…

> Learn how classes work in JS ( Note this is amusing to me since JS does not have classes and everything about the way they are done is just craziness compared to a real OO language )

This kind of derision is typical of people who try to force prototypal inheritance to work in the same way as classical inheritance. I suggest learning the details of the prototype chain and how it works - you'll discover it is about as powerful as classical inheritance, but in different ways.

Post reply on HN