Skip to main content

Computer Science and Interview Prep

A comprehensive list including

  • how to learn CS for free,
  • how to learn algorithms with free courses,
  • practice with competitive programming.

After learning all the stuff, you can apply for a job; so I needed to add Interview resources you can use for free and some communities you can join.

Computer Science Resources#

1. Entire Computer Science Curriculum in 1000 YouTube Videos#

We are going to create an entire Computer Science curriculum using only YouTube videos. The Computer Science curriculum is going to cover every skill essential for a Computer Science Engineer that has expertise in Artificial Intelligence and its subfields, like Machine Learning, Deep Learning, Computer Vision, NLP, etc.

2. Functional CS#

A Self-Learning, Modern Computer Science Curriculum.

3. Online Learning: A Bachelor's Level Computer Science Program Curriculum (Updated - Dec 2020)#

Is it possible to complete the equivalent of a college bachelor’s degree in computer science through college and university courses that are freely available online? And if so, how does one do so? This website has a curated course list from MIT, Stanford, Harvard, Carnegie Mellon, Berkeley, and much more!

4. Teach Yourself CS#

Study all nine subjects, in roughly the presented order, using either the suggested textbook or video lecture series, but ideally both. Aim for 100-200 hours of study of each topic, then revisit favorites throughout your career.

5. Internet Archive#

Here you can find UC Berkeley's archived Computer Science courses.

6. Carnegie Mellon University's Open Learning Initiative#

Computer Science & Programming for independent learners. You can learn Java, Python, Hardware, Software, Logic, and Proof.

7. Coding Interview University#

A complete computer science study plan to become a software engineer.

8. Base CS#

Exploring the basics of computer science, every Monday, for a year.

9. Computer Science by OSSU#

Open Source Society University's path to free self-taught education in Computer Science repository!

10. Teach Yourself Programming in Ten Years#

This is a short blog post about teaching yourself programming in 10 Years!

11. cs-video-courses#

List of Computer Science courses with video lectures. ⭐️ 22k stars.

12.The Missing Semester of Your CS Education#

This will teach you how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more!


1. Khan Academy Algorithms#

It starts with an introduction to algorithms and covers concepts like recursion, sorting, and searching. Each lesson also has challenges to help you further understand the material.

2. Codenza#

Codenza is an android app used as a programming guidebook/repository for computer programming enthusiasts and helps them with the aspects of programming. It covers over 30+ programming languages and subtopics which are categorized and structured in a simple way.

3. Princeton Algorithms Course#

You can take it on Coursera for free.

4. Coding Dojo#

Algorithm Platform offers a free collection of online lessons and challenges designed to refine your knowledge of algorithms – the basic building blocks of all computer programming. Throughout the platform, you will learn through a mixture of exercises, video tutorials, and coding challenges that will cover fundamental concepts such as for loops, if/else statements, array manipulation, and more.

5. Grokking Algorithms: An Illustrated Guide For Progammers and Other Curious People#

Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to the practical problems you face every day as a programmer. You'll start with sorting and searching and, as you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python.

Learning about algorithms doesn't have to be boring! Get a sneak peek at the fun, illustrated, and friendly examples you'll find in Grokking Algorithms on Manning Publications' YouTube channel.

Competitive Programming#

1. Codechef#

Non-profit competitive programming platform.

2. HackerEarth#

Codemonk is a curated list of topics to help you improve your skills in the fundamental concepts of programming. This series contains tutorials and practice problems.

3. Project Euler#

Solve computational and mathematical problems using your programming skills.

4. Codesignal#

Complete challenges and assessments in a real-world coding environment and get scored on your understanding with Predictive Coding Scores.

5. Codeforces#

Russian website dedicated to competitive programming.

6. EMKC#

This is a place to test out your skills in one of the 17 languages of your choosing on a number of different practice tests. Points are awarded based on difficulty. You can complete the challenge up to 17 times (one for each available language). New challenges are being added all the time.

7. Codewars#

Challenge yourself on kata, created by the community to strengthen different skills. Master your current language of choice, or expand your understanding of a new one.

8. Spoj#

Programming contests with an online judging system.

9. Codin Game#

Practice pure code. Learn new concepts by solving fun challenges in 25+ languages addressing all the hot programming topics.

In a matter of hours, discover new languages, algorithms, or tricks in courses crafted by top developers.

10. Code Golf#

Code Golf is a game designed to let you show off your code-fu by solving problems in the least number of characters.

11. Edabit#

Learn to code with interactive challenges. Beginner-friendly.

12. Exercism#

Level up your programming skills with 3,450 exercises across 52 languages, and insightful discussion with our dedicated team of welcoming mentors. Exercism is 100% free forever.

13. Top Coder#

Participate in code challenges and help solve real-world problems.

14. Coding Bat#

Practice Java and Python exercises.

15. Firecode# uses machine learning algorithms along with curated real-world interview questions, solutions & a vibrant social community of learners to get you ready for your next coding interview.

16. Halite#

Halite is an artificial intelligence challenge, created by Two Sigma. Participants write bots using the programming language of their choice to compete in an original online multiplayer game.

17. Code Abbey#

This resource is created to provide short programming problems for all who want to learn to program and improve their programming skills, but who could not easily find enough tasks for practice.

18. CP Algorithms#

Interview Prep#

1. 30 Seconds of Interviews#

Interview questions quick reference.

2. Interviewing#

Mock interviews with engineers from Google, Facebook, and more. Get better at algorithmic and systems design problems, find a job, or just see if you’ve still got it. Everything is anonymous til you decide to unmask. Also, you can watch interviews.

3. Leetcode#

LeetCode is the best platform to help you enhance your skills, expand your knowledge and prepare for technical interviews.

4. Hackerrank#

Practice coding, prepare for interviews and get hired.

5. Pramp#

We've built Pramp to provide the complete tech interview practice you need, for free. Hone your interviewing skills, learn from your peers, and become comfortable performing under pressure within an interview setting.

6. Tech Interview Handbook#

Carefully curated content to help you ace your next technical interview. Go from zero to tech interview hero with this handbook. No prior interview experience needed.

7. CoderByte#

Prepare for coding interviews from leading tech companies with our interview prep material.

8. Daily Coding Problem to Your Inbox#

Get exceptionally good at coding interviews by solving one problem every day.

9. Reverse Interview#

Questions to ask the company during your interview.

10. Mega Interview Guide#

A humble guide to give developers the tools they need to nail technical interviews!

11. Interviews#

Everything you need to know to get the job by [ Kevin Naughton Jr.] ( He has a dedicated Youtube channel for algorithms.

⭐️ 50k stars.

12. The Coding Interview#

Programming exercises, code katas, and puzzles for your job interview training - or just for fun.

13. AlgoExpert#

The ultimate resource to prepare for coding interviews. Everything you need, in one streamlined platform. ($99)


1. Visualgo#

Visualizing data structures and algorithms through animation.

2. Big O CheatSheet#


1. Triple Byte#

Take the Triplebyte quiz and receive your personalized feedback report. The report will help you identify your areas of strength, calibrated against over 200,000 other engineers, and offers resources and tips for further development.

2. Hired in Tech#

We're here to help you ace your tech interviews. Master algorithm design, system design, and much more. Learn with theoretical lessons and practice tasks.

3. Interview Bit#

InterviewBit is a platform to learn skills that you need for technology jobs. We help you polish your skills and get ready for the job, whether you are a fresh college graduate or a working professional.

We also get you connected with the right companies worldwide based on your skills and preferences and do everything needed to make sure you get your dream job.