Skip to content

Work-in-progress for topics to review or know about when doing tech interviews or simply to brush up on your Computer Science knowledge.

Notifications You must be signed in to change notification settings

osuritz/techinterview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tech Interview

Data Structures

For each of the following structures, you should understand how to implement and use them. You should also know their time complexity for common operations (add, remove, access).

Trees

NOTE: Balanced Binary Search Trees are even better than heaps because in addition to insert, delete, and min|max —which is the contract of the Priority Queue absract data type—, they provide findSuccessor and findPredecessor in O (log n) time. The main reason you'd prefer heaps is because the latter are in place: they don't use any extra space.

Object-Oriented Programming (OOP)

The three pillars of object-oriented programming are: encapsulation, inheritance, and polymorphism. You should understand, be able to talk about, and apply the following object-oriented principles.

Design Patterns

These are not sorted in any particular order other than alphabetical.

Creational Patterns

Behavioral Patterns

Structural Patterns

Architectural Patterns

TBD: currying, memoization

About

Work-in-progress for topics to review or know about when doing tech interviews or simply to brush up on your Computer Science knowledge.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages