fbpx

The Interview Study Guide For Software Engineers

This is a software engineering study guide that you can use to help prepare yourself for your interview. This was developed by people who have interviewed and gotten jobs...

This is a software engineering study guide that you can use to help prepare yourself for your interview. This was developed by people who have interviewed and gotten jobs at FAANGs and several other tech companies. We hope these help you get great jobs as well!

We have also created a checklist with the same problems listed below that can help you keep track of your progress that can be found here.

Download The Software Engineering Interview Checklist

Warm Up With The Classics

  1. Fizz Buzz
  2. Balanced Brackets
  3. 560. Subarray Sum Equals K
  4. Arrays: Left Rotation
  5. Nth Fibonacci 
  6. Strings: Making Anagrams

How did you? Take a moment and rate yourself on these classics. We have been asked most of these at some point in the interview process and often early on as a weed-out style questions. They often have less to do with algorithms and data structures, but still require a good understanding of loops and arrays (yes an array is a data structure).

Algorithms And Data Structures 

Pre-Study Problems

Before going through the video content about data structures and algorithms. Consider trying out these problems below. See if you can answer them. This will help you know what to focus on.

  1. 985. Sum of Even Numbers After Queries
  2. 657. Robot Return to Origin
  3. 961. N-Repeated Element in Size 2N Array
  4. 110. Balanced Binary Tree
  5. 3. Longest Substring Without Repeating Characters
  6. 19. Remove Nth Node From End of List
  7. 23. Merge k Sorted Lists
  8. 31. Next Permutation

Algorithms And Data Structures Videos

Data Structures

  1. Data Structures & Algorithms #1 — What Are Data Structures? — Video
  2. Multi-dim — Video
  3. Dynamic Arrays— Video
  4. Resizing arrays — Video
  5. Data Structures: Linked Lists — Video
  6. Core Linked Lists Vs Arrays — Video
  7. Pointers to Pointers— Video
  8. Data Structures: Trees— Video
  9. Data Structures: Heaps— Video
  10. Data Structures: Hash Tables— Video
  11. Phone Book Problem — Video
  12. Data Structures: Stacks and Queues— Video
  13. Using Stacks Last-In First-Out — Video
  14. Data Structures: Crash Course Computer Science #14— Video
  15. Data Structures: Tries— Video

Algorithms

  1. Algorithms: Graph Search, DFS and BFS— Video
  2. BFS(breadth-first search) and DFS(depth-first search) — Video
  3. Algorithms: Binary Search — Video
  4. Binary Search Tree Review — Video
  5. Python Algorithms for Interviews— Video
  6. Algorithms: Recursion — Video
  7. Algorithms: Bubble Sort — Video
  8. Algorithms: Merge Sort — Video
  9. Algorithms: Quicksort — Video

