-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathexample-wheel.dlc
More file actions
171 lines (171 loc) · 6.95 KB
/
Copy pathexample-wheel.dlc
File metadata and controls
171 lines (171 loc) · 6.95 KB
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
{
"filetype": "examiner-dlc",
"version": "1.4",
"type": "wheeler",
"name": "Wheel Example",
"groups": [
{ "id": "os", "name": "Operating Systems", "color": "#e53935" },
{ "id": "net", "name": "Networking", "color": "#1e88e5" },
{ "id": "algo", "name": "Algorithms", "color": "#43a047" },
{ "id": "db", "name": "Databases", "color": "#fb8c00" },
{ "id": "design", "name": "Software Design", "color": "#8e24aa" }
],
"data": [
{
"id": 0,
"type": "self-assessment",
"question": {
"type": "text",
"content": "Describe in detail what the lifecycle of a process looks like in a modern operating system, from creation through termination.",
"title": "Process lifecycle",
"group": "os"
},
"answers": [
"**Stages:**\n\n- `fork` / `exec` — creation\n- *ready* → *running* → *waiting* → *terminated*\n\nScheduler moves processes between states."
]
},
{
"id": 1,
"type": "self-assessment",
"question": {
"type": "text",
"content": "Explain the difference between TCP and UDP and when you would choose one over the other.",
"title": "TCP vs UDP",
"group": "net"
},
"answers": [
"- **TCP** — reliable, ordered, connection-oriented\n- **UDP** — fast, no delivery guarantees, connectionless\n\nUse TCP for files / HTTP, UDP for games / streaming."
]
},
{
"id": 2,
"type": "self-assessment",
"question": {
"type": "text",
"content": "Walk through the algorithmic complexity of common sorting algorithms — at least bubble, merge, quick and heap.",
"title": "Sorting complexity",
"group": "algo"
},
"answers": [
"| Algorithm | Avg | Worst |\n|-----------|-----|-------|\n| Bubble | O(n²) | O(n²) |\n| Merge | O(n log n) | O(n log n) |\n| Quick | O(n log n) | O(n²) |\n| Heap | O(n log n) | O(n log n) |"
]
},
{
"id": 3,
"type": "self-assessment",
"question": {
"type": "text",
"content": "What is normalization in databases? Describe 1NF, 2NF and 3NF.",
"title": "DB normalization",
"group": "db"
},
"answers": [
"1. **1NF** — atomic values\n2. **2NF** — no partial dependencies\n3. **3NF** — no transitive dependencies"
]
},
{
"id": 4,
"type": "self-assessment",
"question": {
"type": "text",
"content": "Explain the SOLID principles of object-oriented design.",
"title": "SOLID principles",
"group": "design"
},
"answers": [
"- **S**ingle responsibility\n- **O**pen / closed\n- **L**iskov substitution\n- **I**nterface segregation\n- **D**ependency inversion"
]
},
{
"id": 5,
"type": "self-assessment",
"question": {
"type": "text",
"content": "What does the OSI model look like and what does each layer do?",
"title": "OSI model",
"group": "net"
},
"answers": [
"Physical → Data Link → Network → Transport → Session → Presentation → Application"
]
},
{
"id": 6,
"type": "self-assessment",
"question": {
"type": "text",
"content": "Describe how a hash table works and how collisions are typically resolved.",
"title": "Hash tables",
"group": "algo"
},
"answers": [
"Hash key → bucket index. Collisions: **chaining** (linked list) or **open addressing** (probe to next slot)."
]
},
{
"id": 7,
"type": "self-assessment",
"question": {
"type": "text",
"content": "What are the differences between processes and threads?",
"title": "Process vs thread",
"group": "os"
},
"answers": [
"- **Processes** have their own memory space\n- **Threads** share memory within a process"
]
},
{
"id": 8,
"type": "self-assessment",
"question": {
"type": "text",
"content": "Explain how a three-way TCP handshake establishes a connection between two hosts.",
"title": "TCP handshake",
"group": "net"
},
"answers": [
"1. Client → **SYN**\n2. Server → **SYN-ACK**\n3. Client → **ACK**\n\nConnection is now established and ready for data transfer."
]
},
{
"id": 9,
"type": "self-assessment",
"question": {
"type": "text",
"content": "Walk through how a context switch works between two processes on a single CPU core.",
"title": "Context switch",
"group": "os"
},
"answers": [
"Save the current process's CPU registers / program counter into its PCB, load the next process's PCB into the CPU, switch the memory map, then resume execution from the new PC."
]
},
{
"id": 10,
"type": "self-assessment",
"question": {
"type": "text",
"content": "Compare binary search trees and hash tables — when would you reach for one over the other?",
"title": "BST vs hash table",
"group": "algo"
},
"answers": [
"- **BST** keeps keys ordered, supports range queries, O(log n) average\n- **Hash table** is unordered, O(1) average lookup but no range queries\n\nReach for a BST when you need ordering, a hash table when you only need fast key lookup."
]
},
{
"id": 11,
"type": "self-assessment",
"question": {
"type": "text",
"content": "What is an index in a relational database and how does it speed up queries?",
"title": "Database indexes",
"group": "db"
},
"answers": [
"A secondary data structure (usually a B-tree) that maps key values to row locations. Lets the engine skip a full table scan and jump straight to matching rows, at the cost of extra writes and storage."
]
}
]
}