cs-resources
cs-resources copied to clipboard
Resources for Computer Science & Interview Prep
CS & Interview Resources
CS Theory
Overview
- List of Algorithms
- List of Data Structures
-
Grokking Algorithms
- By Aditya Y. Bhargava
- A not-so-boring take on algorithms & data structures
-
Algorithms, 4th Edition
- By Robert Sedgewick and Kevin Wayne
- There are many great textbooks covering data structures & algorithms. This is one of them
Examples
-
Rosetta Code
- Has Implementations of many data structures and algorithms in many different languages
Algorithms & Data Structures
Data Structures
-
Primitive Data Types
- Basic types
- Pointers
- Arrays
- Dynamic Arrays
- Linked Lists
-
Associate Arrays (Hashes, Dictionaries, Maps)
- Typically implemented as a Hash Table...
- Hash Table
- Stacks
- Queues
- Heaps
-
Trees
- Look into a few different types of trees:
- Binary Search trees
- Balanced BSTs:
- AVL trees or Red-Black trees
- B-trees
- Look into a few different types of trees:
- Graphs
Algorithms
- Recursion
- Backtracking
- Linear Search vs Binary Search
- Sorting Algorithms
- Subsequences and Substrings
- Bit Manipulation
- Breadth-First Search
- Depth-First Search
- Graph Theory
- Shortest Path Problem
- Dijkstra's algorithm
- Hash Functions
Courses
-
CS Video Courses
- Repository of CS courses with video lectures.
-
Udacity
- Free courses & tracks for certification
- Many University CS courses are available online through edx, coursera, open courseware, etc.
Interview Resources
-
Cracking The Coding Interview, 6th Edition
- By Gayle Laakmann McDowell
- I highly recommend this book for interview prep and suggest working through the practice problems provided. That being said, it does not go that deep. I suggest you supplement it with real research into the topics it covers.
-
Google's Technical Development Guide
- Checklist from Google of topics you should learn
-
Google Interview University
- Repository that covers many CS fundamentals and prepares you for a career as a software engineer
- This is a great compilation of many different resources
-
Medium post on preparing for a technical interview
- A lot of good links here, including...
-
Getting a Gig
- Good resource for a student or those looking to start a career in the software industry
Practice Problems
-
Project Euler
- Great computational math problems
-
Hacker Rank
- There are many sites that provide you with problems to complete such as this. Pick one
-
Code Fights
- Race to fix bugs and more
-
Exercism
- Level up your programming skills from the command line
-
Node School
- Level up your javascript skills (and more) from the command line
- Also a great community with meetups all over
-
FreeCodeCamp
- Learn javascript and help non profits after completing the courses here
- Awesome community that also has meetups all over
Miscellaneous
- Big-O Cheat Sheet
-
Awesome list of awesome lists
- Aggregate of awesome lists on various topics
Contributing
Feel free to open pull requests with new resources!
License
MIT