Mirror Course
Move from Java's OOP-heavy JVM world to Go's lean, compiled systems language. Go trades inheritance for composition, checked exceptions for error values, and threads for goroutines.
Structural vs nominal typing
Dealing with failures
Concurrency
Go slices and maps vs Java List/Map — dynamic arrays and hash maps
Go modules, package organization, and dependency management vs Maven
Go's built-in testing vs JUnit 5 — table-driven tests, benchmarks
Go's standard library covers HTTP, JSON, strings, and OS operations without third-party dependencies — replacing most Java Apache Commons, Guava, and Jackson packages.
Go's context.Context propagates deadlines and cancellation across goroutine trees — replacing Java's CompletableFuture.cancel(), ExecutorService.shutdownNow(), and request-scoped thread-locals.