Chapter 8

Testing Strategies for the Interviewee

IN THIS CHAPTER

Bullet Finding out questions the company might ask

Bullet Leveling up your coding skills prior to your interview

Bullet 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.)

Preparing for Questions the Company May Ask You

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.

Searching online to find the top questions

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:

  • What are JDK, JRE, and JVM?
  • Why is Java not 100 percent object-oriented?
  • What are constructors in Java?
  • What is the JIT compiler in Java?
  • What is the final keyword in Java?
  • What is constructor chaining in Java?
  • What is polymorphism?
  • What are the different types of inheritance in Java?
  • What is a copy constructor in Java?
  • What is an interface in Java?

Remember Don’t just give back simple answers to the programming questions you receive, because your interviewers want to know that you understand the answers. That means your answers should be followed with an explanation of why the answer is correct.

Tip Just reading the questions and understanding the answers aren’t enough, though. Our brains are hard-wired to remember things if we write things down. So, get out your pen and paper and write down the questions as well as the answers you find from one or more websites. How you write them down so your brain remembers them is up to you, but the physical act of writing with pen (or pencil) on paper is how our brains work.

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.

Knowing how to answer soft skills questions

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.

Where do you see yourself in five years?

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.

What are your greatest strength and greatest weakness?

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.”

Tip When you give an example of a weakness that tells the interviewers it’s something you need to work on, follow up by telling them how you’ve worked to turn that weakness into a strength. For example, you can say, “Over the years I’ve learned how to turn this weakness into a strength. What I’ve learned is that my attention to detail and my tendency toward perfectionism can be used in the right places to make sure that things are done properly. I’ve learned over time to know when things are good enough and I can move on. This has really helped me become a better developer.”

How and why did you leave your last job?

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:

  • I felt that my professional development had stalled, and I wanted to take some time off to grow my knowledge and contribute to the programming community by taking advantage of speaking and writing opportunities.
  • I needed to take time to get away from the computer screen for a little while and spend time with my family and some other important projects I needed to finish before I could return to programming.
  • I had some family issues that needed my attention, but I still managed to keep my feet in the programming waters by adding posts to my blog and answering questions on Stack Overflow.

These sample answers are honest, and talk about you and your situation at the time instead of denigrating others.

How do you deal with conflicts in your job?

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.

Tip Showing how you’ve grown personally over the years is even more critical if you’re applying for a higher-level position such as a senior-level programmer or a manager of a team, where maturity at this stage of your life is an important asset.

Leveling Up Your Coding Skills

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.

Tip Codility and LeetCode provide services for companies to match a company’s requirements with members and offer online assessments. So, don’t be surprised if a company representative asks you during the phone screen or before the interview if you’re a member of Codility or LeetCode. If you aren’t, ask the company rep which website the company uses so you can create an account (it’s free to join both sites) and begin taking tests and participating on those sites, as we discuss how to do later in this chapter.

Make an honest assessment

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:

  • Do you understand what all the data structures are?
  • Do you know what a queue is?
  • Do you know what a list is?
  • Do you know the difference between doubly-linked lists and an array?
  • Can you solve algorithm problems?
  • Do you understand the performance of various data structures and algorithms?
  • Do you know how to search in and sort algorithms?
  • Can you work with trees, lists, and various data structures?
  • Can you manipulate strings?

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).

Remember There’s only a finite number of data structures. When you understand the handful of data structures and their related algorithms, you’ll find that every problem you receive as part of your test will be related to those structures. So, as you take your practice tests, you’ll see similarities, and by the time you finish your tests, you’ll have an instinctive feel for how to solve any coding problem.

Getting up to speed with Codility

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.

Screenshot of the Codility for Programmers home page for accessing the Codility account by clicking Sign Up option in the upper-right corner of the webpage.

Source: www.codility.com

FIGURE 8-1: After you sign up, you can log into your Codility account by clicking Log In in the upper-right corner of the screen.

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.)

