Get in Touch

Course Outline

Go in Context: A Comparison

  • Comparing Go with Java, Python, C, and other languages.
  • Understanding Go’s core design philosophies.
  • Identifying appropriate use cases (and limitations) for Go.

Core Language Concepts

  • Configuring a Go development environment.
  • Working with variables, constants, and data types.
  • Defining functions and handling multiple return values.
  • Implementing control structures: if, switch, and for loops.
  • Using arrays, slices, and maps.
  • Defining structs and utilizing embedding.
  • Implementing methods and interfaces.
  • Understanding and using pointers in Go.
  • Adopting idiomatic error handling patterns.

Concurrency in Go

  • Using goroutines and understanding the Go runtime scheduler.
  • Communicating via channels and message passing.
  • Utilizing select statements for multiplexing.
  • Applying concurrency patterns such as fan-out, fan-in, and worker pools.
  • Synchronizing execution with WaitGroups and Mutexes.

Using Standard and Common Packages

  • Utilizing built-in packages like fmt, strings, time, and math.
  • Performing file I/O operations using os and io/ioutil.
  • Developing HTTP clients and servers with net/http.
  • Parsing and encoding JSON data.

Project Organization and Go Modules

  • Managing dependencies with Go modules.
  • Organizing packages and file structures effectively.
  • Building and installing Go applications.

Go Tooling

  • Automating code formatting and linting with gofmt and go vet.
  • Executing and writing unit tests using go test.
  • Conducting benchmarking and profiling with go test -bench and pprof.
  • Debugging applications with Delve (optional topic).

Summary and Next Steps

  • Reviewing best practices for Go development.
  • Gaining an overview of the Go web framework ecosystem.
  • Accessing resources for continued learning.

Requirements

  • Prior knowledge of any programming language (such as C, Java, Python, PHP, etc.).
  • This course assumes familiarity with basic programming concepts like loops and conditionals; it focuses exclusively on how these constructs are implemented in Go.

Audience

  • Software developers who are already familiar with other programming languages.
  • Backend developers looking to transition into Go development.
  • Engineers building cloud-native applications or performance-critical systems.
 28 Hours

Testimonials (6)

Related Categories