community driven collection of technical interview questions & answers
We discuss and see tons of interesting interview questions on the internet. The purpose of this repository is to let everyone post questions and contribute to the solutions. Software engineers are actively contributing to here on Github. Seriously, it's very powerful.
Unfortunately, I haven't really spotted (a popular and language agnostic) one where people used the power of Git to share, discover, discuss and improve software interview questions and their implementations!
Send me a pull request, and I will add any implementation of any question/answer you have.
-
Language doesn't matter. Just make sure you're writing questions and/or improving the answer.
-
Submissions should follow this directory structure
category_name/question_in_short/detailed_question.[md|markdown|txt] category_name/question_in_short/username_solution.language.[md|markdown|txt] category_name/question_in_short/username_unittest.language.[md|markdown|txt]
note: the preferred 'language' is pseudocode however one can write using his/her preferred language e.g. c,c++,java,python etc.
-
It is preferred that you prepend or append your files with your Github username or some identifier to avoid overwriting others' implementations.
-
Each solution should have its corresppnding unit test cases (as directory structure suggested above) which covers the corner cases, happy/unhappy paths. Advantage of doing so is to assert that every thing is covered and solution is not broken between code change. It also helps newbies to have a quick look at the unit test cases and understand how solution works.
-
Documentation inside the code is recommended. This helps others in understanding the code base.
We should also keep a curated list of resources dealing with algorithms.
####Introductory Books
- Introduction to Algorithms (CLRS)
- Algorithms (Dasgupta, Papadimitriou, and Vazirani)
- The Algorithm Design Manual (Steven Skiena)
####Sites
- LiteratePrograms (TONS of code samples in various problem domains)
- UVa Online Judge (TONS of problems to solve, automatic judging)
- Stony Brook Algorithm Repository
- The Archive of Interesting Code