Your JavaScript level

Level 0 “Java?”

All you know is that is has to do with the web. “Javascript is something like Java, right?”

Level 1 “I know Javascript”

You can make minor changes to a simple script, slab copy-pasted scripts from the internet onto your page and test scripts with an alert()-call.

Level 2 “I’ve made a page and this is the script”

  • You can write simple functions and make calls to them.
  • You can debug scripts with console.log().
  • You know what an array is and when to use one.

Level 3 “I proudly use jQuery”

  • You know how to attach scripts to events properly.
  • You are able to write and work with “plain objects”.
  • You know why eval() is evil, and you know who the evil twin sisters of eval() are.

Level 4 “Hold on, I’m stepping through my code in FireBug”

  • You can write fairly complex functions and “subfunctions”.
  • You have a fair understanding of what closures are, and what good they’ll do.
  • You know that Javascript has only objects and no classes, and why.
  • You have a deep understanding of what can be done on which browser, and what can’t.

Level 5 “My code is JSLint-proof”

  • You can write pluggable and well-maintainable code with anonymous functions in complex constructs.
  • You have a fair understanding of how a framework works internally, and why things work (or don’t) work the way they do.
  • You have built a good number of tools in javascript for the purpose of education, fun, or just to “see if it can be done”.
  • You know how to write proper object definitions with inheritance, the javascript way.

Level 6 “Writer of Narcissus, the javascript engine written in… javascript”

  • You have a blog or other online resource with up-to-date resources that are actually useful.
  • You participate in the development of a framework, javascript engine, or other javascript intensive tool such as FireBug
  • Every now and then, you invent some new technique that no one else has thought of.
  • You can write complex algorithms such as parsers/lexers, artificial intelligence, game theory, statistics, and algebra.

//copy-pasted from

20 thoughts on “Your JavaScript level

  1. I am somewhere between a 1 and 2 . Kind of scary to see how much I have to learn about a language that is widely used. This has really been a challenge for me to learn.

  2. Well tha jQuery part is tricky…. I know so many people that use jQuery but don’t even know js prototype based…

  3. jQuery? What’s that? Oh yes – I remember – it is a tool to make writing code that is unreadable and is overly complex to perform simple tasks.
    I don’t use JSLint. there are some features of JavaScript where there are two or more equally acceptable alternatives. JSLint is a good tool for making the decision for yopu; but if you have evauated the alternatives and picked one that differs from its choice then it will complain at you. I know that it is customisable and most of its decisions are sensible; but it does try to force you down one man’s specific biases.

  4. I am at early stage of level 6. I still need to do a lots of thing.
    If any one find any difficulty or any one want to contribute to JavaScript market with new implementations, pls contact me at

  5. I am currently at level 2 and want to go all the way to level 6. Also want to learn OOD JS and Angular JS Server dynamic web page updates using MVC.

  6. Well, I would have considered myself level 5 except in level 4, it says “You have a deep understanding of what can be done on which browser, and what can’t.” and I’m not sure I can say that with the greatest confidence now that watches, televisions and other new devices are arriving with browsers. Also, I guess I never thought about WHY Javascript doesn’t have classes. Thanks for bringing that up. I found a great article on the subject:

  7. Next post in the line: What level of JQuery are you in? :)

    Because JQuery IS JavaScript (at least for a majority of the newb developers). :)

  8. Currently a level 5. I’d really like to work up to a level 6 within’ the next year or so.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>