This article is a compilation of useful resources that I used throughout my programming journey. This is a list of “things that worked for me” rather than “best resources available for you” and it also does not contain every single resources out there in the Internet. I will continue to update the list with the resources that I find useful in the future.
Courses
-
CS50 is a fantastic course for beginners to learn the basics of computer science and programming in general. It will help you get started into the world of software development. This course is divided into several videos and each video comes with a set of interesting problems which you can solve to test your knowledge. This was the first course I ever watched to get started with computer science and programming.
-
Nand to Tetris is a fantastic course. This course will teach your own computer system from logic gates to a working operating system. This course is extremely fun for those who wants to learn about computers from scratch.
-
The Missing Semester of your CS Education will teach you the basics of the command-line, use a powerful text editor, use fancy features of git and much more which many courses miss out while teaching different topics in CS.
-
Odin Project provides a really good curriculum to get started with web development. If you are willing to learn web development then I recommend this course.
-
Crafting Interpreters is a fantastic book that teaches you how to build a programming language from scratch. This book is a must-read for those who are interested in interpreters and compilers.
Websites ands Blogs
- CSES Problem Set has some of best problems to practice alogithmns.
- LeetCode is a great platform to practice coding interview questions.
- Ted Kaminski’s Blog has an amazing collection of articles on software architecture and design.
- Teach Yourself Computer Science contains a structured list of resources on different fields of computer science that you can use to learn by yourself.
- Matklad’s Blog has some amazing articles about rust.
- Flaviocopes has a lot of amazing articles on web development.
- Null Program’s blog is best if you want to learn more about C.
- Ginger Bill has some amazing articles regarding memory management and language desgins.
- Ryan Fleury’s Blog has a lot of articles on computer science and software development.