While there are all sorts of resources people use when learning to code — screencasts, videos, books, tutorials, online courses, and more— in this article I will only focus on some of the best and most popular interactive websitesthat have you learn by solving challenges or building projects online. While most online resources do have some interactive tests or challenges you can take that allows you to actually code, some focus heavily on having you practice which I believe is the best way to get better at coding.
Watching videos and reading tutorials online will only get you so far. To become a great programmer, you’ll need a ton of practice. So for beginners, I recommend solving lots of code challenges and working on several small projects.
Complete Beginner to Novice Level
- Code School
Great for beginners. Contains videos and simple interactive challenges.
For complete beginners that are initially learning a language. A good website for learning the basics about HTML and CSS.
Another great option if you’re a beginner starting out learning to code. They offer video courses along with some interactive challenges.
Novice to Intermediate Level
Maybe after one to two months of learning to code (if you’re studying regularly), you should start practicing — a lot! You need to become comfortable with writing basic algorithms that involve hash tables, arrays, looping, string manipulation, etc. If you’re interested in web development, then you should also be able to create simple UI’s and websites fairly quickly with some basic HTML and CSS.
Practice solving code challenges here and implementing different algorithms and data structures. You can also view other people’s code solutions to see how they solved challenges.
If data science interests you, then this website has a great online editor where you can code in Python and R.
Another website to practice solving code challenges on with a lot of tutorials about different algorithms.
This website offers users the ability to solve coding challenges that are directly tied to online games. A pretty cool concept.
Intermediate to Advanced Level
Once you feel like you have a grasp on the basics of programming (e.g. learned some HTML/CSS/JS + maybe a back-end language and some database) and are able to solve code challenges comfortably (e.g. The 5 hardest code challenges for beginners) and have created some small projects, then I think the following resources will help guide in the right direction to becoming a great software developer.
- A Guide to Becoming a Full-Stack Developer in 2017
- Improving your Algorithms & Data Structure Skills
- Dynamic Programming — From Novice to Advanced
- Reloading Publication: Web performance articles (very good)
- The Netflix Tech Blog: Advanced architecture and scaling topics