mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2025-07-28 12:43:12 +08:00
contents: add Educative
This commit is contained in:
@ -27,3 +27,7 @@ Sometimes you do not need to store the whole DP table in memory, the last two va
|
||||
- [Decode Ways](https://leetcode.com/problems/decode-ways/)
|
||||
- [Unique Paths](https://leetcode.com/problems/unique-paths/)
|
||||
- [Jump Game](https://leetcode.com/problems/jump-game/)
|
||||
|
||||
## Courses
|
||||
|
||||
- [Grokking the Dynamic Programming Patterns for Coding Interviews](https://www.educative.io/courses/grokking-dynamic-programming-patterns-for-coding-interviews?aff=x23W)
|
||||
|
@ -44,7 +44,11 @@ Hashmaps are probably the most commonly used data structure for algorithm questi
|
||||
|
||||
If you are cutting corners in your code, state that out loud to your interviewer and say what you would do in a non-interview setting (no time constraints). E.g., I would write a regex to parse this string rather than using `split()` which may not cover all cases.
|
||||
|
||||
###### References
|
||||
## Algorithm courses
|
||||
|
||||
If you want more structured algorithms practice, I recommend [Educative's Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) course. This course essentially expands upon the questions here but approaches the practicing from a questions pattern perspective rather than data structures, which is an approach I agree with for learning and getting better at algorithmic problems.
|
||||
|
||||
## References
|
||||
|
||||
- http://blog.triplebyte.com/how-to-pass-a-programming-interview
|
||||
- https://quip.com/q41AA3OmoZbC
|
||||
|
@ -11,3 +11,7 @@ title: Object-Oriented Programming
|
||||
- Discuss algorithms and data structures for a garbage collector?
|
||||
- How would you implement an HR system to keep track of employee salaries and benefits?
|
||||
- How would you implement an Elevator system?
|
||||
|
||||
## Courses
|
||||
|
||||
- [Grokking the Object Oriented Design Interview](https://www.educative.io/courses/grokking-the-object-oriented-design-interview?aff=x23W)
|
||||
|
@ -1,91 +0,0 @@
|
||||
---
|
||||
id: topics
|
||||
title: Topics
|
||||
---
|
||||
|
||||
## Arrays
|
||||
|
||||
## Strings
|
||||
|
||||
- Prefix trees (Tries)
|
||||
- Suffix trees
|
||||
- Suffix arrays
|
||||
- KMP
|
||||
- Rabin-Karp
|
||||
- Boyer-Moore
|
||||
|
||||
## Sorting
|
||||
|
||||
- Bubble sort
|
||||
- Insertion sort
|
||||
- Merge sort
|
||||
- Quick sort
|
||||
- Selection sort
|
||||
- Bucket sort
|
||||
- Radix sort
|
||||
- Counting sort
|
||||
|
||||
## Linked Lists
|
||||
|
||||
## Stacks
|
||||
|
||||
## Queues
|
||||
|
||||
## Hash tables
|
||||
|
||||
- Collision resolution algorithms
|
||||
|
||||
## Trees
|
||||
|
||||
- BFS
|
||||
- DFS (inorder, postorder, preorder)
|
||||
- Height
|
||||
|
||||
## Binary Search Trees
|
||||
|
||||
- Insert node
|
||||
- Delete a node
|
||||
- Find element in BST
|
||||
- Find min, max element in BST
|
||||
- Get successor element in tree
|
||||
- Check if a binary tree is a BST or not
|
||||
|
||||
## Heaps / Priority Queues
|
||||
|
||||
- Insert
|
||||
- Bubble up
|
||||
- Extract max
|
||||
- Remove
|
||||
- Heapify
|
||||
- Heap sort
|
||||
|
||||
## Graphs
|
||||
|
||||
- Various implementations
|
||||
- Adjacency matrix
|
||||
- Adjacency list
|
||||
- Adjacency map
|
||||
- Single-source shortest path
|
||||
- Dijkstra
|
||||
- Bellman-Ford
|
||||
- Topo sort
|
||||
- MST
|
||||
- Prim algorithm
|
||||
- Kruskal's algorithm
|
||||
- Union Find Data Structure
|
||||
- Count connected components in a graph
|
||||
- List strongly connected components in a graph
|
||||
- Check for bipartite graph
|
||||
|
||||
## Dynamic Programming
|
||||
|
||||
- Count Change
|
||||
- 0-1 Knapsack
|
||||
|
||||
## System Design
|
||||
|
||||
- http://www.hiredintech.com/system-design/
|
||||
- https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirected_qid=1500023
|
||||
- http://blog.gainlo.co/index.php/2015/10/22/8-things-you-need-to-know-before-system-design-interviews/
|
||||
- https://github.com/donnemartin/system-design-primer
|
||||
- https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf
|
@ -112,6 +112,10 @@ Practically speaking the return of investment (ROI) on studying and practicing f
|
||||
- [Jump Game](https://leetcode.com/problems/jump-game/)
|
||||
- [Word Break Problem](https://leetcode.com/problems/word-break/)
|
||||
|
||||
---
|
||||
### Dynamic programming course
|
||||
|
||||
I've created a [LeetCode list](https://leetcode.com/list/9h4lgwl2) for the following questions (except the Premium ones). Feel free to use it to track your practice progress.
|
||||
- [Grokking the Dynamic Programming Patterns for Coding Interviews](https://www.educative.io/courses/grokking-dynamic-programming-patterns-for-coding-interviews?aff=x23W)
|
||||
|
||||
## More practice
|
||||
|
||||
If you want more structured algorithms practice, I recommend [Educative's Grokking the Coding Interview: Patterns for Coding Questions](https://www.educative.io/courses/grokking-the-coding-interview?aff=x23W) course. This course essentially expands upon the questions here but approaches the practicing from a questions pattern perspective rather than data structures, which is an approach I also agree with for learning and getting better at algorithmic problems.
|
||||
|
@ -7,7 +7,7 @@ title: Negotiation
|
||||
|
||||
If you've received an offer (or even better, offers), congratulations! You may heave a huge sigh of relief and think that the toughest parts are over. Well yes, but not entirely! For most people, the reason they're finding a new job is to increase their salary, and salary negotiation is the last stretch in achieving that goal.
|
||||
|
||||
**Here's something that recruiters don't want you to know:** In most cases, there's room for negotiation on your offer. The initial offer that you are given is not the best package that the company can offer. During my job hunting experience and having received offers from numerous top tech companies like Facebook, Google, Airbnb, Lyft, and Dropbox, I have found this to be true. In most cases, you could always negotiate for more money, and some aspects of your salary is easier to negotiate than others.
|
||||
**Here's something that recruiters don't want you to know -** In most cases, there's room for negotiation on your offer and _recruiters expect candidates to negotiate_. The initial offer that you are given is not the best package that the company can offer. During my last job hunting experience, I received offers from numerous top tech companies like Facebook, Google, Airbnb, Lyft, Dropbox, and I have found this to be true. In most cases, you could always negotiate for more money, and some aspects of your salary is easier to negotiate than others. With many offers in hand, I was able to negotiate a better offer from every company.
|
||||
|
||||
If you haven't been negotiating your past offers, or are new to the negotiation game, worry not! There are multiple negotiation services that can help you out. Typically, they'd be well-worth the cost.
|
||||
|
||||
@ -25,6 +25,10 @@ Get paid more. Receive salary negotiation help from [**Moonchaser**](https://www
|
||||
|
||||
:::
|
||||
|
||||
### Grokking Comp Negotiation in Tech
|
||||
|
||||
If you are not keen on paying for negotiation services and are a fan of courses, here's something for you - the [Grokking Comp Negotiation in Tech](https://www.educative.io/courses/grokking-comp-negotiation?aff=x23W) course, a text-based course where you can get information on each aspect of negotiation. **Disclaimer: I haven't tried this course before.**
|
||||
|
||||
## Ten Rules of Negotiation
|
||||
|
||||
Key points extracted from "Ten Rules for Negotiating a Job Offer" [Part 1](http://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/) and [Part 2](https://haseebq.com/how-not-to-bomb-your-offer-negotiation/) by Haseeb Qureshi.
|
||||
|
Reference in New Issue
Block a user