# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://stephanosterburg.gitbook.io/scrapbook/career/carrer-prep/technical-interviewing/technical-interviewing-resources.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
