brianhung7 / technical-interview-workshop

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gemstack-logo

Technical Interview Workshop

Let's get one thing straight: Everyone eats, sleeps, and farts just like you!

A technical interview can be nerve-racking. I mean come on you have someone testing your knowledge and trying to trip you up with tough questions. Or so you think.

So you are probably like, "Well duh Roger! I am expecting you to make me ready for them!"

There is also a slide deck to go along with this workshop.

Objectives

By the end of this workshop you as Software Engineers should:

  1. Understand where technical interviews fit within the interview process for a Software Engineer and or Developer role.
  2. Be comfortable discussing and performing technical interview best practices.

Table of Contents

Who am I?

Roger Campbell II

  • I am a:
  • Have been in the tech industry for 10 years and a Software Engineer for 5 years.
  • Facilitated the growth and advancement of over 500 Software Engineers professionals.
  • Contact Info:

Lets Talk Turkey

Two questions I am normally asked by students and Junior Engineers are:

  1. What does the interview process look like for a software engineering or development position?
    • 1st Stage: Phone Behavioral Interview and Technical Questions
    • 2nd Stage: Remote Coding Interview or Assignment
    • 3rd Stage: Onsite or Remote Interview
      • With Possible: Whiteboarding and or Live Coding Challenge
  2. What kind of questions are asked during a technical interview?
    • There are 5 types of challenges you can expect during a technical interview process:
      • Behavioral
      • Technical Questions
      • Take Home Code Challenge
      • Whiteboarding
      • Live Coding

Behavioral Interview

Whereas behavioral interview are pretty standard in all job interviews they are especially important when it comes to Software Engineering and Development positions. There is a huge misconception that all Engineers and Developers like to code all night long in their parents' dark basement while surfacing the dark web while ignoring the outside world.

Ok.. Well in some cases that might be true but as an Engineer or Developer in the workforce, you will be expected to work with a team. Sometimes that team will consist of other Engineers and Developers or it might be non-technical people such as a Project Manager or even the company's CEO.

Importance of Behavioral Interviews

  1. Gives the team a chance to see if they can stand working with you for 30-40 hours a week?
    • It also gives you the same opportunity.
  2. Give the interviewer a better opportunity to understand the details of your work experience and how you work.

How to beat the Behavioral Interview

  1. Be honest yourself!
    • Just as much as the interviewer is interviewing you, you are interviewing them.
      • Answer questions truthfully; You do not want to work for a company or team that you can not get along with.
  2. Utilize the S.T.A.R. Method:
    • Situation: Describe the situation by providing relevant and necessary details.
    • Task: Explain the task you were responsible for accomplishing.
    • Action: Explain what actions you took to accomplish the task.
    • Result: Outline the result of your efforts and highlight the positive effects it had on the situation.

Behavioral Interview Question Examples:

  • Tell me about a time when you took ownership of a project. Why did you do this? What was the result of you taking the challenge? What could have happened if you did not take ownership?
  • Describe a situation in which you have experienced a significant project change that you weren’t expecting. What was it? How did that impact you, and how did you adapt to this change? How did you remain productive through the project?
  • Give me an example of a time you had to take a creative and unusual approach to solve a coding problem. How did this idea come to your mind? Why do you think it was unusual?

Technical Questions

Technical questions are normally asked at multiple points of the interviewing process. But overall I would expect them during the initial phone screening and second-round interview. The purpose of this stage is to get a benchmark on your current skill level in regards to software engineering theory rather than practicality.

The interviewer will ask questions on subjects such as:

  • Algorithms
  • Data Structures
  • Language Fundamentals
  • API Basics
  • Front and Backend Concepts

Importance of Technical Questions

  • Assess the extent of your technical knowledge.
  • Show how effectively you are able communicate said knowledge.
  • Gives a in-depth look into how you are under pressure.

How to Ace the Technical Questions

  • Before answering the question, repeat the question to be sure you understand what it is they are asking.
  • Ask for clarification if it is a cryptic question.
  • Anchor your thinking process and your conclusions along the way.
  • Be honest and say I do not know; if you don’t try and ask questions that can lead you to a possible solution.
  • Study:

