Dev Skills
System Design
Go
Menu
Go
0/98
All topics
Quick revision
Tests
›
Getting started
0/8
01
Setup and first program
02
Syntax and comments
03
Printing and verbs
04
Basic data types
05
Constants and iota
06
Operators
07
Type conversion
08
if, for, and switch
›
Core language
0/14
09
Functions and errors
10
defer
11
Arrays and slices
12
Maps
13
Strings and runes
14
Pointers
15
Structs
16
Methods and embedding
17
Interfaces
18
Type switches
19
Error values
20
Packages
21
JSON
22
Testing
›
Go for coding rounds
0/16
23
Fast input/output
24
Two sum
25
Reverse and rotate
26
Top K frequent
27
Valid parentheses
28
Binary search
29
LRU cache
30
Reverse linked list
31
Detect a cycle
32
Merge sorted lists
33
Tree depth and BFS
34
Subsets and permutations
35
Dynamic programming
36
Number of islands
37
Merge intervals
38
Sliding window
›
Concurrency
0/5
39
Goroutines
40
Channels and select
41
Mutexes and races
42
Context
43
Concurrency patterns
›
Generics and stdlib
0/3
44
Generics
45
Iterators
46
The standard library
›
Web services
0/2
47
HTTP server, no framework
48
Middleware and shutdown
›
Modules and packages
0/3
49
Modules and the go command
50
Popular packages
51
Packages in code
›
Databases
0/2
52
Postgres and database/sql
53
Joins, transactions, N+1
›
Practice projects
0/4
54
Project layouts
55
Practice 1 — flat
56
Practice 2 — layered
57
Practice 3 — by feature
›
Project 1 — URL shortener
0/7
58
Overview and plan
59
Step 1 — Set up
60
Step 2 — The store
61
Step 3 — Create a link
62
Step 4 — The redirect
63
Step 5 — Postgres
64
Step 6 — Finish it
›
Project 2 — Expense tracker
0/9
65
Overview and plan
66
Step 1 — Setup and schema
67
Step 2 — Register
68
Step 3 — Login and JWT
69
Step 4 — Auth middleware
70
Step 5 — Owner-scoped CRUD
71
Step 6 — Reports
72
Step 7 — Refresh tokens
73
Step 8 — Tests
›
Project 3 — Small shop
0/8
74
Overview and plan
75
Step 1 — Setup and schema
76
Step 2 — Roles
77
Step 3 — Image upload
78
Step 4 — Serving files
79
Step 5 — The cart
80
Step 6 — Checkout
81
Step 7 — Ship it
›
Production
0/6
82
Errors and logging
83
Rate limits, CORS, headers
84
Docker and deployment
85
Polish and docs
86
Harden and review
87
Profile and ship
›
Go comparisons
0/5
88
Goroutines vs threads
89
Mutex vs channel
90
Arrays vs slices
91
Buffered vs unbuffered
92
Go vs Java vs Python
›
Interview preparation
0/6
93
Interview questions
94
Interview — language
95
Interview — concurrency
96
Interview — backend design
97
Interview — live coding
98
Interview — checklist
Go tests
·
12 questions
Databases
Pools, placeholders, scanning, transactions, and N+1.
1 / 12
What is
*sql.DB
?
A
A connection
pool
, safe for concurrent use
B
A single database connection
C
A transaction handle
D
A prepared statement cache only