Get in Touch

Course Outline

Go in Context: A Comparison

  • Comparing Go with Java, Python, C, and other languages.
  • Core design philosophies behind Go.
  • Appropriate scenarios for using Go (and when to avoid it).

Core Language Concepts

  • Setting up a Go development environment.
  • Variables, constants, and data types.
  • Functions and handling multiple return values.
  • Control structures: if, switch, and for.
  • Arrays, slices, and maps.
  • Structs and embedding.
  • Methods and interfaces.
  • Understanding pointers in Go.
  • Idioms and patterns for error handling.

Concurrency in Go

  • Goroutines and the Go runtime scheduler.
  • Channels and message passing mechanisms.
  • Select statements.
  • Concurrency patterns (fan-out, fan-in, worker pools).
  • Synchronization techniques (WaitGroups, Mutexes).

Using Standard and Common Packages

  • Working with the fmt, strings, time, and math packages.
  • File I/O using os and io/ioutil.
  • Building HTTP clients and servers with net/http.
  • JSON parsing and encoding.

Project Organization and Go Modules

  • Using Go modules for dependency management.
  • Organizing packages and file structures.
  • Building and installing Go applications.

Go Tooling

  • Using gofmt and go vet for code formatting and static analysis.
  • Running and writing unit tests with go test.
  • Benchmarking and profiling using go test -bench and pprof.
  • Debugging with Delve (optional).

Summary and Next Steps

  • Best practices for Go development.
  • Overview of Go web frameworks and the broader ecosystem.
  • Resources for continued learning.

Requirements

  • Prior knowledge of at least one programming language (e.g., C, Java, Python, PHP).
  • This course assumes familiarity with basic programming concepts such as loops and conditional statements; instead of explaining them from scratch, it focuses on how these constructs are implemented in Go.

Audience

  • Software developers already familiar with other programming languages.
  • Backend developers looking to transition to Go.
  • Engineers developing cloud-native or performance-critical applications.
 28 Hours

Number of participants


Price per participant

Testimonials (6)

Upcoming Courses

Related Categories