Technical Question Examples:

  • General:
    • What is NaN?
    • What is a Data Type?
    • What is OOP Explain the concept?
    • What is encapsulation?
  • Front End:
    • Are you familiar with styling SVG?
    • What's the difference between inline and inline-block?
    • Explain how this works in JavaScript?
    • What is the difference between a Function Declaration and a Function Expression?
  • Back End:
    • What is Node.js? Where can you use it?
    • What's your favorite HTTP framework and why?
    • Is Django an MVC Framework?
    • Is Express an MVC Framework?
    • What are the main differences between a NoSQL and SQL database?

Take Home Code Challenge

Take Home Code Challenges are the most common things to expect from a during the interview process for a Software Engineer or Developer. they will consist of a technical problem that the company will send you to complete, normally on your own within a specific deadline.

How to beat the Home Code Challenge

Take Home Code Challenge Examples:

Whiteboarding

The goal of a whiteboard challenge is for you to convey how you think and reason your way through a challenging problem.

Traditionally this challenge is given to you in person and is performed in front of either an interviewer or an interviewing panel.

They will ask you a challenging question and then ask you to write out how you would approach solving the issue.

How to Beat the Whiteboard

  • TALK OUT LOUD!
    • One of the biggest things interviewers are trying to see with this type of challenge is how do you reason.
    • It is extremely important to say anything and everything you are thinking out loud.
  • Write out pseudo-code
    • Pseudo-code shows that you are logically working towards a solution by dissecting the problem.
  • When in doubt... Ask questions.
    • One common pitfall for Juniors is that they think they are supposed to know everything; you will never know more than you don't know
    • Normally Interviewers ask you to solve a problem and purposefully do not give you enough details to solve it so that you will ask questions.
  • Remember the point of the challenge is not to solve for the solution but to show them your logical thinking and problem-solving skills.

Fun Fact: Whiteboard challenges originated from a time before laptops when it was hard to have an interviewee code on an actual computer. Old habits die hard, and this is one of them.

Whiteboard Challenge Example:

  • New York City has the highest population of any city in the U.S., with 8,550,405 people. Bonanza, Utah has the smallest population with only 1 person living in it. How could you roughly calculate the population of the United States?

Live Code

By far considered one of the toughest stages of the interviewing process is the Live Coding Interview. At this stage in the game, you have normally completed a behavioral interview, answered technical questions, and possibly done a whiteboarding challenge.

Interviewers will either provide you with a or have you open a blank IDE and code out a solution right there in front of them. Scary right?!

One main there to realize here is that similar to the whiteboarding challenge interviews are not expecting you to finish the challenge in the interview. What they are looking to see is:

  • How you structure your code
  • How you think through a problem
  • And a basic understanding of the language they let you code in

How to beat the Live Coding Interview

  • Practice, practice, oh and practice
  • Don't jump without asking where to land
    • The worse thing you can do is jump right in and start coding once the interviewer has given you the problem to solve and tells you to go.
    • Normally they have intentionally not given you enough information to solve the problem.
      • They want to see if you are going to BS your way through; or ask a question when needed.
  • Just make the code run!
    • Do not worry about writing super elegant code, just get a workable solution.
    • Once you have a workable solution then and only then worry about elegance.
    • Remember:
      • Make it Work
      • Make it Pretty
      • Make it Fast

Live Code Interview Examples:

  • Complete one of the following challenges:

Resources

Click Me!
  1. How to Use the STAR Interview Response
  2. How to Use the STAR Interview Response
  3. How To Pass A Live Coding Interview: 3 Tips From Our Community
  4. the Ultimate Guide to Acing Your Technical Interview
  5. Best Tips To Prepare For (and Ace) Your Next Software Engineering Interview
  6. 45 behavioral questions to use during non-technical interview with developers
  7. 7 React Projects You Should Build in 2021
  8. The Essential Guide to Take-home Coding Challenges

Misc:

About