Convert Figma logo to code with AI

yangshun logotech-interview-handbook

💯 Curated coding interview preparation materials for busy software engineers

116,445
14,518
116,445
41

Top Related Projects

A complete computer science study plan to become a software engineer.

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Interactive roadmaps, guides and other educational content to help developers grow in their careers.

📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings

Everything you need to know to get the job.

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.

Quick Overview

The Tech Interview Handbook is a comprehensive resource for software engineering interview preparation. It provides curated content, study plans, and practical tips to help candidates excel in technical interviews at top tech companies.

Pros

  • Extensive coverage of various interview topics, including algorithms, system design, and behavioral questions
  • Free and open-source, making it accessible to all
  • Regularly updated with community contributions
  • Includes real-world experiences and insights from industry professionals

Cons

  • May be overwhelming for beginners due to the vast amount of information
  • Some topics may not be relevant for all types of software engineering roles
  • Lacks interactive coding exercises or practice platforms
  • Primarily focused on large tech companies, which may not reflect all interview experiences

Getting Started

To start using the Tech Interview Handbook:

  1. Visit the GitHub repository: https://github.com/yangshun/tech-interview-handbook
  2. Explore the README for an overview of available resources
  3. Navigate to the "contents" folder to access specific topics
  4. Use the provided study plans to structure your preparation
  5. Join the community on Discord for additional support and discussions

Competitor Comparisons

A complete computer science study plan to become a software engineer.

Pros of coding-interview-university

  • Comprehensive curriculum covering a wide range of computer science topics
  • Detailed study plan with estimated time commitments
  • Includes resources for both beginners and experienced programmers

Cons of coding-interview-university

  • Can be overwhelming due to the sheer amount of content
  • Less focus on practical interview preparation and soft skills
  • May require a significant time investment to complete the entire curriculum

Code comparison

While both repositories focus on interview preparation, they don't contain extensive code examples. However, tech-interview-handbook includes some algorithm implementations, such as:

function binarySearch(arr, target) {
  let left = 0;
  let right = arr.length - 1;
  while (left <= right) {
    const mid = left + Math.floor((right - left) / 2);
    if (arr[mid] === target) return mid;
    if (arr[mid] < target) left = mid + 1;
    else right = mid - 1;
  }
  return -1;
}

coding-interview-university primarily links to external resources for code examples and practice.

Summary

tech-interview-handbook offers a more focused approach to interview preparation with practical tips and algorithm implementations. coding-interview-university provides a comprehensive computer science curriculum but may require more time and effort to complete. Choose based on your current knowledge level and available time for preparation.

Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Pros of system-design-primer

  • More comprehensive coverage of system design topics
  • Includes visual diagrams and illustrations for better understanding
  • Provides step-by-step guides for approaching system design problems

Cons of system-design-primer

  • Less focus on coding interview preparation
  • May be overwhelming for beginners due to its depth and breadth
  • Updates less frequently compared to tech-interview-handbook

Code comparison

While both repositories primarily focus on conceptual knowledge rather than code examples, system-design-primer occasionally includes code snippets to illustrate specific concepts. For example:

system-design-primer:

def get_user(request, user_id):
    user = memcache.get("user.{0}", user_id)
    if user is None:
        user = db.query("SELECT * FROM users WHERE user_id = {0}", user_id)
        memcache.set("user.{0}", user, 30)
    return user

tech-interview-handbook generally doesn't include code examples, focusing instead on conceptual explanations and interview strategies.

Both repositories are valuable resources for technical interview preparation, with system-design-primer excelling in system design topics and tech-interview-handbook offering a broader range of interview preparation materials.

Interactive roadmaps, guides and other educational content to help developers grow in their careers.

Pros of developer-roadmap

  • Provides comprehensive visual roadmaps for various tech career paths
  • Regularly updated with new technologies and industry trends
  • Offers a broader perspective on overall career development

Cons of developer-roadmap

  • Less focused on specific interview preparation techniques
  • May be overwhelming for beginners due to the vast amount of information
  • Lacks detailed explanations or resources for individual topics

Code comparison

While both repositories primarily focus on educational content rather than code, tech-interview-handbook includes some code snippets for algorithm explanations:

tech-interview-handbook:

def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

developer-roadmap doesn't typically include code snippets, as it focuses on visual roadmaps and career guidance.

📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings

Pros of javascript-algorithms

  • Focuses specifically on algorithms and data structures implemented in JavaScript
  • Provides detailed explanations and examples for each algorithm
  • Includes a wide range of algorithms, from basic to advanced

Cons of javascript-algorithms

  • Limited coverage of general interview preparation topics
  • May not be as comprehensive for overall technical interview readiness
  • Lacks guidance on soft skills and interview strategies

Code Comparison

tech-interview-handbook:

// No specific code examples provided in the main repository

javascript-algorithms:

function bubbleSort(arr) {
  for (let i = 0; i < arr.length; i++) {
    for (let j = 0; j < arr.length - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
      }
    }
  }
  return arr;
}

Summary

tech-interview-handbook offers a comprehensive guide for technical interview preparation, covering various topics and providing resources for both technical and non-technical aspects of interviews. On the other hand, javascript-algorithms focuses specifically on implementing and explaining algorithms and data structures in JavaScript, making it an excellent resource for deepening understanding of these concepts. While tech-interview-handbook provides a broader overview of the interview process, javascript-algorithms offers more in-depth coverage of algorithmic implementations.

Everything you need to know to get the job.

Pros of interviews

  • More comprehensive coverage of algorithms and data structures
  • Includes solutions in multiple programming languages
  • Provides a wider range of problem-solving techniques

Cons of interviews

  • Less focus on soft skills and non-technical aspects of interviews
  • May be overwhelming for beginners due to its extensive content
  • Less frequently updated compared to tech-interview-handbook

