Become an Expert at the Technical AuditionPart II

This week, I deep dive into the specifics of implementing deliberate practice in your interview preparation

Leana Critchell
Towards Data Science

--

Photo by Kulik Stepan from Pexels

In Part I of this blog series, I discussed the idea of treating onsite technical interviews as auditions rather than interviews and that we can utilise practice techniques adopted by professional musicians to ensure our preparation is more efficient and geared towards success.

One such practice technique is a method called deliberate practice which I will deep dive in this blog. Be sure to check out Part III that outlines a study plan implementing deliberate practice.

Deliberate Practice

In Part I, I touched on the idea of deliberate practice¹, a term coined by Dr Anders Ericsson and identified as a method used by many to excel themselves to expertise. In this article, I’m going to deep-dive into what deliberate practice is and suggest how you can apply deliberate practice to your technical audition preparation.

For example sake, I’m going to structure this plan towards a software engineering interview(/audition) and structure the plan to address the main topics covered in Gayle McDowell’s Cracking the Code Interview book. I’ve identified 20 main topics in the book and categorised them into 3 main areas of study — you can adjust the list however you see fit. A list of these 20 topics will be shown later in this article.

I also want to preface and say that this plan is a ‘perfect world’ plan — keep in mind that we don’t live in a perfect world and you won’t always be able to follow a plan perfectly — be prepared to be flexible and adapt as necessary.

Alright I’m In — So What is Deliberate Practice?

Deliberate practice is a combination of two things:

Deliberate Practice = Purposeful Practice + Expert Coaching

So, in order to know what deliberate practice is, we need to understand these two components. Let’s break these two areas down further:

Purposeful Practice

Purposeful Practice is made up of 4 components:

  1. Specific, objective goal/s
  2. Intense focus for specific time periods and tasks
  3. Feedback
  4. Frequent operation on the edge of your ability

Let’s dive deeper:

Purposeful Practice:

  1. Specific, Objective Goals:

You’ll notice I’ll use the word ‘objective’ frequently throughout this article. That is arguably the most important part of setting up your goals. The only way you can know if you’re improving is by having goals that are measurable. They might be measured in a binary way: ‘right’ or ‘wrong’, or on a scoring system: ‘1/10’ for example.

Photo by Markus Winkler from Pexels

To be able to set your goals, you need to have an understanding of where you currently are — your baseline — and where you’re trying to get to — your end goal.

Your end goal will be large and broad and so we will need to break it down into sub-goals and categorise them to make them as specific and as objective as possible.

For example —

End Goal:

Successfully and confidently complete an on-site interview.

Wow. Very broad and not very specific.

Let’s think about how we can measure success here and get more specific.

To successfully complete an interview, you need to have competence in the 20 topics² that you know could be tested. These 20 topics can be broken down into 3 categories (yay, now we’re getting specific!).

So our end goal is now something more specific, such as:

Achieve competence in the 20 topics tested.

This still isn’t really specific enough — we can do better. For example, how do we define ‘competence’?

Baseline:

To determine where to start and how to structure our goals and study plan, we first need to work out where we stand with all these topics right now.

Remember, we’re trying to be objective and measurable. To establish a baseline, take some time to go through and rate each topic on a scale of 1–3:

1 = I know very little about this, could answer less than 20% of questions

2 = I am somewhat familiar with this, could answer around 50% of questions

3 = I feel extremely confident with this, could answer at least 80% of questions

Keep all emotion out of this task. Remember — it’s objective!

The task should not overwhelm you³ if you’re answering mostly with 1s — that’s completely expected! We just need to establish a baseline.

KEEP IT OBJECTIVE!

Here’s how I might organise this:

Topics:

Organising topics into categories and rating them on a 3-point scale. (Image by Author)

Create a table with the 20 topics organised under their 3 categories with a space to enter your baseline rating. Notice I also put answer lines next to the topic headers — it’s a good idea to rate which categories you feel most/least confident with.

With our rating system, we have now found a way to make our goals specific and objective.

With this, the aim is to achieve a level 3 in all topics — thus, we have now defined ‘competence’ to mean ‘achieving a level 3’. Each week, we will re-rate each topic to track our progress.

