Chapter 8
IN THIS CHAPTER
Finding out questions the company might ask
Leveling up your coding skills prior to your interview
Canvassing your network to learn the company’s interview process
The moment after you’ve finished your phone screen, or after you were asked to come in for an interview instead, you need to start preparing for said interview. Even if you don’t get an interview after your phone screen, you need to start preparing as if you’ll get that call for an interview any second.
In this chapter, we start by having you think like your interviewers to determine what questions you would ask a prospective employee — both technical questions and the infamous (if not dreaded) people or “soft skills” questions. This exercise will help you prepare for the questions the company may ask you.
If you feel you’re weaker in one or more areas of the programming language(s) the company needs its new hire to know, then we tell you how you can level up your skills so that you can show them off when the interviewers ask you to write some code for them.
Finally, you learn how to canvass your network so that you can put together a proper mock interview, fix any issues, and be ready to slay the interview room. (Yes, metaphorically.)
It may seem logical that you should find out what kind of questions the company will ask you before your interview so that you’ll be prepared. Most people, though, ignore this opportunity because they’re … optimistic that they can answer any question an interviewer asks. As a programmer, though, we suspect you’re more thorough in everything from getting the code just right to getting your interview down cold.
Depending on how large the company is, you may be interviewed by the founders, a small number of people (like the entire programming team), or a cross-section of people from the team you’ll be working with, folks from human resources (HR), and perhaps even executives such as a chief information officer (better known by the acronym CIO).
All these people will search online to find a list of questions to ask you about your programming skills. Your interviewers will also want to know about you as a person, so they will also ask the simple “soft skills” questions they’ve been asked in interviews before, such as where you want to be in five years, as well as look up similar questions to find out how you’ll fit in the company’s culture.
To be adequately prepared, you should think like your interviewers and look up the potential questions on Google to find out what kinds of questions you may be asked. For example, if you’re being interviewed for a Java programming position, it’s easy to find websites that contain a list of Java questions as well as the answers.
Here are some common Java questions you’ll find and you should know the answers to:
Don’t believe us? Just Google “remember by writing down” (without the quotes) and see all the results that show why writing down is better than reading and even typing information. It may seem unnecessary, tedious, and even painful to you to write things down, but you can put your brain’s improved performance to work in your mock interview as we discuss later in this chapter. We think you’ll be amazed at the results.
If you’ve participated in any job interviews, then you know about some of the standard “soft skills” questions interviewers ask to get a better idea of who you are as a person. You can get a soft skills question at any time from your interviewer or anyone on the interview panel — even a fellow programmer.
Just as with programming questions, you need to search online for the types of soft skills questions interviewers may ask you to be fully prepared. Here are some of the most common questions that are asked and how you should answer them.
Then, check out Chapter 16, where we discuss even more non-technical questions you may be asked and offer ideas to get you started thinking about how you could answer them during your interview.
The correct answer is to talk about being a part of the company, growing professionally within the company, and actively contributing to the company’s growth. None of your answers to this question should ever be about you planning to leave the company, such as, “I want to get a better job somewhere else.” If you say that, you’ll be dismissed immediately and then you’ll need take some time off to discover what it is you really want in life.
The biggest problem with identifying your greatest strength is choosing the answer you want to use. If you can’t figure out what your greatest strength is, think about the strengths you showed at work and/or school from your past experiences. Then think about which strength you think the company would benefit from the most.
The trap you can find yourself in when answering the question about your greatest weakness is trying to frame another strength as a weakness. For example, you might say, “My greatest weakness is that I’m a perfectionist. I like to do things perfectly.” Being a perfectionist doesn’t show the vulnerability required to be a weakness.
Instead, consider a similar response about perfectionism, but add some vulnerability. For example, “My greatest weakness is that I tend to be a little bit too obsessed with things, and sometimes I cannot complete a project, even though it’s already good enough. I might spend too much time working on a small detail, polishing something that doesn’t need to be polished.”
Answer this question not by bad-mouthing the previous company, your bosses, and/or your coworkers. Always be positive about your previous company. Some reasons you can use for leaving your last job include:
These sample answers are honest, and talk about you and your situation at the time instead of denigrating others.
This question is also one you want to answer without saying anything bad about anyone else. Your older family members were prepping you for an interview when you were young by saying, “If you can’t say anything nice about someone, don’t say anything at all.”
Answer this question by saying that in some instances you realized you were wrong. Perhaps you said the wrong thing during a conversation, didn’t say anything when you should have to resolve the situation, or didn’t ask a question you should have asked. In this case, tell the interviewers how you learned from the situation by learning how to change your behavior: You learned to listen more clearly, think better on your feet, and talk with the other individual instead of withdrawing.
The interviewers aren’t looking for you to show that you’re perfect. If you did, the interviewers may think that you’re being dishonest and/or hiding something. Instead, they want to know that you’re a human being and that you’re a better person now because of your past experiences.
Your interviewers will expect you to write some code during your interview to show that you can actually solve programming problems. For example, you may receive an algorithm problem and be asked to put your solution up on a whiteboard in the room. This type of problem may not be something you’ve encountered much, if at all, in your previous programming jobs and/or in school, so you may need to brush up on these skills.
We’re in a good time to be alive — we have the Internet, and so you can easily find websites that can help you level up your coding abilities and get you ready for these problems. What’s more, you’re reading this book, and we tell you about the types of questions interviewers like to give programmers.
This section covers Codility and LeetCode, two of the most popular testing and assessment websites available. These sites allow you to solve problems without the pressure of time and people looking at you. Your ego may be bruised when you find out you’re not as good in some areas as you thought you were, but these two sites will let you take practice tests, get your confidence back, and avoid being embarrassed during the interview.
It’s an axiom that the person we fear the most is the person in the mirror. Honest self-reflection is never fun, but it is liberating to have answers — or know where the answers are lacking. In the case of your upcoming coding test, ask yourself these simple questions:
If you answered no or “kinda” to one or more of these questions, then it’s time to feed your head (as the dormouse said).
Codility is a product used by many companies to test candidates’ skills, but the site also offers free resources and exams so programmers can get up to speed quickly.
Access Codility for Programmers at the website https://app.codility.com/programmers
. Figure 8-1 shows the Codility for Programmers home page. Before you start, you need to sign up for a member account by clicking Sign Up in the upper-right corner of the webpage.
The website allows you to read dozens of lesson documents in PDF format about topics including arrays, sorting, stacks, and algorithms. When you finish reading the lessons, you can take tests to check your knowledge. You’ll receive results of your tests and you can take the tests over and over again until you get a perfect score on that test.
After you create your account, Codility sends you regular email newsletters. These newsletters offer news as well as “challenges” that allow you to solve a particular coding problem along with other Codility users who take up the challenge. (Codility says it has over 20,000 members.)
LeetCode is also a popular site for programmers who want to get up to speed. When you open the LeetCode website at https://leetcode.com
, you have to sign up for an account by clicking on the Create Account button shown in Figure 8-2. After you create an account, you can sign in by clicking the Sign In link in the upper-right corner of the screen.
Like Codility, LeetCode has plenty of programming topics you can learn about, and you can take tests over and over again until you get a perfect score. You can also participate in contests against other LeetCode members.
LeetCode also has several additional features:
In previous chapters, we talk about imposing yourself on your friends to help review your cover letter and résumé, and help you with mock interviews. Your friends aren’t the only people in your network, and it’s likely they won’t all be available to help when you need them, either. Is it time for dramatic music?
Cue the adventurous music instead because the situation is far from bleak for you, programming superhero. If you’ve read previous chapters, you know that LinkedIn is a premier resource for finding people who currently work at the company you are interested in or have worked at that company before. And if you’re going to work for a large company such as Microsoft or Amazon, you’ll also find books specifically written about the interview processes at those companies.
In the following sections, we outline how best to canvass your network so that you can learn more about the interviewing tactics of the company you want to work for as well as find folks willing to be a part of your mock interview team.
If you’re fortunate, one of your friends will have interviewed at the company before — or knows a person who did. Your friend will be able to give you some pointers not only about what kinds of questions you may get but also what the entire process is like. If one or more friends work at the company, they may also be able to tell you about your interviewers so you know how to deal with them.
If talking to a friend isn’t an option, you still have three paths to explore.
If you have one or more LinkedIn connections who work in the human resources industry, contact them and ask if they know anyone who has worked at the company before. You’ll obviously have much better luck if you’re applying at a large company with many locations because such a person will be easier to find. What’s more, the company likely has a fairly standardized interview process, so if your HR contact recommends someone at another location, the process at that location is likely the same as the one for the office in your area.
You can also search for the company directly in LinkedIn. A company search will also bring up the profiles of people who currently work for or who have worked at that company. If you’re lucky, one or more of those people will be linked to one of your connections so you can ask your connection for a referral. Otherwise, you’ll have to pay for and use InMail to make a connection and hope that person is happy to help you.
There are plenty of programming forums and groups on other social media websites such as Facebook and Reddit where you may be able to find people who work (or have worked) at the company. And don’t forget to canvass programmer-centric websites, including Stack Overflow (https://stackoverflow.com
; shown in Figure 8-3) and LeetCode, that have online forums; on those sites you can chat with other programmers and find out if they know anyone who works for the company you’re interested in. Web-based programming forums and groups are less targeted than LinkedIn, but it’s still a path with breadcrumbs.
If you’ve applied to a job at a specific company in your area, then you should check out in-person programming events in your area. Your local newspaper and/or business journal as well as online meeting sites like Meetup (www.meetup.com
) should have information about when the next event is.
Even in-person events aren’t as effective as LinkedIn at finding people because you have no idea who will be at the event, let alone how many people will be there. But, like programming forums, live meetings are another opportunity to find the person you’re looking for, or a person who can get you in touch with The One (or several Ones).
Chatting with others online and reading books (even this one) only take you so far. If your friends and other connections are in the same area you are, then you can get them together at a location that’s convenient for everyone, such as shared office space that offers its conference room for rent and conduct a mock interview session.
Some, if not all, of your friends will be happy to participate in a mock interview. However, you don’t want the mock interview to be friendly and easygoing. You want it to be nervous and intimidating — that is, as close to the real thing as possible. Only a realistic mock interview will give you the feedback you need to feel good when you start your actual interview. Therefore, you may not want to have all your friends as mock interviewers because during the real interview, you’ll be in a room full of strangers.
Your ability to schedule a mock interview will depend on how much time you have between the time you get the call from the company and when your company will be holding interviews. Many companies hold interviews during a block of time, such as during one week, so everyone in the company can get his or her other projects done and then concentrate on hiring the new employee.
When you talk to friends, strangers online, or strangers in person, ask them if they would be interested in participating in a mock interview at a convenient location like a rented conference room. Also be up front about your time constraints, and hopefully many of the people you talk to can accommodate your schedule.
You should approach all mock interview members either in person or online to ask them about what they want in return for their time and effort. People will want to be compensated in some way, and you’ll need to figure out what that is — it could be a hearty meal, a gift card, or just a trade that you’ll participate as an interviewer in the other person’s mock interview.
You may need to give different gifts to different people. One way to do that is to give people a choice of what type of gift they want from a list of gifts you’re willing to give. Your potential interviewer may have a suggestion for a gift instead, and you’ll have to decide for yourself if you want to do that (or your budget may decide for you).
A mock interview is a good opportunity for your interviewers to role-play and give you a good idea of how to work with the personalities of your interviewers.
At least a day before you meet for the mock interview, think about who your interviewers are going to be, fire up Microsoft Word or your favorite word processing application, and type a one-page description for each person about what department each works for and what type of personality each is. For example, one interviewer can be very dominant, another can be nice, and another can be submissive.
When you’re done, print out each description and give it to each person at least a few days before the mock interview starts so that you know each interviewer knows his or her role. The interviewers will have some time to absorb it, form their questions, and rehearse their behaviors in their heads before the mock interview begins.
Here’s a sample mock interviewer description that you can use as a starting point in building your own:
The mock interview should also include at least two observers who will take notes about how you and your mock interviewers perform. These observers should sit out of easy sight, such as in the corner of the conference room. Feedback from people who aren’t participating directly is invaluable to getting information that can help you during the real interview.
A mock interview is the perfect opportunity for you to take notes as you’re asked questions and after you finish the coding test so you can understand what you’re doing well and where you’re falling short.
You should also write some notes right after the mock interview to get your impressions of the experience and any other thoughts about where you could do better. Your observers will be able to fill in some gaps in that knowledge as well, so be sure to get copies of their notes. (And don’t be surprised if others in your mock interview group want copies of your notes to refer to the next time they have an interview.)
If you have the time and your interview team is willing, you may want to have a second interview after decompressing for a couple of hours and then see how well you fix some or all of your issues. However, some problems may need to be fixed during the time between your mock and real interviews, such as filling holes in your programming knowledge.
Despite all the work you put in during the mock and actual interviews, you still may not get the job. If you received a letter from the company that you didn’t make the cut, you still may want to call them and ask for their feedback.
For example, you could ask an honest question that’s a little bit blunt: “Thanks for interviewing me. I’m really trying to improve my interviewing skills, and I would appreciate it if you could give me any feedback on areas I can improve. Or maybe you could just give me one thing I could work on to improve my interviewing; that would be awesome.”
The person on the other line may be impressed enough that she’ll give you that one thing and perhaps more. Write down those things as you receive them, and start working on fixing those things immediately. The next job interview is coming sooner than you may think. And it may come from the same company that rejected you if it believes you’ll be an improved candidate for a future programming job opening.
3.145.97.170