# Technical Interviewing Resources

Here's a checklist of things that you should probably be prepared to know in a technical interview:

Data types

Basic Bitwise Operations

String Operations

Arrays

Linked Lists

* Singly Linked
* Doubly Linked
* Circular Linked

Queues

Stacks

Heaps

Trees

* Binary Trees
* Binary Search Trees
* Tries
* Self Balancing Trees

Traversing Trees

* Breadth First Search - BFS
* Depth First Search - DFS
* Preorder, Inorder, Postorder

Graphs

* Dijkstra's Algorithm / A\* Search

Hash Maps

* Handling Collisions

Sorting algorithms

* Insertion
  * Selection
  * Merge
  * Quick

Time Complexities

### General Guides <a href="#general-guides" id="general-guides"></a>

* [Sorting Algorithms](http://www.sorting-algorithms.com/)
* [Big-O Cheat Sheet](http://bigocheatsheet.com/)
* [Data Structures and Algorithms Overview](http://www.dsalgo.com/2013/02/index.php.html?m=1)
* [Algorithm Implementations](https://github.com/kennyledet/Algorithm-Implementations)
* [Top 10 Algorithms for Coding Interviews](http://www.programcreek.com/2012/11/top-10-algorithms-for-coding-interview/)
* [Practical Object-Oriented Design in Ruby](http://www.poodr.com/) by Sandy Metz

### Problem Sets <a href="#problem-sets" id="problem-sets"></a>

* [Data Structures Questions](http://www.geeksforgeeks.org/data-structures/)
* [Fit Coding](http://www.fitcoding.com/)
* [Google CodeJam Practice Questions](https://code.google.com/codejam/contests.html)

### Online Judging Systems <a href="#online-judging-systems" id="online-judging-systems"></a>

* [LeetCode Online Judge](https://leetcode.com/problemset/algorithms/)
* [HackerRank Online Judge](https://www.hackerrank.com/)
* [Project Euler](https://projecteuler.net/)

### Mock Interviews <a href="#mock-interviews" id="mock-interviews"></a>

* [Pramp](https://www.pramp.com/)
* [Careercup](https://www.careercup.com/interview)
* [CodeWars](https://www.codewars.com/)
* [Gainlo](http://www.gainlo.co/#!/)
* [Impact Interview](http://www.impactinterview.com/software-engineering-interview-coaching/)
* [Interview Cake](https://www.interviewcake.com/)

### Actual Interview Questions <a href="#actual-interview-questions" id="actual-interview-questions"></a>

* [Flatiron School Student Interview Questions](https://docs.google.com/spreadsheets/d/13J6P4YxMQdqGUJ1iahO2eKwtRWlMVX8UU7crHTfF3Uw/edit#gid=0)
* [Technical Interview Questions](https://gist.github.com/Kphillycat/21aeae3469d7f90220a2)

### Books <a href="#books" id="books"></a>

* [Algorithms, 4th edition, by Robert Sedgewick and Kevin Wayne](http://www.amazon.com/Algorithms-4th-Edition-Robert-Sedgewick/dp/032157351X)
* [Introduction to Algorithms, 3rd Edition, by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein (also referred as CLRS)](http://www.amazon.com/Introduction-Algorithms-Edition-Thomas-Cormen/dp/0262033844)
* [Think Complexity, by Allen Downey](http://greenteapress.com/complexity/thinkcomplexity.pdf)
* [Problems on Algorithms, 2nd edition, by Ian Parberry and William Gasarch](http://larc.unt.edu/ian/books/free/poa.pdf)
* [Data Structures and Algorithms in Java](http://rineshpk.weebly.com/uploads/1/8/2/0/1820991/data_structures_and_algorithms_in_javatqw_darksiderg.pdf)
* [Cracking the Coding Interview, 6th edition, by Gayle Laakmann McDowell](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/ref=sr_1_1?ie=UTF8\&qid=1443719471\&sr=8-1\&keywords=coding+interview)
