Chapter 6

How Your Experience Affects Your Interview

IN THIS CHAPTER

Bullet Understanding the differences between a junior and senior developer

Bullet Overcoming your lack of experience by showing other skills

Bullet Learning about what companies focus on if you’re a senior developer

After reviewers at the company have been impressed by your résumé and your cover letter, and they don’t see anything in your social media profiles that make their jaws drop, they’ll not only consider interviewing, you but also think about what types of interview questions to ask you.

Your résumé is a microcosm of your work life just like a baseball scorecard is a microcosm of an entire game’s activities, so your résumé readers will get an idea of how well you can hit when the game counts.

We’ve divided the chapter into three parts to help you understand how the company will pitch to you:

  • We first explain the differences between a junior and senior developer.
  • You then learn what you’ll experience during the interview process as a junior or mid-level programmer — meaning someone with little experience or with a few years under his or her belt.
  • Finally, we discuss the interview questions you’ll get as a senior developer, where experience is the name of the game. If you know you’re a senior developer already, you can skip ahead in this chapter to the section, “Playing in the Majors” to get the information you need.

Remember This chapter presumes you’ve already learned either from the job description, a recruitment agency, a friend, or a colleague what the company expects as far as experience required for the job. If you only know the programming language the job requires from what you learned at the university (that you graduated from last month), and the company wants ten or more years of programming experience in real-world environments, then you’re wasting your time sending a résumé. Instead, look for job descriptions or ask about jobs that don’t depend on past experience but rather the right skill set the company can develop.

Qualifying for Senior Status

Always presume the people at the company (especially the programmers) know the difference between a junior and a senior software developer. If you’re not sure, here are common responses from people at companies with senior developer positions on the Stack Overflow website (www.stackoverflowbusiness.com/blog/what-defines-a-senior-developer). Senior developers have:

  • A number of years of programming experience, though that number varies depending on the company.
  • Demonstrated leadership skills.
  • The ability to manage the entire software development life cycle.
  • Supported junior developers and acts as a mentor.
  • Shown they understand and respect not only their own team’s environment but also interact well with related teams.

You can read more about these responses, read related articles, and also read several articles about career development for programmers at the Stack Overflow Talent website shown in Figure 6-1.

Screenshot of the Stack Overflow Talent website page displaying information through several articles about career development for programmers.

Source: www.stackoverflowbusiness.com

FIGURE 6-1: Click links in the article to view more information about the topic.

Remember No matter if the company is hiring someone it deems to be a junior or senior programmer, the company will protect its investment. That is, the company wants to make sure the person it hires is a capable and good fit for the job no matter what the new hire’s experience is. If you’re a junior developer, a company wants to invest in you in the long term and help you grow into a senior role. And if you’re a senior developer, it wants you to hit the ground running, mesh with the other programmers quickly, and become a leader on the team.

Being More than Just a Junior

The term “junior” has many negative connotations, including being small and secondary, but there are advantages to having junior status. (The classic Seinfeld episode, “The Junior Mint” is a case in point.)

In your case, you may fall into one or more junior programmer categories:

  • You’re someone with no experience as a real-world programmer because you just graduated from school or a coding camp.
  • You’ve spent time working as an intern at one or more companies but not as a salaried employee.
  • You’re working on your own by taking contract jobs where you can get them or you’re writing your own code, such as mobile apps, that you may have on an app store for free — or for a fee.
  • You’ve worked at one or more companies for the past few years and you have some experience delivering code and/or actual products. Some companies call programmers with some experience “mid-level” programmers.

No matter what category you fall into, companies will still see you as a junior programmer and you have to communicate all your other positive qualities to make up for your lack of experience, especially in your cover letter and across your social media profiles. The qualities you communicate have to dovetail closely with what the company wants in an ideal candidate. These qualities include:

  • Are you a competent programmer? (You’d be surprised at how many companies say candidates prove they can’t develop software no matter what their résumé says.)
  • Do you have a portfolio of work to show?
  • Can you think and learn quickly?
  • Are you flexible and adaptable in different situations?
  • Do you have the desire to grow and learn?
  • Do you have the dedication to stay with the company for a period of years?

