Hi there, you’ve landed on the ultimate resource or study guide of Computer Science. In this blog, I have compiled the most useful, free and quality contents (Course, tutorials etc.) on Computer science from the vast stream of contents, links and information on the web. Below you will find enough resources to build or follow your own CS curriculum, learn entire CS Curriculum or specific topics and master your desired skill from curated contents. So let’s not waste any further time, bookmark this page and dive into Computer Science 101!
Table of Contents
At the beginning:
Why learn Computer Science?
A computer is a machine that can process and store information, and perform mathematical operations. At first, computers were only used by scientists to solve difficult math problems and store large amounts of data, but they can do so much more now! They are able to run the internet, play games and music, create programs, and even simulate the entire universe. Computers are also becoming more powerful and smaller in size. Today, your phone has more computational power than all the computers in the world did in the 1960s. It’s even possible to run the Apollo moon landing on a few Nintendo consoles! If you’re interested in solving problems, building things, and exploring the world of zeros and ones, computer science is the perfect field for you. Keep reading and start your journey today!
Computer Science Courses for Absolute Beginners
The CS50 course is the perfect introduction to the field of computer science for those who are completely new to the subject. One of the great things about this course is that it is completely free, with no prerequisites required. Taught by Harvard Professor David J. Malan, this is the same course that is offered to Harvard students in their freshman year. The course covers a wide range of topics, including web development, programming, algorithms, game and app development, and machine learning. By the end of the course, you will have the opportunity to choose and develop your own project, allowing you to apply the skills you have learned. Additionally, the course has a strong support community, including social media groups and regular free seminars. By taking this self-paced course, you will gain a strong foundation in computer science, even if you have no prior experience. By the end of the course, you will come out as a computer science expert!
Python is quickly becoming one of the most popular programming languages in the field of computer science, and is often recommended as a great language for beginners to learn. One of the benefits of choosing Python is that it is relatively easy and intuitive to learn compared to other languages such as C, C++, or Java. This means that you can focus on building your understanding of programming and computer science, rather than getting bogged down by complex syntax. The Intro to Python course is a popular and free option for learning this language. It has received overwhelmingly positive reviews for its engaging and easy-to-understand content, making it the perfect choice for anyone looking to get started with Python. Overall, this course will give you a strong foundation in python and programming concepts, and help you build your confidence as you learn.
Self-Taught CS Curriculums:
Description: This resource includes literally everything you need in order to obtain a CS degree at your own pace with important learning materials from every important core CS categories. It includes 9 foundational CS subject such as Programming, Algorithm and Data structure, theories, math and a lot more. The best thing about this resource is all contents and courses mentioned here are absolutely free which removes one of the biggest caveats in your path to become a CS expert. The resource guides you through beginner to intermediate and advanced courses while providing necessary information and book references at every section.
Description: This resource is offered by Open source society university (OSSU) with nicely structured curriculum, duration and necessary prerequisite information. The list of courses mentioned here are absolutely free so youn’t have to worry with cost. The great thing is OSSU has its own support community to help you learn faster and more efficiently with other fellow CS students. You can achieve a complete education on computer science using this resource and following their structured and detailed guidelines for all core CS areas.
Description: Another useful resource compiled by youtuber Forrest Knight that highlights crucial CS Core subjects and their respective courses you need to take in order to achieve mastery. It is also free and written in a detailed manner with how much time, duration and effort you need to make for each and every courses to complete them at your own convenience.
Description: This is an interesting resource since it guides you through getting CS education with only 20 MOOCs which stands for Massice Open online courses. Every section is detailed with proper information, what the mooc will teach you and other relevant information. It’s definitely worth taking a look if mooches are what you into!
Description: We’ve been using YouTube for so many purposes including watching cute cat vides to learning an entire subject. But this resource take this idea to a whole new level. What if you can gain substantial knowledge of CS Core subjects just by watching YouTube videos and playlists? This resource curates all useful and important YouTube videos scattered around, compile them in a list and guide you through gaining the CS skills you’re longing for through an entire YouTube based CS curriculum! Now that’s something worth looking into for all YouTube lovers out there.
Description: Another small but important directory of computer science courses and top free resources. It ranges from the basic to more advanced areas of CS, covering important topics like Computer Fundamentals, Architecture, Several programming languages, Artificial Intelligence and Information Security resources. You can definitely check this out.
Focused on Specific Topics
Describe: This resource is divided into several sections but it’s mainly coding oriented. You can find documentation and contents on HTML, CSS, Java and many others. It also includes Algorithm Platforms and useful tools for coders as well as text editors, blogs and podcasts suggestions.
Description: The resource is specifically designed for people who area interested in Data Science and wants to gain deeper insight into this subject.
Description: If bioinformatics, a blended field of biology and computation, is your favorite thing then definitely check this out.
- Stack Overflow – Where Developers Learn, Share, & Build Careers
- MIT OpenCourseWare | Free Online Course Materials
- Learn to Code – FreeCodeCamp
- GeeksforGeeks – A computer science portal for geeks
- Coders Bible | Learn to Code and Smoothly Begin IT Career
- CSEdu4All — Courses
- No CS Degree – inspiring stories from developers without CS degrees
- Everything Computer Science
Resourceful YouTube Channels
- TheNewBoston (This channel has plenty of series and tutorials on different programming languages.)
- Computerphile (Exploring this channel becomes a mandatory if you’re computer nerd.)
- MITCSAIL (You can remain updated on what’s happening around the CS field specially in research and innovation areas.)
- Edureka (It has many free full-length CS courses.)
- Coding Blocks
- 3Blue1Brown (Even though it is not a CS oriented YouTube channel, I cannot help but mention it. It is one of the best YouTube channels out there dedicated to Mathematical concepts and topics and will provide you a solid foundation on any CS Core courses you’ll need.)
- Computer Science
- Learn Competitive Programming with CodeChef (It is mainly focused on programming contests.)
- Lex Fridman (Lex Fridman is a famous MIT faculty and he extensively talks about AI, Machine learning and hold interesting Podcast sessions in his channel.)
- Gaurav Sen (This channel has a lot of useful videos related to Computer architecture, Data structure and Algorithms.)
Competitive Programming and Problem Solving
What is Competitive Programming?
Competitive programming, or CP for short, is a fun and challenging activity where you write computer programs to solve a variety of problems. These problems can be related to topics such as algorithms, data structures, math, and logic. When you participate in CP, your programs will be evaluated based on factors such as how quickly they run and how much memory they use.
One of the great things about competitive programming is that it helps you to think in a different way. Instead of just trying to solve as many problems as possible, the focus is on understanding how to approach a problem and coming up with your own solution. This can help you to develop problem-solving skills that are highly valued by companies such as Microsoft, Google, and Facebook.
Overall, Competitive programming is a great way to improve your skills in computer science, have fun and show your skills to the world. If you are just starting out, don’t be discouraged by the difficulty of the problems, just focus on understanding the problem and learning as you go.
List of Online Judges or Virtual Judges
Here are some most popular online problem solving platforms where you can participate in competitive programming and practice solving programming problems.
Websites to Download Free CS Books
Great Talks and Interviews
List of TED Talks
Best Personal Journey / Interviews / Experience related YouTube Videos
Best Blog Interviews
Thank you for reading this blog post. We would love to hear your thoughts, feedback, and suggestions in the comments below. And don’t forget to bookmark this blog as we will continue to update it with more valuable and free resources in the future. Keep learning and growing with EduBloq!