/Reddit-wiki-programming

Resources to Learn Data Structures and Algorithms, ace competitive programming, Get a Job in Tech/CS

Computer Science Learning Resources (To get a Job in Tech)

Assuming you get to this place an year or atleast 6 months before you start your job search, the resources below will help you get a job regardless of your location/familiarity with computer science.

Disclaimer: This doesn't make you a brilliant computer scientist but an excellent bread winner.

Learn a Language

Many people avoid learning Python because the availibility of libraries make it difficult to test your ability manipulate data structures, but regardless I am only including the 3 prominent languages here with short links to other 2 which are getting popular.

Languages for DSA covered here

  • Python
  • C++
  • Java

You can look up the pros and cons of learning each with a quick google search of "Language 1" Vs "Language 2"

Python(Resources)

C++ (Resources)

Java (Resources)

DATA STRUCTURES & ALGORITHMS

Now you have understood the syntax of your preferred language and need to hon your problem solving skills. Personal suggestion is to read up on Space & Time Complexity before you go on this adventure so you can learn to think on those lines from the very start itself.

Learning Big O Notation [To calculate Space & Time Complexity]

Resources

DSA Resources

I am going to split the resources according to Video Based Learning & Text Based Learning.

Video Based Learning

MOOCS

Text Based Learning

Books

  • Cracking the Coding Interview
  • Elements of Programming Interviews
  • Algorithm Design
  • Introduction to Algorithms, Cormen

P.S If you can't afford to Buy Books then google "Library Genesis" :)

RECOMMENDED FOR PATTERN RECOGNITION
-Websites

P.S If you can't afford to pay for this subscription then google "Library Genesis" :)

Language Specific

P.S : The first two channels have picked very important problems and you can even find a downloadable list in the description of the cpp video series. regardless of the language you pick , definitely check out the problems and implement them in your choice of language

Selective content and strategies for getting better at Leetcode

Dynamic Programming

Graph Algorithms

Trees

Strategy

Places To Practice/ Hone Your Skills!

Advanced

Advanced Competitive Programming Hacks

CS Fundamentals

You can search on Youtube to learn these subjects mentioned below, for example Cornell University's course on YT is apt for Database management systems.

I just accumulated all things you can revise 10 days before your interview with respect to the following subjects:

Link: https://github.com/antariksh17/Subjective-studies_OS-CN-DBMS

P.S :For OOAD I would definitely recommend the book "Diving into Design Patterns"

System Design

Javascript

This is meant for those who really want to learn JS.

Books

  • Eloquent Javascript
  • You Don't Know JS(Series)