Get in Touch

Course Outline

Go in Context: A Comparative Analysis

  • Comparison of Go with Java, Python, C, and other languages.
  • Core design philosophies underpinning Go.
  • Guidelines on when to use Go and when to consider alternatives.

Core Language Concepts

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

Concurrency in Go

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

Utilizing Standard and Common Packages

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

Project Organization and Go Modules

  • Managing dependencies using Go modules.
  • Strategies for organizing packages and file structures.
  • Building and installing Go applications.

Go Tooling

  • Code formatting and linting with gofmt and go vet.
  • Writing and running unit tests using go test.
  • Benchmarking and profiling using go test -bench and pprof.
  • Debugging techniques with Delve (optional topic).

Summary and Next Steps

  • Best practices for Go development.
  • Overview of the Go web frameworks and broader ecosystem.
  • Recommended resources for continued learning and professional growth.

Requirements

  • Prior knowledge of at least one programming language (such as C, Java, Python, PHP, etc.).
  • Note: This course does not cover basic programming concepts like loops or conditional statements; instead, it focuses on how these concepts are specifically implemented in Go.

Target Audience

  • Software developers who are already familiar with other programming languages.
  • Backend developers looking to transition their skills to Go.
  • Engineers developing cloud-native applications or systems where performance is critical.
 28 Hours

Number of participants


Price per participant

Testimonials (6)

Upcoming Courses

Related Categories