Live data from Hacker News

How to Become a Great JavaScript Developer

blog.ustunozgur.com

141–150 of 171 posts

Re: How to Become a Great JavaScript Developer

#141
post #90

No. Not this. Net even close to this. Let me illustrate: How to become great at Sports: - Read books about sports. - Watch other people play sports. - Read in-depth analysis of past sports games. How to become great at Playing Violin: - Read books about playing violin. - Real sheet music by the great masters. - Listen to many concerts. It's inherently obvious that the above approaches are totally and completely wrong…

In my opinion programming is a linguistic skill. A more apt analogy is trying to learn French by reading textbooks on learning French. I spent 5 years teaching English as a foreign language and I can tell you that learning a language from textbooks will not allow you to be "good" at the language when compared to the fluency and proficiency of a native speaker. You will certainly be able to accomplish various tasks and to get your message across to others, but you don't really have a hope of being a "good" speaker or writer of the language compared to even the average child. Your language will be full of tortured constructions that are (hopefully) grammatically legal but idiomatically terrible.

I hope this situation seems familiar to programmers because we see it every day -- programmers who write code that "works", but is tortured in its design. We can see people who can not express themselves in code because they are not fluent enough to do so. We can see people who can not understand common idioms because they never have read other people's code (in quantity). They ivent their own idioms, just like baby talk, and often decide that their baby talk is superior to the living language around them.

The biggest difference between a human language and a computer language is that most people aren't exposed to incredibly fluent users of the language in great quantity. It is really easy to fool yourself into thinking that you are a great programmer, when actually you can just barely make the code work. The same happens very frequently to learners of a foreign language that are rarely exposed to native speakers. You have no yardstick to measure your progress other than your textbooks.

Although I agree with your assesment that you must DO, but even more so you need to seek out communities of fluent users of the language and interact with them. That means reading their code, writing code, having them correct it, etc, etc.

Re: How to Become a Great JavaScript Developer

#143
I don't think there's any other way than working with talented people. It shows you what they're better at than you are, and (maybe) what you're better at than they are. I did all this stuff and I thought I was pretty hot shit, until I joined the team I'm on now.

You have to find out what you don't know that you don't know, and it's really hard to do that on your own.

Re: How to Become a Great JavaScript Developer

#144
post #131
post #90

No. Not this. Net even close to this. Let me illustrate: How to become great at Sports: - Read books about sports. - Watch other people play sports. - Read in-depth analysis of past sports games. How to become great at Playing Violin: - Read books about playing violin. - Real sheet music by the great masters. - Listen to many concerts. It's inherently obvious that the above approaches are totally and completely wrong…

It continually amazes me that programming books are as popular as they are. I can't think of a format I'd prefer less than static text when it comes to learning new programming languages. Much better to just jump in and start figuring things out. Google your questions, find Stack Overflow questions. Fiddle with CodePen (etc) examples to see what variables and functions do what. Once you're well versed, read the occas…

Because they have the depth of experience that is otherwise unavailable except by months or years of hard-fought struggle.

It only takes being bitten a few times by rushing into a new tech and doing everything completely wrong from the start. The smart learn from their own mistakes, but the truly wise learn from others'.

This still holds true in JavaScript.

Re: How to Become a Great JavaScript Developer

#145
post #107

Earlier quoted context omitted.

Knowledge work is different. How to become great at Chess: - Read books about chess. - Watch other people play chess. - Read in-depth analysis of past chess games. How to become great at Math: - Read books about math. - Watch other people perform math. - Read in-depth analysis of math. You also skipped a key assertion from the author: "Do exercises and try to explain common JavaScript concepts such as inheritance in…

I don't think that's actually the best way to be great at chess, or math. On chess, from a GM: "The key to their success is that they kept playing a lot, and learning from stronger opponents. Don't get me wrong: I am not suggesting stone age technologies in studying. Of course, you should take advantage of the best modern learning methods. However, the most important component of success (at least at weak GM and belo…

In chess below the master level tactics will dominate. How do you get really good at tactics? Not just by playing lots of chess, but by consistently devoting effort to studying tactics via printed collections of positions and/or tactics training software.

As to becoming great, after years of running chess camps for young players IM Greg Shahade formed his somewhat famous hypothesis:

   There is one very reliable sign to how much potential and how strong a young chess 
   player is or is going to be, and it’s probably not what most people would think. 

   It’s not how quickly a student solves tactics or sees combinations (although 
   these two things always seem to be correlated with the main point of this article).
   It’s not the student’s positional understanding. It’s not even how much they 
   claim to study chess.

   Instead it is “How likely is this student to recognize a famous game/position
   and know the players involved?” [1]
