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
Install it, run something, and meet the ideas that make Go different from what you already know.
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.
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.
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.
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.
Optional — after you finish the basics. The difference between something that works and something you can put online and keep running.
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.