Training through different exercises and challenges is important because it will allow you to improve many areas of your skill set:
- Algorithms (don't expect incredible progression either 😟).
- Improve your execution speed (fluidity to write the code).
- Practice (and potentially discover) language features. Note that in this case it is important to synchronize the discovery with a desire to document yourself (articles, talks, ebook).
- Allow you to discover a significant part of our daily life and the difficulties we have to face.
I recommend that you regularly give yourself more or less intensive code sessions. It often happens to me to see beginners looking for a job taking "their time" only to complain after a few months that they are not making any progress 😑.
The following links will allow you to do a set of workshops and challenges:
- [Beginner] freecodecamp
- [Beginner] nodeschool
- [Beginner] JavaScript Algorithms Crash Course - Learn Algorithms & "Big O" from the Ground Up! - Learning fundamentals of algorithms.
- [Intermediate] jskatas
- [Intermediate] warriorjs - Code your path through dungeons.
- [Intermediate] “Build Your Own Array in Javascript!”
If you're a beginner or new to the Nodeschool workshops, I'll walk you through the different choices available to you.
Note that you're going to need to get comfortable with command line instructions 😬 (this is a good opportunity to get started if you haven't yet).
⚠️ Some workshops are no longer maintained
Among the workshops I recommend (more or less in order):
- [Simple] JavaScripting
Learnyounode- [Discovery] How to npm
- Functional JavaScript
- [Discovery] Planet proto
- [Simple] Count to 6
- [Important] Promise it won't hurt
- Learn generators
- Bytewiser
- [Hard]
Stream Adventure
Beware these challenges are very difficult (and also require Node.js and V8 knowledge).
- Day 1: Surviving the Freeze (Warmup)
- Day 2: Cleaning up the mess
- Day 3: Disappearing Act
- Day 4: Silent connection, holy connection
- Day 5: Are we done yet?
- Day 6: Is anybody listening?
- Day 7: Under the ice
- Day 8: Immaculate coercion
- Day 9: Bundlers Hate This
- Day 10: Back to Algorithms
- Day 11: The old switcheroo
- Day 12: You say goodbye, I say hello
Various websites offering various challenges and exercises:
- CodingGame
- CodeWars
- Leetcode
- HackerRank (There are categories for Mathematics and Algo).
I don't necessarily have a recommendation for these (as far as I'm concerned, I don't necessarily like these sites).
If some of you are highly motivated and want to get into code competitions (or math and algorithm solving is your thing ^^) well I recommend the following links:
- What is Competitive Programming?
- Competitive Programmer’s Handbook
- Starting Competitive Programming - Steps and Mistakes
- How to start Competitive Programming? For beginners!
- Fundamentals of algorithms
- Codeforces
This is a field that will require you to work very seriously on mathematics and to study the various existing structures and algorithms at length.
👀 Please note that my own goal is to climb the Codeforces ranking and to participate in several rounds in the coming years.
⬅️ 📕 Dedicate a daily time to reading | ➡️ 🌌 Online courses, talks and articles