As one data point illustrating Shadade's point, the current world champion seems to be a whiz at what ordinary people would consider chess trivia. [2] Carlsen's comment:

   "I like chess, I like chess books. You'd be surprised – I do read 
   as much chess as I can."
[1] http://www.uschess.org/content/view/12551/745 [2] http://www.uschess.org/content/view/12985/806/

Editing for formating: how do block quotes work here?

Re: How to Become a Great JavaScript Developer

#147

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.…

Agree so much with this comment.

Downside is that after using a proper functional language (clojure[script]) you end up wanting some really basic things such as immutable core data structures.

I feel like if you start from scratch on a javascript project, it's possible to program in a functional manner. I've found it really tough to introduce functional concepts to an already full stack javascript codebase.

BTW: I'd recommend ramda [1] for those interested in functional javascript programming. The auto-currying makes it way more powerful than underscore/lodash in terms of encouraging pure reusable functions.

[1]: https://github.com/ramda/ramda

Re: How to Become a Great JavaScript Developer

#148

I'd like to know how to learn to "accept" JS, coming from other languages. No really. How do I become a JS developer that doesn't whine all day long about all the little idiosyncracies of the language, or the tediousness of writing tests for things my compiler should work out? Obviously people enjoy writing JavaScript, and at least some fraction of these have to have been the kind of person that whined about the type…

It took me a while. My background was Java, Python, ActionScript and a few other languages sprinkled in. After about a year working JS, its now my preferred dev environment.

The turning points for me:

- modularity - npm has really changed the way I program, for the better

- Node.js tooling (including a Browserify, Babel, Webpack) will greatly improve your experience with the language

- live reloading, zero compile time, instant visual feedback

- the breadth of Browser/Node/npm APIs can make it a ridiculously productive language to work in

- IDE plugins and linters can catch a lot of errors as you type

- above all else; it has an amazing community of enthusiastic developers, tinkerers, scientists, artists, etc.

Re: How to Become a Great JavaScript Developer

#149
post #131
post #90

No. Not this. Net even close to this. Let me illustrate: How to become great at Sports: - Read books about sports. - Watch other people play sports. - Read in-depth analysis of past sports games. How to become great at Playing Violin: - Read books about playing violin. - Real sheet music by the great masters. - Listen to many concerts. It's inherently obvious that the above approaches are totally and completely wrong…

It continually amazes me that programming books are as popular as they are. I can't think of a format I'd prefer less than static text when it comes to learning new programming languages. Much better to just jump in and start figuring things out. Google your questions, find Stack Overflow questions. Fiddle with CodePen (etc) examples to see what variables and functions do what. Once you're well versed, read the occas…

Books are about communicating experiences. A great book can give you the knowledge it would take years to get by personal experience alone. If anything, people involved in programming don't read nearly enough. We have giants on whose shoulders we should be standing, and instead we just retrace their footsteps. We need to stop ignoring our past.

Obviously, practice is also critical, but my point is most people who love to program love the act of programming, so they obviously already do a lot of that.

Re: How to Become a Great JavaScript Developer

#150
post #90

No. Not this. Net even close to this. Let me illustrate: How to become great at Sports: - Read books about sports. - Watch other people play sports. - Read in-depth analysis of past sports games. How to become great at Playing Violin: - Read books about playing violin. - Real sheet music by the great masters. - Listen to many concerts. It's inherently obvious that the above approaches are totally and completely wrong…

I think of books/knowledge as an experience accelerant. One could set a log on fire and it will burn, but it will burn a 'hek of a lot faster when liquid oxygen is poured onto it. Books do the same thing for practice. You'll get there one day with practice but you'll get there much faster when you're practicing under the influence of performance enhancing books.

One example from my own experience is Estimating.

It's something we all do, week in, week out. Yet there are still plenty of developers with years of experiences who delivery poor estimates week in, week out. I was one of these poor souls when I started developing. I would spend countless nights up late trying to finish a feature I promised someone else would be delivered yesterday.

So I did what my grandpa always recommended and I picked up a book, Steve McConnell's Software Estimation : The Black Art. And it taught me all types of tricks like making sure to break tasks into the smallest possible pieces.(Along with many other things. Seriously by this book, and every book Steve McConnell has written)

Maybe I would have eventually figured out tips like these on my own. But instead of having to wait to practice breaking up tasks into smaller more estimatable chunks, I got a 5 year head start and quickly was able to surpass many coworkers who had more years of experience but had spent less time in a book.

And now I can spend those late night posting on hacker news and not writing code trying to catch up for work :P.

TL;DR : Books are awesome. I read one once and I am a better estimator for it. And being a better estimator lets me spend more time on Hacker News. So if you wanna spend more time on hacker news, read a book.

Post reply on HN