-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathold_index.html
140 lines (115 loc) · 7.3 KB
/
old_index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Meta, title, CSS, favicons, etc. -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="keywords" content="tech, interview">
<title>Tech Interview Cheat Sheet</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<!-- Optional theme -->
<!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"> -->
</head>
<body>
<!-- Fixed navbar -->
<header class="navbar navbar-default navbar-static-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">TICS</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li><a href="#datastructures">Data Structures</a></li>
<li><a href="#algorithms">Algorithms</a></li>
<li><a href="#concepts">Concepts</a></li>
<li><a href="#oop">Object-Oriented Programming</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</header>
<div class="container theme-showcase" role="main">
<!-- Main jumbotron for a primary marketing message or call to action -->
<div class="jumbotron">
<h1>Tech Interview Cheat Sheet</h1>
<p>Work-in-progress for topics to know about when doing tech interviews or simply to brush up
on your Computer Science knowledge.</p>
</div>
<h2 id="datastructures" class="page-header">Data Structures</h2>
<p>For each of the structures, you should understand how to implement and use them. You should also know their time complexity for common operations (add, remove, access).
<ul>
<li><a href="http://en.wikipedia.org/wiki/Dynamic_array">Dynamic Array (aka Vector, Array List)</a></li>
<li><a href="http://en.wikipedia.org/wiki/Singly_linked_list">Linked List</a></li>
<li><a href="http://en.wikipedia.org/wiki/Queue_(abstract_data_type)">Queue</a></li>
<li><a href="http://en.wikipedia.org/wiki/Stack_(abstract_data_type)">Stack</a></li>
<li><a href="http://en.wikipedia.org/wiki/Hash_table">Hash Table</a></li>
<li><a href="http://en.wikipedia.org/wiki/Heap_(data_structure)">Heap</a> (just know about min- and max-heap)</li>
</ul>
<h3 id="trees">Trees</h3>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Binary_tree">Binary Tree</a></li>
<li><a href="http://en.wikipedia.org/wiki/Trie">Trie (aka Prefix Tree)</a>. A common application is for autocomplete or predictive text dictionary (think <a href="http://en.wikipedia.org/wiki/T9_(predictive_text)">T9</a>).</li>
<li><a href="http://en.wikipedia.org/wiki/Red–black_tree">Red-Black Tree (self-balancing binary trees)</a>. You typically just need to know about them and their usage rather than know how to implement them.</li>
</ul>
<h3>Comparison</h3>
[Insert table comparing performance of the different data structures]
<h2 id="algorithms" class="page-header">Algorithms</h2>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Binary_search_algorithm">Binary Search</a> lets you find the position of an input element within a <strong>sorted array</strong>.</li>
<li><a href="http://en.wikipedia.org/wiki/Depth-first_search">Tree Traversal - Depth First Search (DFS)</a></li>
<li><a href="http://en.wikipedia.org/wiki/Breadth-first_search">Tree Traversal - Breadth First Search (BFS)</a></li>
<li><a href="http://en.wikipedia.org/wiki/Quicksort">Quicksort</a> vs. <a href="http://en.wikipedia.org/wiki/Merge_sort">Merge sort</a></li>
<li><a href="http://en.wikipedia.org/wiki/Random_permutation">Random permutation</a></li>
</ul>
<h2 id="concepts" class="page-header">Concepts</h2>
<ul>
<li>Bit manipulation</li>
<li>Memory: <a href="http://en.wikipedia.org/wiki/Stack-based_memory_allocation">Stack</a> vs. <a href="http://en.wikipedia.org/wiki/Memory_management#DYNAMIC">Heap</a></li>
<li>Recursion</li>
<li><a href="http://bigocheatsheet.com">Big-O Time</a></li>
</ul>
<h2 id="oop" class="page-header">Object-Oriented Programming (OOP)</h2>
<p>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. </p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)">Encapsulation</a></li>
<li><a href="http://en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)">Inheritance</a></li>
<li><a href="http://en.wikipedia.org/wiki/Polymorphism_(computer_science)">Polymorphism</a> (since we're talking about OOP, I’m referring to <em>inclusion polymorphism</em>) </li>
<li><a href="http://en.wikipedia.org/wiki/Object_composition">Composition</a> (and why <a href="http://en.wikipedia.org/wiki/Composition_over_inheritance">one might prefer composition over inheritance</a>)</li>
</ul>
<h3 id="design-patterns">Design Patterns</h3>
These are not sorted in any particular order other than alphabetical.
<h4>Creational Patterns</h4>
<ul>
<li><a href="http://sourcemaking.com/design_patterns/factory_method">Factory Pattern</a></li>
</ul>
<h4>Behavioral Patterns</h4>
<ul>
<li><a href="http://sourcemaking.com/design_patterns/chain_of_responsibility">Chain of Responsibility</a></li>
<li><a href="http://sourcemaking.com/design_patterns/observer">Observer Pattern</a></li>
<li><a href="http://sourcemaking.com/design_patterns/strategy">Strategy Pattern</a></li>
</ul>
<h4>Structural Patterns</h4>
<ul>
<li><a href="http://sourcemaking.com/design_patterns/adapter">Adapter Pattern</a></li>
<li><a href="http://sourcemaking.com/design_patterns/decorator">Decorator Pattern</a></li>
</ul>
<h3 id="arch-patterns">Architectural Patterns</h3>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Model–view–controller">Model-View-Controller (MVC)</a> – <a href="http://en.wikipedia.org/wiki/Model–view–presenter">Model-View-Presenter (MVP)</a> – <a href="http://en.wikipedia.org/wiki/Model_View_ViewModel">Model-View-ViewModel (MVVM)</a></li>
<li><a href="http://en.wikipedia.org/wiki/Publish–subscribe_pattern">Pub/Sub</a></li>
</ul>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
</body>
</html>