Dev Skills
Languages·98 topics · about 85 hours in total

Go

Go is small enough to learn well, and big enough to build real things with. You start with variables. You finish with a working JSON API that has user accounts, a database, file uploads and tests. It uses only four outside packages. Everything else comes with Go. Interview path: if you are preparing for campus hiring, new-grad interviews or online assessments, do Getting started → Core language → Go for coding rounds → Interview preparation first, and come back for the rest.

Read the sections in order. Each one builds on the ones before it. There is no timetable, so go as fast or as slow as you like. Every topic ends with something to build, plus a few short tasks to try in your own editor. Official docs: go.dev

01

Getting started

6 h 30 min

Install it, run something, and meet the ideas that make Go different from what you already know.

02

Core language

10 hours

Functions, errors as values, the two data structures you use all day, your own types, and tests.

How to read judge input fast, then fifteen problems campus hiring tests and online assessments ask most (maps, slices, linked lists, trees, recursion, DP, graphs, sliding windows), each solved idiomatically in Go with the trap that costs marks.

23Fast input and output for online judgesHow to read the input HackerRank, CodeChef and company OAs send on stdin, and print the answer fast enough to pass the time limit.
24Two sum with a mapThe most-asked warm-up in any coding round, and the cleanest demonstration of why a map beats a nested loop.
25Reverse and rotate a slice in placeTwo pointers, the three-reversal trick, and the slice aliasing that makes "in place" mean what it says.
26Frequency count and top KCount with a map, rank with a sort or a heap, and never let map order leak into your answer.
27Valid parentheses with a slice as a stackGo has no stack type, because a slice already is one. Push with append, pop by re-slicing.
28Binary search, by hand and from the stdlibWrite it once without an off-by-one, then know when `slices.BinarySearch` and `sort.Search` do it for you.
29LRU cache with container/list and a mapThe design question disguised as a coding question: two structures, each covering what the other cannot.
30Reverse a linked listThree pointers and one saved link. The question that checks you can move pointers without losing the rest of the list.
31Detect a cycle with two pointersFloyd's tortoise and hare: find a loop in a linked list with no extra memory.
32Merge two sorted listsA dummy head node removes every special case, and the leftover tail is attached in one line.
33Binary tree depth and level orderRecursion for depth, a slice as a queue for level order. The two shapes every tree question uses.
34Subsets and permutations with backtrackingChoose, recurse, undo. And the one-line copy that stops every answer turning into the same slice.
35Dynamic programming: stairs, coins, LCSWrite the answer for a small case in terms of smaller ones, then fill a table from the bottom up.
36Number of islands: DFS on a gridA grid is a graph in disguise. Find unvisited land, flood it, count one.
37Merge overlapping intervalsSort by start, then one pass. The sort does the hard part.
38Longest substring without repeating charactersA window with two edges and a map of where each character was last seen. Rune-aware, so it counts characters, not bytes.
04

Concurrency

4 h 45 min

The part people come to Go for. Run things at the same time, safely, and stop them when you need to.

Write one function that works for many types, and learn which built-in packages you will use most.

06

Web services

1 h 45 min

Build an HTTP API with no framework, add middleware, shut it down cleanly, and lay the folders out well.

How Go finds your code, the third-party packages you will meet most, and the four commands to run before every push.

08

Databases

1 h 45 min

Postgres through database/sql. No ORM, so you write and see every query that runs.

Build the same CRUD API three times, in three layouts, so the trade-offs are something you have felt rather than read.

Optional — after you finish the basics. Built with a **layered** structure: a folder per kind of code. Validation, storage, a redirect, then Postgres and a container.

Built **by feature**: one folder per concept. Accounts, passwords and login, taught inside the project that needs them.

Built with **ports and adapters** (hexagonal). Roles, file uploads, and money that must not be lost.

13

Production

5 h 30 min

Optional — after you finish the basics. The difference between something that works and something you can put online and keep running.

14

Go comparisons

1 h 45 min

The "X vs Y" questions people search and interviewers ask: goroutines vs threads, mutex vs channel, arrays vs slices, buffered vs unbuffered channels, and Go vs Java vs Python for first-job interviews.

Everything above, written the way interviewers ask it. Plus the live coding round and a last checklist.