That last question is especially important because companies, especially larger ones, look at junior programmers as a long-term investment. That is, junior programmers save the company money in the short term with lower salaries (at least to start). But over the long term, companies can keep junior programmers around for a while to groom into senior programmers (or a manager). The company may even spend some money to help you develop your skills.

Smaller companies or startups may be more interested in hiring you because they won’t have to pay you as much, but they may not be able to invest money in your development (at least not right away). So they’ll look you over maybe even more closely than large companies to make sure you can get up to speed quickly and that their investment in you will be worth it.

Show your work

When a company résumé reviewer notes that your work experience is lacking, that person will pay more attention to the education you listed in your résumé. Depending on what that person finds (or not), the company may decide (or have procedures in place) to get more information from you.

If you went to school

You should be prepared to have copies of your schoolwork ready to send to the company representatives if they ask for it, or provide samples to an interview panel.

That schoolwork may not only include completed assignments but also final course grades. Don’t be surprised if the company also asks you for information about your instructors so that a company representative can contact them and talk about their impressions of you.

Warning Your grades and feedback from instructors won’t only tell the company how talented you are, but also what your work ethic is like. If your work ethic in school wasn’t very good, the company will presume that your work ethic at the company won’t be very good, either.

If you went to the minors

If you know that a company will have a hard time finding your scholastic information because you decided not to go to a college or university, but instead decided to go straight to the minor leagues out of high school and attend a coding bootcamp or learn on your own, you need to be up front about that in your résumé and especially in your cover letter.

By “up front,” we mean you need to focus on pointing to your portfolio of sample projects on your website that people can review. If you can’t do that because you’ve worked with contractors and they won’t let you use samples, you need to provide the contractors’ information so that the company can contact them for more information.

The right extracurricular activities

When your experience is lacking, companies will also look at your extracurricular activities — and not ones on your social media profiles that show you partying every weekend. Companies want to see that you’re spending your free time becoming a better programmer. Company representatives like to know that you’re not just developing to have a job, but that programming it’s something you enjoy doing and are passionate about.

Tip If you’re already writing apps for profit, then you need to mention that you have apps available for download in the Apple App Store and/or Google Play Store and play up both good reviews and how often you’re updating the app to serve customers. Showing that you’ve written code that works and that people are using, and that you’re customer-centric will get you much closer to an interview on the phone or in person.

Your extracurricular activities should also show that you’re engaged in your community. That can include volunteering at your local school to help tutor kids in coding, running your own group through the Meetup website, and/or participating on a sports team that demonstrates teamwork, discipline, and a good work ethic. If you need more suggestions about how to stand out, bookmark this page and read Chapter 15. We’ll be here when you get back.

Character

Qualities such as having a strong work ethic, being disciplined, and being a team player are all part of someone’s character. Calvin’s dad in the Calvin and Hobbes comic strip had it right when he kept pressing his young son to build character even when Calvin (often) didn’t appreciate it.

Company reps will look at your character to see what kind of benefits you’ll add to the company. (You’re right that this is true of any developer, but it’s especially true when you don’t have much of a portfolio of work to back you up.) When interviewers examine your character, they’ll want to see not only someone who’s passionate about developing software, but also someone who has a lot of ambition. They want someone who’s going to take charge of what she’s been put in charge of.

Commitment

Commitment is another aspect of character that warrants special attention by your interview team. We mention earlier that the company is making an investment in you, just like any baseball team is making an investment in a hitter who has tantalizing hints of greatness but needs seasoning (the diplomatic term for a lot of work) before reaching the majors.

