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.
By the end of this workshop you as Software Engineers should:
- Understand where technical interviews fit within the interview process for a Software Engineer and or Developer role.
- Be comfortable discussing and performing technical interview best practices.
- Technical Interview Workshop
Roger Campbell II
- I am a:
- General Assembly Alumni
- Founder and Principal Consultant of:
- Software Engineering Instructor at:
- 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:
Two questions I am normally asked by students and Junior Engineers are:
- 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
- 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
- There are 5 types of challenges you can expect during a technical interview process:
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.
- 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.
- Give the interviewer a better opportunity to understand the details of your work experience and how you work.
- 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.
- Just as much as the interviewer is interviewing you, you are interviewing them.
- 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.
- Situation: Describe the
- 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 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
- 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.
- 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:
- 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 aFunction 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 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.
- Best way to beat a take home code challenge is to do code challenges
- Sites like the following are going to be your new best friend:
- If you can't figure out the challenge pseudo-code the problem and take notes on how you would go about researching and solving the challenge.
- Great Resource for beating the take-home challenges:
- Build a responsive clone of Pinterest or Medium and deploy it on Netlify or GitHub Pages.
- Select and complete a challenge from this list Asymmetrik: Programming Challenges.
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.
- 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.
- One common pitfall for Juniors is that they think they are supposed to know everything;
- 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.
- 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?
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
- Practice, practice, oh and practice
- This is where those coding challenge sites I shared will also come in handy.
- 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
- Complete one of the following challenges:
- CodeWars: Single Word Pig Latin
- Fix the sidebar in this CodePen
- Implement this mock of an image slider in you IDE and push your code to GitHub. Please provide us a link to your repository when completed.
Click Me!
- How to Use the STAR Interview Response
- How to Use the STAR Interview Response
- How To Pass A Live Coding Interview: 3 Tips From Our Community
- the Ultimate Guide to Acing Your Technical Interview
- Best Tips To Prepare For (and Ace) Your Next Software Engineering Interview
- 45 behavioral questions to use during non-technical interview with developers
- 7 React Projects You Should Build in 2021
- The Essential Guide to Take-home Coding Challenges
- 7 React Projects You Should Build in 2021
- Build a Shopping Cart with React and TypeScript
- Build a Shopping Cart with React and TypeScript
- Get Started Coding with Java!
- Postman API Tutorial – How to Use Postman to Test an API Full Course
- What is the Difference Between a Website and a Web Application?
- Web Scraping in Python – How to Scrape an eCommerce Website Using Beautiful Soup and Pandas
- 40 JavaScript Projects for Beginners – Easy Ideas to Get Started Coding JS
- Learn the Flask Python Web Development Framework by Building an Ecommerce Platform
- The Fetch API Cheatsheet: Nine of the Most Common API Requests
- Learn HTML Basics for Beginners in Just 15 Minutes
- Why You Should Use React Components Instead of HTML
- Build a React Budget Tracker App – Learn React & Context API with this Fun Project
- User Authentication in Node.js with Passport.js and JWT – Full 6-Hour Course
- Watch a Cornell University Database Course for Free
- The Python Handbook
- How to Solve Coding Problems with a Simple Four Step Method
- Learn Flexbox with These 8 Most Common Use Cases
- How to Use LinkedIn to Get Your First Developer Job – A Step-by-Step Guide
- AWS Training – Learn the Basics of Amazon Web Services
- Dynamic Programming for Beginners – How to Solve Coding Challenges with Memoization and Tabulation
- JavaScript Object Destructuring, Spread Syntax, and the Rest Parameter – A Practical Guide
- How to Use Async/Await in JavaScript with Example JS Code
- How to Get Started with GraphQL and Node.js
- What is Git? A Beginner’s Guide to Git Version Control
- 5 Coding Projects You Should Include in Your Front End Portfolio
- The Best File Structure for Your React Components
- The Fetch API Cheatsheet: Nine of the Most Common API Requests
- How to Turn Google Sheets into a REST API and Use it with a React Application
- VS Code Extensions That’ll Boost Your Development Productivity
- Learn TypeScript With This Crash Course
- How to Make Your Site Beautiful Using Web Design Principles