Big O Notation

  1. Introduction to Big O Notation and Time Complexity (Data Structures & Algorithms #7) — Video
  2. Harvard CS50 — Asymptotic Notation — Video
  3. A Gentle Introduction to Algorithm Complexity Analysis — Post
  4. Cheat sheet — Post

Dynamic Programming

  1. Dynamic Programming (Think Like a Programmer) — Video
  2. Algorithms: Memoization and Dynamic Programming — Video
  3. 6.006: Dynamic Programming I: Fibonacci, Shortest Paths — Video
  4. 6.006: Dynamic Programming II: Text Justification, Blackjack — Video
  5. Dynamic Programming — Post

String Manipulation

  1. Coding Interview Question and Answer: Longest Consecutive Characters — Video
  2. Sedgewick — Substring Search — Video

Interview Problem Walk Throughs

 

  1. Google Coding Interview — Universal Value Tree Problem — Video
  2. Google Coding Interview Question and Answer #1: First Recurring Character — Video
  3. Find min and max element in a binary search tree — Video
  4. Find height of a binary tree — Video
  5. Check if a binary tree is binary search tree or not — Video
  6. What Is Tail Recursion Why Is It So Bad? — Video

Post-Study Problems

Now that you have studied for a bit, and watched a few videos. Let’s try some more problems!

  1. Bigger Is Greater
  2. 6. ZigZag Conversion
  3. 7. Reverse Integer
  4. 40. Combination Sum II
  5. 43. Multiply Strings
  6. Larry’s Array
  7. Short Palindrome
  8. 65. Valid Number
  9. Bigger is Greater
  10. The Full Counting Sort
  11. Lily’s Homework
  12. Common Child
  13. 459. Repeated Substring Pattern
  14. 27. Remove Element
  15. 450. Delete Node in a BST
  16. 659. Split Array into Consecutive Subsequences
  17. Number of Subarrays with Bounded Maximum
  18. Combination Sum IV
  19. Best Time to Buy and Sell Stock with Cooldown
  20. Longest Repeating Character Replacement
  21. Swap Nodes in Pairs
  22. Binary Tree Right Side View
  23. Flatten Nested List Iterator
  24. Binary Tree Level Order Traversal
  25. Binary Search Tree Iterator
  26. Maximum Length of Pair Chain
  27. Split Linked List in Parts

Operational Programming Problems

Some companies won’t ask you algorithm problems. Instead, they might focus more on implementation and operational problems. These are usually more niche and involve practical problems. Like looping through data and performing a task of some sort. These types of problems don’t usually require as much practice because it is more about taking basic concepts like arrays and hashmaps and keeping track of what you are doing to them.

  1. Kangaroo Problem
  2. Breaking Records
  3. Find A Stringiter
  4. No Idea!
  5. Days of the programmer
  6. Leaderboard
  7. Word Order
  8. Sherlock And Squares
  9. Equalize The Array
  10. Apples And Oranges
  11. More Operational Style Questions

System Design Videos

System design are crucial questions that show you are more than just a coder. You need to be able to think big picture as an engineer. Where do certain services belong, what kind of servers do you need, how would you manage traffic, etc. All of these ideas show that you are able to design software not just code what people tell you to code.

  1. Parking Lot System — Video
  2. Whats App — Video
  3. Uber design — Video
  4. Instagram — Video
  5. Tinder Service — Video

Operating Systems

Operating system questions are a little more rare, but it is good to have a good basis in understand concepts like threads, scheduling, memory, etc. Even if it is just a basic understanding. It is very embarrassing to get asked what is the difference between a process and a thread and not know the answer.

  1. Commonly Asked Operating Systems Interview Questions
  2. What is Translation lookaside buffer?
  3. Why does Round Robin avoid the Priority Inversion Problem?
  4. Interrupt Vs System CallWhat is `inode’ in file system?
  5. Operating System Interview Questions and Answers — Part I
  6. What is a kernel — Gary explains
  7. Round Robin Algorithm Tutorial (CPU Scheduling)
  8. The Magic of LRU Cache (100 Days of Google Dev) — Video
  9. MIT 6.004 L15: The Memory Hierarchy — Video
  10. Interrupts — Video
  11. Scheduling — Video

Threads

  1. User Level thread Vs Kernel Level thread
  2. Intro to Processes & Threads — Video
  3. Difference Between Process and Thread — Georgia Tech — Advanced Operating Systems — Video
  4. Difference between forking and multithreading

Object Oriented

Similar to operating systems, not every interview will ask you about object oriented programming, but you never know. You want to make sure you remember your basics from your computer 162 course.

  1. Java Programming Tutorial — 49 — Inheritance — Video
  2. Java Programming Tutorial — 55 — Intoduction to Polymorphism — Video
  3. Java Programming Tutorial — 58 — Abstract and Concrete Classes — Video
  4. Java Programming Tutorial — 57 — Overriding Rules — Video
  5. Java Programming Tutorial — 59 — Class to Hold Objects
  6. Object-Oriented Programming — Video

Design Patterns

If you were like us, we weren’t taught about all the various design patterns. So it’s good to get an understanding of how they work and why you would use them. Some interview questions can be as simple as why would you use a factory class.

  1. Factory Design Pattern — Video
  2. Observer Design Pattern — Video
  3. Adapter Design Pattern — Video
  4. Facade Design Pattern — Video
  5. Chain of Responsibility Design Pattern — Video
  6. Interpreter Design Pattern — Video
  7. Singleton Design Pattern Tutorial — Video
  8. Chapter 6 (Part 1) — Patterns (video) — Video
  9. Head First Design Patterns — Video

SQL

SQL isn’t always needed as a software engineer. However, we find it good to be ready to answer the basic SQL problem.

SQL — Problems

  1. 262. Trips and Users
  2. 601. Human Traffic of Stadium
  3. 185. Department Top Three Salaries
  4. 626. Exchange Seats
  5. Hackerrank The Report
  6. 177. Nth Highest Salary
  7. Symmetric Pairs
  8. Occupations
  9. Placements
  10. Ollivander’s Inventory

SQL — Videos

  1. IQ15: 6 SQL Query Interview Questions — Video
  2. Learning about ROW_NUMBER and Analytic Functions — Video
  3. Advanced Implementation Of Analytic Functions — Video
  4. Advanced Implementation Of Analytic Functions Part 2 — Video
  5. Wise Owl SQL Videos — Video

Post SQL Problems

  1. Binary Tree Nodes
  2. Weather Observation Station 18
  3. ChallengesPrint Prime Numbers
  4. 595. Big Countries
  5. 626. Exchange Seats
  6. SQL Interview Questions: 3 Tech Screening Exercises (For Data Analysts)

Courses

If you have finished all of the questions and videos above and still feel like you need to review, then consider taking the courses below. They will help you get some new perspective. The truth is, these courses will pretty much cover the same concepts covered in the videos we have provided. However, sometimes, hearing the same information from multiple sources is helpful.

The Coding Interview Bootcamp: Algorithms + Data Structures

Data Warehouse Concepts: Basic to Advanced concepts

Data Structures and Algorithms Bootcamp

Books

Along with the courses, it might be helpful to read some programming, data warehousing design books. These are other key concepts worth covering.

Cracking The Code

The Algorithm Design Manual

The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd Edition

 

Conclusion

We do hope this list will help you prepare for your next software engineering interview. Please let us know if you have any questions or need any future help. Please do sign up for our email list to continue to receive free content like this!

Other Resources

Learning Data Science: Our Top 25 Data Science Courses

The Best And Only Python Tutorial You Will Ever Need To Watch

Dynamically Bulk Inserting CSV Data Into A SQL Server

4 Must Have Skills For Data Scientists

Engineering Dashboards, Metrics And Algorithms Part 2

Read Last Weeks Top Ten Article For Python Libraries

How Algorithms Can Become Unethical and Biased

SQL Best Practices — Designing An ETL Video

Categories
ProgrammingProgramming
2 Comments on this post.

Leave a Reply

*

*

  • How to Land Your First Consulting Client as a Data Scientist or Data Engineer – Seattle Data Guy
    6 July 2019 at 5:08 pm

    […] The Software Engineers Interview Study Guide […]

    Leave a Reply
  • DynamoDB vs. Hadoop vs. MongoDB – Seattle Data Guy
    5 October 2019 at 8:29 pm

    […] Healthcare Data With BigQuery The Software Engineering Study Guide Statistics Review For Data Scientists Learning Data Science: Our Top 25 Data Science Courses The […]

    Leave a Reply
  • Become A Sponsor

    Click Here
    Sponsors

    RELATED BY