Code Comparison

interviews:

public ListNode reverseList(ListNode head) {
    ListNode prev = null;
    while (head != null) {
        ListNode next = head.next;
        head.next = prev;
        prev = head;
        head = next;
    }
    return prev;
}

tech-interview-handbook:

function reverseLinkedList(head) {
  let prev = null;
  let curr = head;
  while (curr !== null) {
    [curr.next, prev, curr] = [prev, curr, curr.next];
  }
  return prev;
}

Both repositories provide similar implementations for reversing a linked list, but interviews uses Java while tech-interview-handbook uses JavaScript. The JavaScript version is more concise due to destructuring assignment.

A list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.

Pros of Front-end-Developer-Interview-Questions

  • More focused on front-end specific topics, providing in-depth questions for HTML, CSS, and JavaScript
  • Includes questions about performance optimization and accessibility, which are crucial for front-end development
  • Offers a community-driven approach with translations available in multiple languages

Cons of Front-end-Developer-Interview-Questions

  • Less comprehensive coverage of general computer science concepts and algorithms
  • Lacks detailed explanations or answers to the questions provided
  • Not as frequently updated as tech-interview-handbook

Code Comparison

While both repositories focus on interview preparation, they don't typically include code snippets. However, tech-interview-handbook does provide some algorithm implementations. Here's an example of a code snippet from tech-interview-handbook:

function binarySearch(arr, target) {
  let left = 0;
  let right = arr.length - 1;
  while (left <= right) {
    const mid = Math.floor((left + right) / 2);
    if (arr[mid] === target) return mid;
    if (arr[mid] < target) left = mid + 1;
    else right = mid - 1;
  }
  return -1;
}

Front-end-Developer-Interview-Questions doesn't typically include code snippets, focusing instead on conceptual questions and topics for discussion.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Tech Interview Handbook


Start Reading Tech Interview Handbook

What is this?

Not everyone has the time to do a few hundred LeetCode questions. Here are free and curated technical interview preparation materials for busy engineers, brought to you by me, the author of Blind 75. Over 500,000 people have benefitted from this handbook!

Besides the usual algorithm questions, other awesome stuff includes:

Help from you in contributing content would be very much appreciated!

Why would you read this?

This repository has practical content that covers all phases of a technical interview, from applying for a job to passing the interviews to offer negotiation. Technically competent candidates might still find the non-technical content helpful.

The information in this repository is condensed. Ultimately, the key to succeeding in technical interviews is consistent practice and I don't want to bore you with too many words. I tell you the minimum you need to know on how to go about navigating the interview process, you go and practice and land your dream job.

Who is this for?

Anybody who wants to land a job at a tech company but is new to technical interviews, seasoned engineers who have not been on the other side of the interviewing table in a while and want to get back into the game, or anyone who wants to be better at technical interviewing.


💡 Stop grinding mindlessly! Study coding question patterns efficiently with Grokking the Coding Interview by Design Gurus 💡


How is this repository different?

There are many awesome books like "Cracking the Coding Interview" and interview-related repositories out there on GitHub, what makes this repository different? The difference is that many existing interview repositories contain mainly links to external resources whereas this repository contains top-quality curated content directly for your consumption.

Also, existing resources focus mainly on algorithm questions and lack coverage for more domain-specific and non-technical questions. This handbook aims to cover content beyond the typical algorithmic coding questions. 😎

Looking for interview courses?

AlgoMonster

AlgoMonster aims to help you ace the technical interview in the shortest time possible. By Google engineers, AlgoMonster uses a data-driven approach to teach you the most useful key question patterns and has contents to help you quickly revise basic data structures and algorithms. Best of all, AlgoMonster is not subscription-based - pay a one-time fee and get lifetime access. Join today for a 70% discount →

Grokking the Coding Interview: Patterns for Coding Questions

This course by Design Gurus expands upon the questions on the recommended practice questions but approaches the practicing from a questions pattern perspective, which is an approach I also agree with for learning and have personally used to get better at coding interviews. The course allows you to practice selected questions in Java, Python, C++, JavaScript and also provides sample solutions in those languages. Learn and understand patterns, not memorize answers! Get lifetime access today →

Looking for Front End content?

Front-end-related content has been moved to a separate website - Front End Interview Handbook.

Looking for System Design content?

We're still working on System Design content. In the meanwhile, check out ByteByteGo's System Design Interview course or Design Gurus' Grokking the System Design Interview course, which in our opinion are among the most useful resources for getting started on system design interviews preparation.

Contents

A Docusaurus website has been created to provide a better reading experience. Check out the website here!


💡 Stop the grind and study with a plan! Developed by Google engineers, AlgoMonster is the fastest way to get a software engineering job. Join today for a 70% discount! 💡


Related

If you are interested in how data structures are implemented, check out Lago, a Data Structures and Algorithms library for JavaScript. It is pretty much still WIP but I intend to make it into a library that can be used in production and also a reference resource for revising Data Structures and Algorithms.

Contributing

There are no formal contributing guidelines at the moment as things are still in flux and we might find a better approach to structure content as we go along. You are welcome to contribute whatever you think will be helpful to fellow engineers. If you would like to contribute content for different domains, feel free to create an issue or submit a pull request and we can discuss further.

Contributors

This project exists thanks to all the people who contributed. [Contribute].

Backers

Thank you to all our backers! 🙏 [Become a backer]

Buy Me A Coffee

Sponsors

Support this project by becoming a sponsor. Your logo/profile picture will show up here with a link to your website. [Become a sponsor]

Disclaimer

I am providing code in the repository to you under an open source license. Because this is my personal repository, the license you receive to my code is from me and not my employer (Meta).