Juri Strumpflohner


JSConfUS 2013 - Angelina Fabbor in JavaScript Masterclass

Author profile pic
Juri Strumpflohner

Continuous improvement is an important concept. Everyone wants to get better, to learn new things. This is vital, especially in the software industry where things move at an extremely fast pace. In the video below (from JSConf US), Angelina Fabbor explains what’s most important to advance from a beginner to an intermediate and to ultimately become an expert.


The slides are available here.

Below I outlined some of the key points mentioned in the talk.

How do you know you’re not a beginner?

  1. You can use fundamentals
    (loops, if-else, variables, operators,…)
    You should basically be able to get out a hello world or small app.
  2. Comfortable writing code from scratch
    Composing different jQuery plugins is not programming
  3. You’re curious to know how something work
    For instance you start reading an existing jQuery plugin’s code
  4. You feel your code is mediocre

How do you know you’re not an expert?

  1. You don’t quite rock all the code you read
    You get into the jQuery source, but you don’t really understand all the comments…
  2. You can’t explain what you know
    Lots of devs are brilliant and write awesome code, but you can’t explain what you know to someone else in a patient way.
  3. You aren’t confident debugging
    You still use console.log or response.writeln statements instead…
  4. You rely on references too much
    You continuously have to lookup stuff in references (i.e. MSDN docs, Javadocs,…). It’s not bad “per se” but you’ll get faster if you not have to, obviously :)

What makes a great programmer

It really depends who is asking. For the project manager it’s the dev which hits the deadline, for the customer the one that solves their problem quickest, to the business owner the dev which makes most money etc…

What do you need to learn

  1. Ask why obsessively
    Know what’s behind. “Why did I choose Bootstrap?”
  2. Teach and/or speak at an event
    Tell people, share knowledge. This way you need to formalize your ideas, make them more concrete. Reflecting makes you learn a lot.
  3. Work through a suggested curriculum (books) For instance Jon Resig’s “Learning advanced JavaScript”.
  4. Experiment Recklessly
    “Do silly things just to see what happens”
  5. Have opinions
    But respect other people’s opinions! Accept that you could be wrong and hence learn.
  6. Seek mentorship
    Being able to discuss ideas/problems without fear.
  7. Program a lot
  8. Stop fucking programming sometimes You need breaks!!
  9. Write JavaScript a lot
  10. Write in another language for a while
    Compare with other languages. Find nuances, exercise your brain, get different, fresh viewpoints,…
  11. Know what good feedback is and reject all else
    Turns out some people aren’t really happy with themselves and they’ll take it out on you.

The talks is just about 20 minutes, but jam-packed with valuable tips. Just read through them and think about your own situation. Where are you?? Do you do enough to get better, to learn new things? My favorites: share your knowledge, explain it to others, blog,… I cannot repeat it that often. For many people it might seem silly, a waste of time, but you learn so much.
The other one is to expose yourself to new situations, leave your comfort zone and try something new. That’s the only way to learn. Also just simple things like “never used Git”?? Why not try it out in your next project!? Recently a post has been published on programmers.blogoverflow.com with the title “Tools are not skills”. You should definitely read it.

Learning a new technique makes you a better developer, tools are just there for convenience.Tools are not skills

You’re a .Net Developer?? Why not do some programming in Java to get started? Shouldn’t be too difficult, but trust me it’ll open up your viewpoint. Or even try some dynamic stuff like NodeJS or Ruby.

I understand how to use this, but do I understand why? Tools are not skills