Angelina Fabbro - JavaScript Masterclass - How do you go from being a good developer, to a great one?

JSConf US 2013

29 May 2013

No niceties at the beginning, just got straight to the point (that’s a good
thing) - “No one is special”. Good message: no such thing as purely natural
innate talent for programming, environmental issues will always contribute to
making you more or less likely to want to code, or be able to.

When you begin is also not an overriding factor on your ability to be an
“expert”

How to know not a beginner?

You can use fundamentals in any language

Comfortable writing code from scratch (not a library like jQuery etc)
(copy/paste/assemble from other code is important step on the journey)

Peeking inside libraries you use to see what makes them tick

You feel like your code is mediocre but don’t know what to do about it

How do you know you are not expert?

Don’t quite understand everything you read in code of others

Can’t explain what you know - can’t put what you’re doing in to words, can
achieve it in code but explaining WHY or HOW is difficult
(Very important to have this skill)

Not confident debugging

You rely on references too much - looking back to references like web
documentation, api documentation, etc online very regularly, not writing much
from memory / muscle memory.

This = “Ambigious zone of intermediateness”

What makes great programmer?

Ed Weissman good writer on the subject, google him

Depends who is asking (what is the person looking for in the programmer?
Getting it done? Doing it quickly? Writing the best code? etc)

What do you need to learn to be an expert?

Ask “why?” Obsessively. Work out why everything is the case, why did I make
this choice, why am I doing it this way? Tackle the problems that you used the
solutions for rather than patching

Teach/Speak at an event - good reflection on your own opinion of your
ability. Get asked compelling questions - either expose that you know stuff you
didn’t realize, or help you discover what you don’t know (or don’t know well
enough)

There were 3 concurrent tracks at the conference, so only those I attended
myself are summarized here. Other attendees have summarized some of the talks I didn't get to due
to scheduling conflicts - you can find those at jlongster.com (James Long) and Toby Ho's github
repo.