JavaScript
September 21, 2023 Β· View on GitHub
πͺ Challenge yourself regularly
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!β
Β
π« Nodeschool
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
Β
Bradley challenges
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
Β
π The other websites
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).
Β
π Competitive programming
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