A collection of problems (and solutions to them) I found during tech interviews
- Know how to calculate complexity (time and space) of everything you do
- Ask as many questions as needed
- Speak out what you are thinking about
- EVERYTHING is about tradeoffs: brute force might be ok in small sets... Know when the brute force complexity will surpass a better approach (e.g. sorting might cost you something, but a sorted input might allow a faster algorithm)
- Hacking a Google Interview Course @ MIT
- Become a better programmer with programming challenges
- Tech Interview Tips by Google Recruiters
- Candidate Coaching by Google
- Eternally Confuzzled: explanations on data structures and algorithms
- MIT Lectures on CS
- TopCoder's Tutorial on Sorting
- TopCoder's Math for Programmers
- TopCoder's How to Find a Solution
- Binary Indexed Tree
- How should I prepare system design questions for Google/Facebook Interview?
- Joel on Software: The Guerrilla Guide to Interviewing (version 3.0)
- Failing at Google Interviews
- VisuAlgo: visualising data structures and algorithms through animation
- David Galles' Data Structures and Algorithms visualizations
- Ken Fox's Garbage Collection Methods explanations/visualizations
- Five Essential Phone Screen Questions
- Hired In Thech: Preparation plans (free & paid) for interviews
- Facebook: Building Mobile-First Infrastructure for Messenger
- The two-eggs problem
- Why Are Facebook, Digg, And Twitter So Hard To Scale?: Pull on Demand vs Push on Change approaches
- You Can’t Sacrifice Partition Tolerance
- 20 controversial programming opinions
- Leaky Abstractions
- Notes on Distributed Systems for Young Bloods
- Distributed Systems Class @ Columbia University
- How to shuffle songs @ Spotify
- TAO: Facebook’s Distributed Data Store for the Social Graph: Talk by Nathan Bronson
- Fundamentals of Data Compression, an introduction by Bertolami
- Finding the k-th element in a (unsorted) list