Great! We’ve now established an objective end goal:

Achieve a level 3 rating for each topic.

Next on our discovery of purposeful practice…

2. Intense Focus

I’m speaking from the heart when I say that the hardest thing about interview prep is trying to not get overwhelmed by how many topics there are to cover. This is why Intense Focus is a critical skill to hone.

Photo by SplitShire from Pexel.

Intense Focus involves tunnel visioned focus on a topic, combined with simulating the ‘real interview environment’.

Tunnel Vision Focus:

Tunnel vision focus involves ensuring that when you’re studying a topic, it is the only thing on your mind during your study time. If you’re working on linked lists, you only think about linked lists for the dedicated time (more specifically, you only focus on the identified problem areas of linked lists — more on this later). Try to forget any other topic exists.

Simulating the Real Interview Experience:

Emulating the real environment you’ll have for the real interview is an important part of training focus.

In COVID times, this is actually much easier for us to do since the location of your interview is almost guaranteed to be the place where you’re studying.

In the music world, professional musicians might book the venue space of their audition to practice with the same room, chair and acoustics etc. as the real event, or at the very least, visualise being in this environment while practicing.

On top of simulating the physical environment of the interview, we need to train the brain to be confined to interview time intervals.

If you know that your on-site interview is going to be 50 minutes long, you should study in 50 minute intervals. This allows your brain to get comfortable with the time frame and how long it has to answer questions. Not only this, but the brain processes information much better in shorter time periods and allows you to hold focus the whole time.

I recommend setting timers and forcing yourself to take a 10min break between intervals. I also suggest setting mini goals for each study/practice session as this will also help you to stay focused every time you sit down at your desk.

3. Feedback

The. Most. Critical. Part.

Feedback on our progress is how we determine what to work on next. It drives our goal setting and the focus for each study session.

The feedback needs to be specific.

Photo by Moose Photos from Pexels

For example, if you’re weak on your understanding of Bit Manipulation, what is it specifically that you don’t know about it? What do you have trouble with? Where are the roadblocks?

If you’re have trouble identifying the specific areas of difficulty yourself, this is where your ‘expert coach’ comes in (more on that later…).

Most likely, you don’t have a ‘tech coach’ at your immediate disposal⁴ so we need to be a little more creative with how to get regular feedback. Your feedback will come from:

Yourself -

There will be many topics that you will be able to identify your shortfalls yourself and you will be able to pinpoint “ah, if I just knew blah, I’d be able to overcome this” and so you will then go and work on blah.

Solutions -

This will be your main source of feedback during this study period. For every question you do, study the solutions in great detail. Highlight the parts of the solution you got wrong and deep dive into why this is the solution.

For this reason, I highly recommend not doing problems that don’t provide solutions — of course you can attempt them, but you will not be able to get feedback (unless you have a coach).

Something many people often don’t do that is actually very important: study the solutions of the questions you got right!

As you know, there are often many ways to do problems, and so we can always learn a better way to do things. Thus, check to see if your solution was the optimal solution (thinking about time and space complexity) and if it was, store this in your brain and make note of it. If the solution differs to yours, and explains why it’s potentially better, yay! You’ve just learnt a new way to do something and gained a deeper understanding of the topic.

Hopefully it goes without saying to make sure you’re getting your solutions from a somewhat reputable source. You should be able to trust solutions from platforms like LeetCode, HackerRank, Cracking the Code book etc. If you’re reading forum discussions for solutions, be mindful that these can be heavily opinionated and not everyone in the discussion will be qualified to comment, so be sure to verify forum suggestions and solutions.

Finally, ideally find full solutions that are detailed with the ‘hows’ and ‘whys’. If solutions aren’t available, you might need to research the solution with a bit of google searching and piecing things together. A more time consuming process, but often this can lead to learning more along the way.

Expert Coach -

This is the second part of the deliberate practice formula so I will talk about this below in the ‘Expert Coach’ section!

4. Frequent Operation on the Edge of Your Ability:

Think of this as a ‘1 step forward, 2 steps back’ approach.

Photo by Kara Muse from Pexels

