A 21 Point Path to JavaScript Progression
The summation of this post is for those who are passionate about learning JavaScript and improving their skillset beyond mediocrity. If you’ve been copy and pasting to hack together some interactive front end code, it doesn’t take long before you create a ball of mess and get lost in your own code.
Let me reiterate for those who don’t know - Not knowing how to code isn’t hell, not understanding your own code is the ultimate HELL. There isn’t any rush and if you’re thinking you can learn in 21 days you’ll soon realize that you just grazed the surface and didn’t learn anything deep.
To enlighten and give hope on your JavaScript journey, here is my opinion and recommendations to take you from JavaScript novice, to journeyman and eventually to mastery. There appear to be shortcuts, but there aren’t - this shall be your first lesson above all.
- Focus. The first thing you need to do is concentrate and that means letting go of all your distractions so you can properly reflect.
- Anyone idiot can be a programmer, you don’t want to be that idiot.
- Learn by doing.
- Don’t rush - the internet prides itself on the pace of discovery, don’t fall into that trap. Take your time and to truly understand core concepts.
- Read books to understand the fundamentals and focus on how to improve your skills.
- WRITE LOTS of code, you should have 100’s of small snippets trying out different stuff and should be experimenting with different techniques.
- Start simple and then build your way up to more complex functions, equations.
- Don’t read any random article, figure out which blogs and authors are worth your time and create a solid baseline for reference.
- READ ALOT of other peoples code and then try to understand what they are doing. Digging into other peoples source code and libraries is a fantastic way to learn.
- Write a small library or module, learning how to code a library will teach you how to structure your code, think and reason about it.
- Try to solve some real world problems.
- Discover objects and arrays in an intimate way
- Understand prototype, inheritence, pseudo classical inheritence and their differences.
- Figure out why JavaScript is itself confused by it’s prototypal nature.
- Collaborate with programmers on different projects, learn to refactor and understand code without them being around.
- Rewrite, refactor your existing code no matter how small it is.
- Read ‘JavaScript: The definitive Guide’ from back to front - this will be a great baseline which develops your fundamentals. Don’t worry about the other books listings, start with this if you’re new to the language.
- Learn JavaScript ES5 first, then start comparing with ES6 - of course the goal is to hop on the ES6 train but it will benefit you tremendously from learning ES5 first.
- Avoid the solipistic approach - collaborate with folks and ask questions.
- Pick up new idioms, best practices, coding styles and tricks.
- Check out Peter Norvig’s article Teach Yourself Programming in Ten Years
- Understand how JavaScript can be used in a functional sense.
- Thoroughly understand all data types and structures. Write some code around each structure as a small weekend project.
- Work on small projects and build confidence before you write a 2000 line library.
Don’t rush, you won’t become a great programmer in a matter of days, months, even years. Deliberate practice and incremental improvements will give you the best value on your journey.