Your résumé reviewers will be interested in what you’re doing now to show that you’re reliable without the pressures of a deadline in school or at work. So, here are some ways you can show potential employers that you get things done outside of work:

  • Complete a website and keep it updated.
  • Have a blog and write new posts on a regular basis.
  • Show that your LinkedIn profile is not only complete but also that you write posts and comment in programming groups regularly.
  • Attend regular meetings of programming groups such as those promoted by Meetup and/or regional programming conferences to show you network often.

You may have other activities in your area that you already participate in, such as the aforementioned sports teams. We can hear the gears in your brain turning already.

Remember Point out your activities that highlight your commitment in your cover letter and in your social media profiles so your potential interviewers can find them easily.

Resolve

When we talk about resolve, we’re not referring to the carpet cleaner. Interviewers will want to know that you have the resolve to tackle any challenge you find no matter what it is. And they’ll test your resolve by giving you programming questions to solve and “soft skills” questions such as how you resolved a conflict with a fellow team member.

Interviewers won’t be impressed if you answer a question about resolve by just saying, “Oh, I’ve handled this before. No problem.” A better answer is to say, “You know, no matter what’s thrown at me, I’m confident I can figure it out. I’m not worried about it and I’m committed to making sure I get the job done no matter what it takes.”

Tip Don’t think that resolve means that you have to solve every single problem that comes before you. You learn in Part 3 that you may not be able to solve a programming problem in a set amount of time, or there may be an incident in your past when you weren’t able to solve a problem yourself. In those instances, you should include a story about when you weren’t able to resolve an issue and how you worked with members of your team to resolve it. Interviewers will be impressed that you can recognize when you need to reach out to others to get the job done.

Don’t forget talent

You’re interviewing for a programming job, so the interviewers will want to see that you can actually write code during the interview. They’ll pitch you fastball programming questions as well as questions to test how you think about problems.

You learn more about the types of questions you’ll receive and how best to solve them in Part 3 in this book, but here’s a sneak preview of what to expect:

  • If you just got out of college with a computer science degree, the interviewers will throw out computer science questions to see what you learned.
  • Questions about sorting algorithms, data structures, and coding algorithms based on those data structures.
  • How to recognize design patterns. Your interviewers won’t expect you to have experience using those design patterns, but they will expect you to recognize some design patterns in code and describe them.
  • Questions about your reasoning skills when you solve problems, such as:
    • Why are you doing this?
    • Why are you thinking in these terms?
    • What is it that’s causing you to take these steps to solve this problem?

If you can show your interviewers that you have a clear, rational method of solving problems — especially when you’re under the pressure of an interview — this will tell your interviewers that you’re a good hitter and that you may belong on their team.

Leave the best for the end credits

All of these values are part of your story as a programmer, and your interviewers want to hear your story in order to get to know you better as a person.

If you’re a freshly minted programmer from a college, university, coding camp, or you taught yourself, be ready to tell the story about how you always wanted to become a programmer and why you decided to study the way you did. If you were in school, you may want to explain why you did or didn’t join one or more computer-based clubs. You should explain why you did or didn’t become an intern at a company. Finally, you should talk about what you’ve been reading in books and online because you’re excited about the latest issues and trends.

However, if you have a few years of experience already and can be considered a mid-level programmer (kind of like a Triple-A player in baseball), you’ll want to tell the story of your previous jobs, what you learned from each one, and how your job and your activities outside of work are helping you grow as a software developer.

In sum, the company wants you to answer a simple question: Why should the company hire you, a person who’s not that experienced in programming, when they can hire an experienced programmer you’re competing with in the interview game? The better story you can tell, one that helps the company understand you better as a person, the better your chances of being picked for the team.

Playing in the Majors

Senior programmers are somewhat of a rarity in the job market and just as with free agent players in major league baseball, your interviewers will judge you differently because you’re experienced.

You’ve handled most if not all of the problems in successfully producing software, so your interviewers’ expectations will be higher. They’ll want to know that you’ve demonstrated some leadership skills, helped junior developers, and learn about the different scenarios you’ve encountered in your career.

Be honest about your career