Aim to constantly work at the very edge of what you already know and what you don’t know. This means studying the area that you don’t understand and using the building blocks of what you do know to get to the new piece of understanding.

This creates cohesion in our understanding and means we’re never just mindlessly learning new topics one after the other. Work on something new, while recapturing the previous 2 steps/building blocks.

This process ties in really closely with the feedback loop.

Here’s how I might do this:

Keep a log of all the questions you do and make sure you’re categorising them under the relevant heading. For each topic heading, have a column of questions you got right and a column of questions you got wrong. The goal here is to keep retesting the ‘wrong’ questions so that eventually all questions are in the ‘right’ pile.

However, don’t retest questions unless you’ve studied the solutions and further researched that problem area → this is the ‘operation on the edge of your ability’ part.

A tangible way to approach this is to do 3 questions at a time — 1 new question and 2 old questions from the ‘wrong’ pile.

Finally, and most importantly, in order to continuously know where the edge of your ability is, you need to rescore your topics on the 3 point scale we mentioned earlier. I suggest doing this at the end of every week.

Even if you ‘know’ you haven’t made any improvement because you didn’t do much study that week, it’s important to still reevaluate because it’s easy to forget some of the small progress that you make. Maybe only one topic changes score, but that’s still tangible, objective progress.

Expert Coaching

Expert coaching is a little more self-explanatory than purposeful practice, however in the context of the tech interview, it isn’t as clear cut. To be an expert coach,

  1. A person must be an expert in their field and above your level of knowledge,
  2. They need to be able to identify areas of improvement and provide effective, objective feedback
  3. They need to be able to help foster mental representations

The main role of the expert coach is providing feedback.

Unlike athletes, dancers and musicians, software engineers rarely have 1:1 coaches! This is where we have to be creative with the methods of feedback I mentioned above. Use a combination of these to act as your ‘coach’.

Finding a Tech Coach:

If you’re already a professional in the field and work/socialise with a bunch of experts then this is great! Identify the ones around you that are excelling in their field or are where you want to be (or have the job you’re trying to get).

Photo by cottonbro from Pexels

Ideally, you want someone who is a good communicator and won’t brush you off when you ask for feedback. These will be the people you’ll ask to do mock interviews with, read over your code, or discuss concepts with. If there’s a concept you don’t understand, ask them to help you pinpoint which part of the topic is the biggest blank.

If you’re new to the industry, you have two options: paid coaches and organic coaches.

You can find paid coaches from sites like Skilled, Interview Query and many more.

Organic coaches can be found by joining community groups and attending meet ups regularly. This takes a little more time (and confidence), but don’t be shy — ask a senior member of the group that you’ve noticed is ‘nice’ if they’d be willing to look over some code or do a mock interview for you. People are more willing to help than you think.

A Note on Receiving ‘Advice’:

I strongly encourage you to be picky about who you choose as your coach and who you take advice from. This applies to general life, not just tech!

When receiving advice, ensure the person ticks all three of the following:

  1. The person must be an expert in the field of what they’re giving advice about.
  2. The person must be familiar with your individual situation.
  3. You must respect the person.

I, personally, live by these criteria and assess these three points every time someone is dishing out advice⁵. It doesn’t mean you disregard someone’s point if they don’t tick one of the boxes, it just means you’ll take the advice with a grain of salt.

But I strongly recommend you keep this in mind as you’re assessing who to be influenced by. Especially in today’s world where everyone has an opinion⁶…

Now that we understand the deliberate practice recipe, it’s time to bring it all together into a study plan!

Check out Part III of this blog series to see how I put all of this together into a specific study plan for software engineering interviewees!

Footnotes

¹Here’s a great video (feat. Ericsson) that summarises deliberate practice nicely.

² I’ve identified 20 main topics specific to software engineering competence but please adjust, add and subtract topics as you see fit! And of course if you’re studying for a data science interview, the topics will be different.

³ Don’t get me wrong, this is easier said than done and can be quite a confronting task at first — I myself struggle with this!

⁴Although these are becoming more popular and more available to hire

⁵Don’t worry, the irony of me giving advice about giving advice is not lost on me

⁶What is it that they say about opinions?

--

--