JSConf US 201329 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)
- Have opinions - and express them - take a stand if you feel strongly about them but be reasonable in discussing them and accept you could be wrong
- Seek mentorship - look for those who know the subject better than you and talk to them regularly, ask questions, show them what you’re doing andt·
- Program alot!
- Take breaks from programming sometimes! Time away is important
- Write a lot of JS
- Write in another language for a bit to expand thinking, exercise the brain
- Think like a programmer when you’re not programming - thought exercises to optimize routes to work etc
- Known what good feedback is, reject everything that is not good feedback - “Haters gonna hate” - value the good feedback always!
- Break free of imposters syndrome - if you write code, you are a programmer stop saying you’re not “really” a programmer because you’re not resig/isaac/etc - focus on improvement
- Fall in love with your process - how you code, how you interact, how you talk about it.
This is a quick summary of a talk I attended at JSConf 2013. You can see a list of all those I've summarized notes from here. There's also a General thoughts during JSConf 2013 post for all the non-talk bits and pieces.
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.