Tip Challenges have time limits, so they’re good practice for your interview because interviewers will ask you to finish a problem in a specific period of time. To take a challenge, log into the Codility website and block out an uninterrupted period of time (such as two hours) to finish it. If you submit what Codility calls a “golden solution,” you’ll have a Codility award on your profile that employers who use Codility can see. (You can also win prizes from challenges, but Codility reveals them only after you set up your account.)

Testing your skills with LeetCode

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.

Screenshot of the main LeetCode landing page for creating an account by clicking the button under the “A New Way to Learn” headline.

Source: https://leetcode.com

FIGURE 8-2: The Create an Account button appears in the top section under the “A New Way to Learn” headline on the main LeetCode landing page.

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:

  • LeetCode offers lessons and tests from a variety of different large companies, including Amazon, Facebook, and Google.
  • When you participate in contests, you can win “LeetCoins.” If you acquire enough LeetCoins, you can exchange them for trinkets such as a LeetCode T-shirt. When you get enough LeetCoins, you can redeem them for a Premium membership.
  • LeetCode has a variety of online forums so you can chat with other programmers online and build your online network.
  • You can purchase a Premium membership that includes access to LeetCode’s best articles, online mock interviews, and more. As of this writing, a Premium membership costs $35 per month or $159 per year.

Canvassing Your Network

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.

Remember When the company calls to set up your interview, learn from the company representative how many people will be interviewing you and the interviewers’ roles if you can. That knowledge will help you prepare your mock interview the right way. If the company rep won’t tell you, then prepare as if you’ll be meeting with an entire panel of interviewers — at least seven.

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.

Interviewing people who have interviewed before

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.

LinkedIn

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.

Programming forums

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.

Screenshot depicting the LeetCode online forums, where the user can chat with other programmers and find out if they know anyone who works for a particular company.

Source: https://stackoverflow.com

FIGURE 8-3: You have to sign up for or log into your Stack Overflow account if you want to ask a question.

In-person events

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).

Finding people who will give you mock interviews

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.

Tip One of your top priorities should be to find and talk to a programmer with more experience than you so that that programmer will give you harder programming problems and won’t be afraid to ask challenging follow-up questions. More experienced programmers, such as your potential boss, await your arrival for the real interview.

Remember You can also use social networking sites, online programming forums, and in-person events to also find more experienced programmers. It’s easy to find a person’s experience online, but in the case of in-person events, you may have to ask the event coordinator whom you should talk to.

Schedule your mock interview

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.

Tip You should block off at least four hours (that is, an entire afternoon) for the interview because you’ll not only go through the mock interview but also receive feedback from your interviewers as well as people you may want to serve as observers (which we talk about later in this chapter).

Reward your interviewers well

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).

Tip Don’t serve any snacks or even meals until after the interview. During the interview, just serve water as that’s likely all that’s going to be served by the company during your real interview.

Prepare your interviewers

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.

Warning Don’t type suggested questions into these descriptions. The mock interviewer is responsible for coming up with a list of questions based on the description. You’re not supposed to know the questions ahead of time, just as with a real interview.

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:

  • You are an expert in Java, but you feel like your skills aren’t being used at the company to their fullest extent. For that reason, you feel like any new person interviewing for a job better be at least up to your level or you don’t even want to deal with them. You are dismissive of anyone who claims to know Java and doesn’t have the skills to back it up and assume that everyone fits that category — unless interviewees prove otherwise.
  • You don’t really want to hire anyone because you feel threatened by anyone who could challenge your skills, so you’ll be looking for flaws in even the highest qualified applicants. You also like to see how people react under pressure, so you often try to get a rise out of candidates by directly challenging them and being combative.

Include observers

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.

Remember All this good feedback will also be invaluable for everyone else on the team since they may find themselves looking for another job someday. That argument may convince one or more people who are on the fence to join your mock interviewing team because they’ll know they’ll benefit from the experience.

Take notes to improve your answers

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.

Getting Feedback after the Interview

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.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.184.237