Interviewers will be most interested in your experience, and that experience likely won’t be all good. Maybe you left a company because of personality conflicts that couldn’t be solved. Maybe a job became boring and you decided to look for the proverbial greener pastures. You may have been fired or laid off from one or more companies.

One mistake to avoid when you write your résumé, cover letter, and talk with your interviewers is to try to hide any and all bad stuff in your record. Interviewers know you can’t hit it out of the park all the time (and if you get the impression that they think you should, there’s a big red flag for you), but you still gain experience with each strikeout.

So, don’t talk about others or the situations in a bad light, which is likely to put you in a bad light with your interviewers. Instead, talk about what you learned from the situation to make yourself a better programmer, team member, and leader. Your story should show how you progressed from being green and untested to today’s seasoned programmer who would be a valuable employee at the company.

Stable or stagnant?

No matter your job history, you’re going to field a lot of questions about it. If you’ve been at your current job for a long time, and now you’re looking elsewhere, expect your interviewers to ask questions about your current job, such as:

  • Why didn’t you move up into a management role?
  • Why didn’t you increase your responsibilities?
  • Are you just happy with the status quo?

The moral of this story is that you need to show that your skills continue to advance over time even if your job title has remained the same. We talk about the skills tests you can expect in the interview later in this chapter.

Ambitious or flighty?

What if your story is that you’ve been switching jobs too often? That will be a red flag for any company you apply to because the résumé readers may think that you can’t fit in with teams and/or you’re just not a good programmer, so that’s why you keep leaving jobs all the time.

However, interviewers don’t know the circumstances of your departures, so if a company contacts you and asks about your work history, you have the opportunity to explain the various reasons for switching jobs. For example, you worked on small-term contracts and the contracts ended to the client’s satisfaction. Don’t presume that your interviewers know about the contracting world and expect to tell your interviewers how the contracting process works and how you came to find your contracting job(s).

Another reason you may have switched jobs often is because you were wooed away by new opportunities. That could be a big red flag for your potential employer, as it may seem as though you are prone to being swept off your feet by the next suitor who sweet-talks in your ear. You need to tell interviewers why you left for those opportunities, why you believe the company you’re interviewing with is a great fit, and why you want to put down roots with the company.

Tell the rest of the story

It’s likely you have gaps of time between jobs and your interviewers will want to know all about them. The worst thing you could do is give a simple answer such as, “I just needed a break.” Hiding your stories is a good reason for interviewers to end an interview early.

Instead, explain every gap and say what you did during that time. If you decided you needed to take some time off and reenergize your batteries, say you did that and give some details about what you did. If there was a family emergency, say so. If you said you weren’t challenged in your job and it was burning you out, say that, too.

Tip No matter the circumstance, say what you did to become a better programmer during those gaps if you can. In some cases, such as you took care of family issues that required your full attention, you couldn’t do that. But if you wanted to finally write that app that you were always working on now and then but could never finish, and you used that time to not only finish it but it’s making you money from happy customers, that’s a good story.

In sum, when you tell your story, tell it completely and in the best way possible.

Education

Speaking of taking time to become a better programmer, interviewers will want to see that you’re a lifelong learner. Companies want to see that you’re showing some advancement over time.

You don’t want to be a senior programmer who never learns anything once you get out of school and draws a blank when interviewers ask what kind of books or blogs you’re reading now. If you’re relying on what you learned 15 to 20 years ago, you’re behind even junior programmers in the competition for the job. (What, you didn’t think there were other candidates for the job?)

So, take every opportunity to mention what you’re doing to improve your skills — coding skills, interpersonal skills, and leadership skills.

Leadership

Leadership skills are expected from senior developers inside and outside the workplace. In the workplace, you need to be able to voice your ideas in a way that people will not only understand, but also have enough weight for people to take action to get something done or fix a problem.

