Preparing Mentally for the Interview Process
You've got this!
First and foremost, you've got this! Software development interviews are hard and there are a lot of things you need to prep. But everyone going after the same jobs are also mere mortals. The key is to make a plan, do your best, and be persistent.
Software development interviewing is really hard
Companies often ask you to devote several hours interviewing (and countless more preparing). During interviews, people look over your shoulder as you complete coding challenges, judging you as you go. Talk about stressful!
You have to prepare mentally
Given how time-intensive and stressful software development interviews can be, it's a good idea to prepare mentally for the process. In this section, I talk about a few things you can do to "weather the storm" during your interview process.
Set goals with dates
Far too often someone tells me they're preparing for software engineering interviews, but they haven't put any of the following milestones on the calendar:
- start submitting résumés to companies
- start interviewing
- accept a job
Milestones #2 and #3 are more in your control than you might think. If you miss any of your planned dates, you should start course correcting: what can you be doing differently to get better results?
The timing and spacing of these milestones likely varies dramatically based on your comfort level with interviewing and your current situation. For example, if you're out of practice with interviewing and you are comfortable in your current position (e.g., at university or in a stable job) then perhaps you give yourself a couple months to complete each step. Conversely, if you have just been laid off unexpectedly and you need employment badly, you may want to perform each of these steps as soon as possible.
Time-box your prep sessions
For some folks, thinking about interview prep can dominate your life if you're not careful! For others, it can be hard to just sit down and do it. In both cases, it's a great practice to time-box your studies: perhaps it's an hour per night, maybe two. Or maybe an hour every other day. Regardless of the amount of time, I strongly suggest you document your plan and stick to it. When you're not in the time-box, enjoy life and try not to think too much about it. This deliberate time off will help combat burnout.
Make sure your family is on board
In the next section, we'll talk about combining milestones and time-boxing into a scheudule. Once you have a schedule, make sure your loved ones are on board (if applicable). This is especially important if you need to do fewer chores or a bit less childcare while you're studying. If you have a plan and your family is on board, it'll make it much easier to manage your prep along with your personal life.
Reframe your thinking around failure
The last piece of mental prep I can suggest is a big one: reframe how you think about failure. One of the biggest reasons people avoid technical interviews is fear of failure.
I suggest approaching technical interviews how a baseball player approaches an at-bat. If you're unfamiliar with baseball, it's really good if a baseball player gets on base one third of the time. That means 67% of the time, the baseball player doesn't make it—they "fail." But this doesn't make them a bad baseball player, it's just hard to get on base.
That's how software engineering interviews are. They're not easy and you often don't get the job—but that's totally okay. I personally have had a bunch of interviews where I performed poorly. Some where I just sat there and had no idea how to answer the question. None of that mattered though because each time I eventually got a great job, and that's all that matters.
Help this guide grow
If you're enjoying this guide, please support it be giving it a "star" on GitHub. I would really appreciate it!