Technical interviews used to be a challenge for me. I have a bachelor’s degree in Electronics and Telecommunications and a master’s degree in Computer Science. Even though I did well in my master’s degree courses, it wasn’t enough to help me clear technical interviews in Silicon Valley. String manipulation questions were my biggest fear!
To prepare for technical interviews, I did the usual stuff, studied the usual resources, such as the book Cracking the Coding Interview. Trying to prepare by googling “technical interview questions” didn’t get me anywhere. If you had asked me the exact same questions, I would have done really well. But alas, in the real world, things aren’t that easy. Usually, I’d get questions I hadn’t heard before, or questions I had heard but with a twist. Both of these stumped me.
Once, a technical recruiter (who was non-technical) asked me on the phone how to build a hash table. The call ended quickly…
After a few months of this, I knew I had to go back to the fundamentals of computer science — the stuff undergrad CS students get to explore early in their education: basic data structures and algorithms!
Luckily, during the same period, something started popping up that would change my life completely: MOOCs or Massive Open Online Courses.
They weren’t known as MOOCs back then — just free online courses from Stanford. They used to offer completely free certificates. I was so excited about these courses that I built a side project to keep track of them. I called it Class Central, and now it’s my fulltime job and the world’s most popular MOOC search engine!
Today, there are more than 15,000 such MOOCs. But back then, there were only a few. Lucky for me, the course I wanted was one of the first 20 to be launched.
The course, taught by Stanford Professor Tim Rougharden and offered on Coursera, used to be called Algorithms: Design and Analysis and be split into two parts. Now, the course is split into four parts:
- Divide and Conquer, Sorting and Searching, and Randomized Algorithms
- Graph Search, Shortest Paths, and Data Structures
- Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
- Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
After doing these courses, I was able to clear a technical interview and find a job in Silicon Valley.
Just to be clear, the courses alone aren’t enough to pass technical interviews. What they did was help me strengthen my understanding of computer science fundamentals, which in turn allowed me to leverage more online resources and algorithms textbooks. It took me a few months to go through the course, but it was well worth it.
However, it’s not the only course out there. On Class Central, we have a catalog of 150+ online Algorithms and Data Structure courses from universities like Princeton, Rice, Georgia Tech, and many others.
If you are struggling for the same reasons I was, I would definitely recommend you to spend a few months strengthening your basics. And a course from Stanford might help you do just that.