Check out a free preview of the full Getting a Software Engineering Job, v3 course
The "How to Prepare for Interviews" Lesson is part of the full, Getting a Software Engineering Job, v3 course featured in this preview video. Here's what you'd learn in this lesson:
Jerome describes how to prepare for technical interviews. A foundation in computer science fundamentals, data structures, and algorithms helps prepare you for coding challenges. Employers also want developers who can clearly communicate their thought processes. Developing a study plan will help establish a learning regime.
Transcript from the "How to Prepare for Interviews" Lesson
[00:00:00]
>> Jerome Hardaway: I usually don't include this section, especially the last three years, because frankly, if you did everything else I told you the right way, you usually wouldn't even need this section. But the market has changed where even people like me, who have crazy career metrics of being all over the place, are still having to do the code challenge.
[00:00:26]
Where they're not valuing just the work you've done. So we have to now talk about this technical interview preparation. How to do it, how do we plan it out when it comes to a particular job, right? And now I'm going to go over stuff that not only the statistical data show that it's a code, but the data has shown for me this year with my own journey of what works.
[00:00:56]
First step, you have to understand the interview process. So we know, you got the resume with ATS, ATS said good HR, and now we go from the HR and we are able to like, okay, you're going to interview. So, how's that interview go? Your HR calls you, in today's market HR is going to call you, it's going to be recorded.
[00:01:21]
They are going to be using artificial intelligence on this recording. So this is why you need to practice every single layer of interviewing. They are gonna be doing sentiment analysis on this recording, I can't stress that enough. There will be sentiment analysis done on this recording, that's what the software does.
[00:01:44]
It showcases if you're based upon your uhs, how uncertain the inflections in your voice, things like that, this is what this software is designed to do. So that first phone call you have, that is your life right there. That's not, you can't just foodbar your way through that.
[00:02:04]
This is life. So after that, if you pass that, usually, in order to keep from bias happening, the first interview is gonna be a co-challenge. That is what happens, so that way you cannot use rapport and relationships. It's gonna be a code challenge, and because of the way the technology is now, it's gonna be on CodeSignal, HackerRank, LeetCode.
[00:02:29]
Even though, as a programmer that's worked in enterprise tech now, I have yet to see a problem that translates well from LeetCode or HackerRank into real world coding. That is still gonna be the thing. Now, we're saying this, why is this gonna be in these, is because with IDEs, with AI, Audi, stools, co-pilot, it's like back in 2015 when rails was really big.
[00:02:59]
People can build robust tools and robust applications with minimal processing, a minimal experience, right? So it's the same thing with now in the era of AI, I can give you a code challenge, but if I, one, didn't already care about the code challenge, just pull someone off the internet.
[00:03:19]
Definitely ChatGPT definitely knows that, or Copilot knows it, etc. So now I have to put you in these environments that aren't realistic, they don't have linters, they don't have access to the internet, things of that nature, in order for you to actually code, right? To see if you can truly code.
[00:03:39]
I've had two of them, one, it was much more difficult, and then the other one it was much easier with the type of tools. So I was like, so some of them are going higher in skill set, and some of them are going lower in skill set based upon the fact that guess what?
[00:03:54]
The nature of how you code in real life is, so far different from nature to encode on these. But you still have to prepare for the higher levels, that's what I recommend. So, now you do that, then you get your loops or your other versions of like, now you're talking to the dev team.
[00:04:13]
You're talking to one, two, three, there are sometimes flying you out to talk to people on the developer team. So that way you're now having to ask these questions, IRL, but there's also bias in stuff. Cuz once the developers get in or they start hearing your name and stuff of that nature, they're like, especially me, I had this problem with the why.
[00:04:36]
Where, that's when I could tell the bias was starting to come in and I'm like, okay, this part isn't gonna be as good for my data, because I'm not gonna be able to use it. Because I know that these people know who I am now. Like, HR didn't know who I was, but the coders knew who I was, at least one.
[00:04:56]
And they were like, he's so cool. You may have started Googling me and started wondering, no, cuz every self-centered jerk, I have Google updates whenever people are Googling like crazy, right? On what's happening in the streets. So I knew that the data wasn't gonna be as clean for that, but I still got that offer and I was like, okay, I know that right up until this point, the data wasn't clean.
[00:05:23]
So that's where bias starts. Once the developers start getting into play, particularly when it comes to networking and things, that's when bias can get into play. Now, it can get into play earlier, but for me, bias didn't really get into play until after the human software engineer got into it, right?
[00:05:41]
So that can be taken as positive or negative. But after that loop, after you get to go no-go and you start with the, this is the offer. I always send the first offer back, you always negotiate the offer, and you don't just have negotiating money, you negotiate the budget for learning, right?
[00:06:00]
How many of you have negotiated, hey, guess what, can you pay for my Frontendmasters? I've done that. Can you pay for the tickets for a conference once a year? Can you do that all these other things that are on the table beyond just a salary, like, you know what?
[00:06:15]
Just not being able to spend the money on things that I would spend money on to be good at my job is just as important as me having the money itself, right? And being able to pick my resource. Now, that's the interview process, right? ATS, HR, that phone call, that's sort of AI starts getting component, then you get the code challenge, and then the code challenge.
[00:06:35]
Now, one thing I will tell you, with the code challenge, they're not just testing that you can code, they are testing how you communicate while you're coding, and if you understand the performance of your code. Now, that's why we have to start getting back into our CS fundamentals, because there is a lot of big O notation asked in today's current coding questions.
[00:06:57]
Not just, what Is the big O, how do you identify to big O, etc? Just they wanna know that you're writing performant code now.
>> Student: Just to add to that, our computer science and interview prep learning path has most of our computer science and algorithm courses. So it starts out with a complete intro to computer science, and then as a couple intermediate, advanced algorithm courses, and some practical algorithm challenges.
[00:07:22]
>> Jerome Hardaway: Awesome, so you guys heard that? Frontend Masters has a computer science path that you can get on to help shore up those skills. You're definitely gonna need them in this current market. Practice, practice coding challenge, go on LeetCode. Exorcism.io is also one, that's actually my favorite, I like being on Exorcism.io and just practicing the stuff in the terminal and my own text editor.
[00:07:46]
But you kinda, in this era, gotta get on a browser and use one of those browser-based tools, unfortunately. Because, you gotta train in an environment they're gonna be in. In a military, we call it a train how you fight, civilian side call it, train how you work, you have to train in the environments that you're going to be in.
[00:08:04]
And that's the environment you're gonna be in on a code challenge, so you need to get comfortable with that. And I recommend you start talking out loud when you're doing your code challenge, so you're figuring out so and making notes. First thing I do is I make notes about everything the person says, and comments, and then I started working on my code.
[00:08:23]
And I start talking out loud about, this is all the things I do to do, and here's all the problems and I'm gonna go now hard coding and now I'm gonna make this code a little more flexible, little more elegant. Now I'm gonna think about, mh-hm, is this performing that?
[00:08:37]
Let me see, how would I've gotten this for four minutes. Let me do these steps, right? That's how I go through the process of code challenges now. Most importantly, develop a study plan. Like said I am the biggest, stay ready so you don't have to get ready fan.
[00:09:02]
I have a study plan for every quarter of my life. I prepare for that plan and that's what I focus on those, that's the important thing I spend 90 minutes. That's the apex of deep learning that you could get with anything, you do 90 minutes of deep learning or deep work.
[00:09:19]
Cal Newport, love his books. He is my idol, I everything he does, I'm like, I literally, okay, 90 minutes to apex of time that I can do before I need a break. So I spend 90 minutes on deep work, on a subject every day. And that gives you compound interest of those subjects.
[00:09:41]
So if I'm prepping for a code for this, I'm developing my plan on Sunday, 90 minutes. Now, executing, Monday through Friday, on that plan, 90 minutes a day. That 90 minutes adds up, the first 90 minutes is gonna suck, by the time you get to the 10th, 90th minute, you're a pro, right?
[00:10:03]
You've learned a new language probably, and you've learned how to do all these algorithms, right? So that's what we have to do. And build projects that also incorporate these types of things, right? One of the things we talk about building projects is, we don't talk about, what are we trying to learn with the project?
[00:10:24]
I've had that question, we talked about the JavaScript calculator, the job of it is to teach you the module pattern. But people don't know the job of the JavaScript calculator is to teach you the module pattern. The to-do apps I'm supposed to teach you is not only how to make crud applications, but also supposed to teach you LIFO and FIFO, which is, Last In First Out, First In, First Out right?
[00:10:48]
Those are the principles that you start learning with these, but people don't know. They don't think that those are the computer science principles that you're supposed to be picking up when you're doing those small projects. People don't understand that. They don't pick up on that. They're just like, let's just do this stuff, right?
[00:11:08]
And if you're a mid senior, this is what's most important to you, having an understanding of system design and design doc, how to put all the pieces together, right? Like, as a junior, you're like, hey, I'm gonna go to GitHub, start coding. I'm gonna use Next.js, and then I'm gonna use Versal, I'm done.
[00:11:27]
Bow, I bow to your uncle, the app is live. [LAUGH] Gun finger, finger guns everywhere, right? That's it. You can't do that as a junior, I need to know that you understand, where are you gonna put your data layer? What are you gonna use for your data layer?
[00:11:42]
How are we gonna do measure performance? Where are we gonna do logging? Where are we gonna do observability, right? Observability, that's a thing that people don't even think about when they're thinking about their interview process. Now I have to talk about this, now as a mid-senior? As a junior you're like, what is observability?
[00:12:02]
What am I doing? You're observing the app, like, you're observing the resources on the app and making sure that performance is good. Like, okay, that's cool, these are things that you now have to start thinking about. So now you have to start thinking about the architecture of your applications, designs of the systems that you're gonna be building, on top of all this other stuff.
[00:12:22]
And of course, continuous learning. If you're anything, like I said, I'm getting ready, so I'm doing the study plan. I have continuous learning plans. I know what I'm gonna learn this quarter. I know what I'm gonna learn the next quarter. I know what I'm gonna learn. I know when I'm gonna learn it.
[00:12:37]
I know what part of the world I'm gonna be at when I learn something. I know in August, I am gonna be focusing on artificial intelligence with R and doing more rag application training. And I know I'm gonna be in Japan while I do that, because I have the vacation in Japan but my wife knows I'm not giving up those 90 minutes of education.
[00:12:57]
So I know what I'm gonna be learning, where I'm gonna be learning it at, and would like to focus on how I'm gonna be learning it, right? I'm gonna be on deep learning AI LinkedIn learning, I'm gonna be on these and focusing on how to learn these two things, right?
Learn Straight from the Experts Who Shape the Modern Web
- In-depth Courses
- Industry Leading Experts
- Learning Paths
- Live Interactive Workshops