Workplace leadership also involves working with junior programmers and helping them become better programmers and better members of the team. That type of mentorship can be formal where you have taken a programmer under your wing and now that programmer is considered to be senior level. Or the mentorship can be informal where you give your feedback and encouragement whenever you can. What’s more, if you have a problem with a fellow programmer, you know how to resolve that problem discreetly and effectively.

Leadership also requires involvement in the wider community. That is, you should be leading something. The higher the position you’re applying for, the more leadership skills and community involvement you need to be involved in. For example, you can do one or more of the following:

  • Lead one or more computing-centric organizations such as those coordinated through the Meetup website.
  • Run an open source project.
  • Participate or volunteer in a code camp for kids, adults, or both.
  • Speak at local or regional programming events.
  • Operate a blog and write new posts often.
  • Maintain a programming podcast and/or a YouTube channel with videos about programming.

If you need more suggestions about how to stand out, you can bookmark this page and read Chapter 15 while we take a break and eat some healthy snacks.

You can also visit the Programming Leadership website shown in Figure 6-2 (https://programmingleadership.podbean.com), listen to podcasts about the topic that are regularly produced by Marcus Blankenship, and find out if that site is a good resource for you.

Screenshot of the Programming Leadership website that offers podcasts about programming leadership.

Source: https://programmingleadership.podbean.com

FIGURE 6-2: The Programming Leadership website offers podcasts about programming leadership.

Flexibility

Workplace leadership also requires you to have skills in other areas. Depending on the job you’re applying for, the company you’re interviewing with will expect you to wear a number of hats:

  • You should know about databases and how to interact with them.
  • You may need to have some architecture experience as well as the ability to architect the entire solution the company needs — not just implement a solution in code.
  • You should understand cloud technologies, including how to develop applications in the cloud.
  • Understand at least how DevOps works, how a DevOps build is created and deployed, and how a build is put into production.
  • Know what needs to be done when something goes wrong, the build doesn’t work, and you need to fix it. (You may have trouble picking just one example of when this happened to you.)

These are all topics that junior developers won’t know about or won’t be able to do, so as a senior developer you need to be ready to talk about these issues at any time. Even if an interviewer doesn’t ask you directly, you may want to talk about how you led your team — especially the junior developers — to use these technologies and fix problems that crossed your path.

Don’t forget skills

Companies expect senior-level developers to have other business skills that are important for the company to succeed. Those skills can include:

  • Communication with business analysts and top executives — even the CEO of the company.
  • The ability to communicate between technical and non-technical worlds.
  • Technical writing for technical and/or non-technical audiences.
  • Marketing and/or customer service skills.

If interviewers notice that you worked for a small company, they’re going to expect that you have these skills because startups and small companies don’t have the resources to hire a large number of people with different skill sets. So, the senior-level developer is the one who gets more responsibilities as well as leadership opportunities.

What’s more, if you’re applying to work at a startup or small company, then your interviewers (which may be the founders) may expect that you have these leadership skills because there isn’t anyone else with your skill set who can do those jobs. (If you show you can do them, you may get a job offer much sooner than you think.)

With all this chatter about non-programming skills, don’t think for a second that your interviewers won’t ask you about your programming skills; those questions will go deeper. For example, interviewers will expect you to have a higher level of familiarity with design patterns. You should know how to use them and scale them, recognize when design patterns are used at scale, and know how to apply design patterns at scale to build robust code.

Tip Though it’s not necessary to know or have implemented every design pattern there is, you should be able to explain why and how you implemented design patterns in your job. Interviewers will ask about design patterns and other “real world” questions early and often.

You should also presume that you’ll not only be tested, but given a more challenging test than a junior programmer to write out on the whiteboard because of those (say it with us) higher expectations.

Tip Even if you get the same coding problems as a junior developer to write out on a whiteboard, the interviewers are asking you to solve those problems with the expectation that you can pass them. If you can’t, then interviewers will question what you’ve done with all your experience and if you learned anything as a programmer — probably among themselves after they end the interview early and escort you out of the building.

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

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