The Art of Problem Solving & Interviewing

Relationships, kindergarten, school, university, and my job. All these institutions have tried teaching us one thing.
We've all been there.
Solving problems. 

Whether it is resolving a conflict with your loved one, or your second-grade teacher, Ms. Carter, telling you to use your common sense, or a data structures question you're solving at university, or a real-life problem you're solving at your job. All you're doing in life is learning to solve problems. And the single thing each and every company in the world is doing is solving problems.

And so, it only fits that the best tech companies in the world base their interviews on this skill. Now, they need something a test for problem-solving that is
  • reliable,
  • can scale to hundreds of thousands of applicants year on year, 
  • easy to gauge the interviewee's ability to solve problems, and communicate while doing so.
Data structures and algorithms make for a really good method of gauging problem-solving abilities.

Having interviewed at the best company in the world, here's what I've learned:
  • Face a lot of problems
    You'll see you keep coming across the same problems disguised in different gift wraps. The core of these problems will start feeling similar, and you'll start seeing how to break them into their core problems.
  • Break the problem down into smaller, solvable pieces
    Rarely do you just know how to solve a problem. Break it down into workable, solvable pieces, and stitch back the solution to the bigger problem. This is easier said than done, but I had a moment of genius when I was able to do this at the most important interview of my life.
  • Have a feel for the problem. Try not solving for specific examples, but solve the problem instead.
    It is hard to explain how to do this, and reaching a point where you can do this takes time. In essence, if you're given a question, don't spend all your time solving it by taking examples. When you've done enough problems, you'll see you starting thinking in a way where you're thinking of the solution, by not taking specific numbers are seeing what the output would be for them.
  • Get lucky
    Honestly, sometimes it's just that. Work very hard, and feel surprised when your brain leads you to the answer.
Later, I'll post a specific question and an answer that lists an exact breakdown of all these points.

Comments

Popular posts from this blog

Firebase Auth | The Debug vs Release Signature Problem

A Deep Learning Classifier for FIFA vs Real Football

I'm now an Estonian eResident!