Skip to content

Latest commit

 

History

History
196 lines (144 loc) · 9.55 KB

technical-interviewing.md

File metadata and controls

196 lines (144 loc) · 9.55 KB

The Technical Interview

Every interview will have different questions. These can take many forms including whiteboard problems, computer science theory questions, riddles, live coding on a computer, or Github Repos looking for improvements. Opinions vary greatly on the efficacy of each of these methods. The point of this lecture isn’t to make you an expert in any of these topics or to say Prime endorses them, it’s to make it so that when you hear these terms in an interview, you can know what to expect. Not knowing these things DOES NOT mean you will not get a job.

If you aren’t getting rejected on a regular basis, you aren’t trying hard enough.

What is a technical interview?

Who?

Often times your future developer buddies or your future technical manager. Titles often include (Developer, Lead, Architect). These are people who typically know how to code and have been doing it for a while.

When?

After they decide they like you a little (or that your resume now makes you look like a developer). Good job! Now you need to show them you have the technical chops.

Where?

Most of the time, these will be on site, sometimes, these can be on a google doc or something else for live coding.

Why?

For entry level positions many companies are looking for, “People who can find the answers.” You need to show that you are that person. Ask questions, and show them that they would want you on their team.

A few notes

  • Technical accuracy is priority.
  • Students should talk through any thought process they have
  • Speak to confidence in admitting that they do not know the answer, but should speak to what they know while making it obvious to the interviewer that they are treading in that area. "I don’t know the answer to that, but let me talk about what I do know about that topic..."

Exercise:

Objective:

  • Expose students to a series of potential questions they may receive as either Whiteboard questions or as free response questions.
  • Offer feedback and praise on the different components of a student's answer.
  • Give insight to the students on the kinds of things that interviewers are thinking about as they answer questions.
  • Give a chance for the students to be ‘in the hot seat’. This is done by putting students on the spot with a technical question that they may not be prepared for.

Activity:

  1. Setup a room with a table in the middle, and the students in a semi circle around the table. Instructors sit on the other side of the table, ready to ask questions.
  2. A chair is left for a student to sit.
  3. Let students know that when they are called on, they have the opportunity to "Pass" without taking a question, but this is good practice for an actual interview.
  4. Instructors go around the room from left to right asking if a student is willing to answer a technical question.
  5. After going through the class one time, share the remainder of these technical questions with students and have them break into pairs and practice answering these questions (altering who asks the questions).

General Questions

  • Talk about your preferred development environment.
  • Name 3 ways to decrease page load (perceived or actual load time).
  • If you jumped on a project and they used tabs and you used spaces, what would you do?
  • Describe how you would create a simple slideshow page.
  • What is a CDN and what advantages or disadvantages does it have?
  • What are differences between compiled and interpreted languages? Name an example of each.

JavaScript

  • What's a typical use case for anonymous functions?
  • Explain how this works in JavaScript
  • What's the difference between host objects and native objects in JavaScript?
  • Name two JavaScript runtime environments and explain how they differ.
  • Explain Axios in as much detail as possible.
  • What is the difference between a variable being undefined and not defined?
  • What is the difference between undefined and null?
  • Explain "hoisting". What is the difference between let and var?
  • What are some differences between a function declaration and a function expression.
    • Write a function declaration for a function that adds two numbers and returns the result.
    • Write a function expression for the same function.
  • Explain how const works with an object.
    • Can you still add, remove and change values in the array? Why or why not?
  • What does it mean that JavaScript is loosely typed?
    • Why might JavaScript tell you that 1 + 1 is 11 and not 2?
    • What is the difference between == and ===?
  • What tools and techniques do you use debugging JavaScript code?
  • What is a template literal string?
  • What data structures are you familiar with?
  • How do you get the first item in an array? How do you get the last?
  • What is the difference between the Array push() & pop() methods and the shift() & unshift() methods?
  • What is the difference between procedural programming and functional programming?
    • What is a pure function?
    • What are some benefits of functional programming or using pure functions?
  • What is a promise in JavaScript? Give an example of where you've used one.
  • What does it mean that JavaScript is an interpreted language?
  • What is an object?
    • Can you give some examples of objects that are built into JavaScript?
  • How do you access a property of an object?
    • Is there more than one way to do this?
    • What if the property name is in a variable?
  • What is the difference between a function and a method?
  • How is a class different than an object constructor function?
    • How might you write an object constructor function for a Square object?
    • How might you write a class for a Square object?
    • What are similarities and differences between the syntax used for an object constructor function and a class?
    • What are similarities and differences between the object produced from an object constructor function and a class?
  • What is a method? How is it different from a function?

Node/Express

  • What is Node.js and why would you use it?
  • What is npm? What is a package manager?
  • What is Express? How is it used?
    • What function tells express to listen for client requests?
    • How do you tell express to serve static files from a particular directory?
    • Is express only used to send back static files?
    • How would you setup Express to return back an array of names, when a GET request is made for \names?
  • What is middleware? Have you used any?

Internet

  • Describe what happens when a web browser makes a request to a server for an HTML page.
  • What is Axios?
    • How is an Axios request different than a request for an HTML page or image?
  • What is a cookie and how do they work?
  • What is a session?
  • What does API stand for? What is it? Give examples
  • Describe a basic CRUD REST API for a music library.
    • How would you make a request for all items in the library? a single item?
    • How would you make a request for a new item?
    • How would you make a request to edit or delete an item?
  • What does it mean to be asynchronous?

Security

  • Describe why users typically have to login to web applications
  • What are some ways you can make your apps more secure?
  • What can you do in your code to prevent a SQL Injection attack?
    • What are SQL query parameters? What do they do?
    • Why should they be used?

Testing

  • What is unit testing? Why is it important?
  • What is a test case?
  • You've been asked to write a function to check that a zip code is valid.
    • What questions might you ask to clarify this problem?
    • What are some test cases you might write?
  • What is Test Driven Development?
  • What is a mock in testing and when would you use it?

Agile / Scrum

  • Explain how you balanced tasks, priorities, and customer needs on a project?
  • What are the main concepts of an agile development methodology?
  • Describe scrum.

Object Oriented Programming/Computer Science

  • What are the three (or four) of the pillars of OOP and describe them.
    • Give an example of inheritance in a project that you've worked on.
    • Describe encapsulation using an example from a project you've worked on.
    • Describe abstraction using an example from a project you've worked on.
    • How would you explain polymorphism?
  • How would you explain what an algorithm is?

HTML

  • What are data- attributes good for?
  • Why is it generally a good idea to position CSS <link> tags between <head></head> tags and JS <script> tags just before </body>? Do you know any exceptions?
  • Have you used HTML templating languages before?
  • What is the purpose of Doctype?

CSS

  • What is the difference between classes and IDs in CSS?
  • What are SVGs and why would you use them?
  • List as many values for the display property that you can remember.
  • The 'C' in CSS stands for Cascading. How is priority determined in assigning styles (a few examples)? How can you use this system to your advantage?

React/Redux/Sagas

  • What are the advantages/disadvantages of using React on a project?
  • What is the difference between state and props in React?
  • Why might you use Redux on a project?
  • What is a task runner? What are they used for? Name three task runners.
  • When would you use a Class Component over a Functional Component.

More here:

Additional Resources