avgspacelover / Reddit-wiki-programming

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

Assuming you get to this place a year or at least 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.

P.S: you also might want to check out this google spreadsheet for tech stack based learning or other resources- https://tinyurl.com/drownincode

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

Recursion

Dynamic Programming

Stacks

Hash Table

Bit Manipulation

Graph Algorithms

Trees

Sliding Window

Binary Search

Strategy

Important Pattern Forming Questions


SOLUTIONS TO ALL 2300 LEETCODE PROBLEMS

Places To Practice/ Hone Your Skills!

Advanced

Advanced Competitive Programming Hacks

Sanity Checks while interviewing

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" [https://refactoring.guru/design-patterns/book]

System Design

Interviewing Theater

Tackling Behavorial Interviews

Tackling Compensation Negotiation


About

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