Giter Site home page Giter Site logo

xazratbek / cracking-maang Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rustam-z/cracking-maang

0.0 0.0 0.0 3.19 MB

πŸ₯· Cracking the MAANG Interviews | Google & Bloomberg | Algorithms and Data Structures | Tips and Resources

JavaScript 0.08% Python 97.15% Jupyter Notebook 2.78%

cracking-maang's Introduction

Cracking the Coding Interview

Rustam-ZπŸš€ β€’ 8 June 2021

Join my Telegram channel: @cracking_swe, where I share MAANG interview preparation resources.

Contents

General plan

  1. Learn DS and Algorithms
  2. Solve algorithms
  3. Repeat concepts
  4. Learn System Design
  5. Write a resume
  6. Prepare for a behavioral interview
  7. Find people for referral and apply
  8. Pass the interview
  9. Get an offer, and negotiate salary! 🍾

How to approach solving the algorithm?

Constraints, Ideas, Complexities, Code, and Tests

  1. Read the problem. Don’t immediately jump into coding!
  2. Understand inputs & outputs. Draw some examples on paper.
  3. Ask questions, and find constraints. Find edge cases. Example questions: is it ASCII or Unicode? what is the Max value? is there a difference between capital letters and small letters?
  4. Thinking about the solution in mind. Divide problems into sub-problems.
  5. Evaluate the complexity
  6. Think better alternative solution
  7. Write code on paper
  8. Debug your code on paper and test with new corner case inputs
  9. Write code and write tests

Algorithms Learning Plan

System Design Learning Plan

  • "Systems Expert" from AlgoExpert
  • "System Design Interview" book - 1st and 2nd editions
  • "Grokking the System Design Interview" (educative.io)
  • "Designing Data-Intensive Applications" book
  • Tushar

Extra Resources

Algorithms & Data Structures Readings

Topics

  • Big-O = how quickly the runtime grows relative to the input as the input gets arbitrarily large.
  • Strings
    • ASCII, Unicode
    • How are strings implemented in your programming language (for example, is there a maximum length)?
    • Search for substrings (for example, the Rabin-Karp algorithm).
    • RegEx
  • Arrays
    • Details of implementation in your programming language. For example, for C++ you need to know the implementation using pointers, and vectors. For vectors, you also need to know, for example, that it periodically does resize, and other similar details.
  • Linked lists
    • Singly linked list
    • Doubly linked list
  • Stacks and Queues
  • Trees
    • DFS, BFS
    • Adding and removing elements
    • Less common tree types (e.g., red black trees, B-trees) - what are they, how they differ from the binary trees, basic complexities, and how they are used. No need to know all the rotations in the RB-tree, for example.
    • Tries
  • Heaps
    • Heap sort
    • Using heaps for tracking top-K
    • Allocating elements on a heap vs on a stack - what does it mean?
  • Graphs
    • DFS, BFS
    • Topological search
    • Shortest path
  • Hash
    • Hash functions
    • Universal hash
  • Algorithms
    • Sorting
      • Especially make sure you know heap sort, merge sort and quick sort.
    • Searching
      • Binary search
      • Searching in linked lists, arrays, trees, graphs, dictionaries...
    • Dynamic programming = problems, which are problems where the solution is composed of solutions to the same problem with smaller inputs.
      • Bottom-up
      • Top-down
    • Backtracking = Backtracking is an algorithmic technique for solving problems recursively by trying to build a solution incrementally, one piece at a time.
    • Greedy algorithms
    • Recursion

cracking-maang's People

Contributors

rustam-z avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.