How to prepare interviews with fun and joy?
A few days ago, I received an interesting message.
Initially, when I saw the message, my head was??? But as you know my head is nothing regular, so I thought why not play a game together anyway?
Hence, this post is dedicated to this weirdo friend. Since we aren’t interviewing for the same positions, I decided to share my learning strategies that are fun, nonstandard, and generally applicable.
In addition, there are already millions of suggestions on how to prepare for interviews, so I will not focus on ideas that are standard, like doing more mock interviews, learning the algorithm pattern, review questions you could not solve last week. I will focus on some creative learning that I evolve.
Technique-based learning: How I prepare for algorithms
This is my PPP strategy to prepare for algorithms (Leetcode) interview. And yes, I make up PPP just now.
- Pen & Paper
- Practice problems
- Playback for self-feedback
P1: Pen & Paper
Most people think the first step of practicing technical learning is about learning the technique. Personally, I find this is a bad start. The first step of learning is always finding the joy of learning. And finding joy requires us to separate the stress and the fear of interviewing. I’ve mocked interviewed with some of my friends. They did poorly not because they could not learn, but because they hated it. They immediately associated algorithms with interviews and hectically pressed the “run” button when they could not figure things out.
So how to associate algorithms with joyful learning? I do two things.
- I go to the same plant cafe to study algorithms with pen and paper.
- I learn it for a month without a single application.
I know not applying sounds crazy, but let me explain the reasoning. First, if you haven’t reached a certain proficiency threshold, you cannot solve problems in an interview anyway. Going to interviews and getting roasted only creates more stress and fear when you do algorithms.
Instead, I create a joyful learning experience for myself by going to a plant cafe with pen and paper. Pen and paper help me modify my “hectically press running button when I’m frustrated” habit. So I can really think the problem through. I know it sounds really stupid, but this must be the most useful learning method I discover when learning algorithms.
At the end of this practice, I feel emotionally stable and curious when I think of algorithm problems, and gain the ability to think clearly about most problems. I train both my mentality and skills.
P2: Practice problems
Of course, interviews are still on your laptop, so we need to switch back to our computer. In this stage, I noticed I could get back to some of my bad habits of rushing through questions when I mock preparation with friends because I’m imagining I’m in an interview. So here are some things I do in this stage:
- I select a dimension to hone on: I will not try to solve problems in 20 minutes, but instead focus on a dimension I want to hone on. e.g. I tell my friend I want to practice “thinking clearly,” “solving in time,” and “communicating well” today.
- I walk through a wider range of common problems, master pattern matching, and review unfamiliar problems.
The practice in this stage is quite standard as most blogs will suggest.
P3: Playback for self-feedback
As I realized I didn’t always have people to practice with me, I came up with an interesting idea. Why don’t I record my own interviewing process? With recording,
- I can feel like a live interview because I’m seeing myself (Inspired by Jeremy’s podcast)
- I can play back my own recording to see how I talk.
As I look through all my recordings, I can clearly see that I fumble and jump ideas when I’m stuck, and my talking tone is completely BORING. I will not want to interview myself! After I went through my own self-feedback loop, I didn’t only solve problems on time, my talk became fun and engaging. I know I’m engaging because one interviewer even wants to write code for me when I present the coding problem as a fun challenge.
Interviewers are humans by the end of the day. Why not make interviews a fun teaching and collaborating session like Feynman’s class?
Knowledge-based learning: How I prepare for system design
If technique-based learning focuses on the problem-solving process, knowledge-based learning focuses on memory. How to retain as much memory as I can learning system architecture? Typing and screenshoting is a terrible way of learning because I don’t remember a shit 2 days after. Here are some methods I use.
- Drawing and note-taking to create a visual impression
- Understand the context of the technology
- Recall and rephrase concepts
Drawing and note-taking to create a visual impression
Drawing creates strong spatial and visual memory and some important become noticeable compared with screenshoting.
Understand the context of the technology
Memorizing technical terms is painful, but it’s easier when you know how to connect the dots together. For instance, it’s so hard to remember the difference between OTLP and OLAP.
But if you put it into historical concept, it’s so easy. OLTP (transactional) happens because the traditional database that handles transactions is pretty bad at data analytics. It’s slow. That’s why we need OLAP (analytical) for big data analytics.
Recall and rephrase concepts
Whenever I finish learning 1 concept, I usually write a paragraph that I digest myself. For instance, this is my OLTP vs OLAP learning.
We have OLTP that is good at inserting and deleting database, however, it’s bad for complicated query and analysis. At that time, we wonder why can’t we aggregate data from different places and do analysis together? So we start to use data warehouse. And OLAP becomes the engine to query data warehouse.
How I play the job search game
Most people think of job search is only about ability, but it is really not. I spent a careful amount of time learning how to play the game. Beyond the traditional suggestions such as networking, there are two big lessons I learned.
Bring surprise and novelty
Given that even getting an interview in the US is very hard, I prepare interviews carefully. How to ensure I’m better under fierce competition? Being fluent and looking smart isn’t enough. I need to bring surprise and novelty. But how?
Most of the interview questions are already publicly accessible on Glassdoor. I went through those questions carefully and thought of how to bring new things that most people will not know. Can I provide novel techniques? Can I bring an interesting perspective based on my past experience?
Yes, the questions I get might be different, but I make sure I think two steps ahead of most people.
Crafting my style
Personality in the workspace matters. When I was writing, A guide for women in tech, I learned that I needed to learn how to craft my personality in the workspace, including my interview process.
Most friends said, “But the job market is shit. Those companies are in the upper hand.” Not true if you know how to craft your style well. I read and practice Pitch anything: an innovative method for presenting, persuading, and winning the deal to learn how to re-engineer the social dynamic when I’m in a disadvantaged situation. In addition, I constantly rethink my style in the workspace.
For instance, I used to be viewed as young and curious so people don’t respect me. I decide to present other angles of myself. This is my current style:
- Curious, but not out of naiveness, but intelligent
- Grounded and emotionally mature
I don’t present myself as a curious young new grad. I present myself as I know a lot, but I still want to know your thoughts and perspective. As I know I have a pretty grounded personality, I decide to show more of this side when I’m challenged. The style helps a lot because I start to feel I’m solving problems with people during an interview rather than trying to please you. Besides, I also select outfits that will help me present this style of me. So no hoodie and t-shirt.
I stopped pretending to be a confident alpha male but brought out my strength in a comfortable way that aligned with my personality. It is super funny that my behavior changes a lot in an interview after I start developing my style.
In one interview, as I was tired and could not solve the problem, rather than feeling anxious, I told the interviewer, “I’m tired and cannot think now. Can we take a break?” And then we took a bathroom break and chatted. I solved that problem in the last 8 minutes.
Dear the weirdo friend, I don’t know if you find this post anywhere helpful. But I’m so happy you gave me a chance to compile my growth and learning. Let’s grow and learn together!