Course Outline
Contextual Comparison: Go in the Programming Landscape
- Comparative Analysis: Go vs Java, Python, C, and Other Languages
- Fundamental Design Philosophies of Go
- Appropriate Use Cases for Go
Core Concepts of the Go Language
- Establishing a Go Development Environment for Government
- Variables, Constants, and Data Types in Go
- Functions and Multiple Return Values
- Control Structures: if, switch, and for Loops
- Arrays, Slices, and Maps in Go
- Structs and Embedding Mechanisms
- Methods and Interfaces in the Go Language
- Understanding Pointers in Go for Government Applications
- Error Handling Best Practices and Patterns
Concurrency Capabilities in Go
- Goroutines and the Go Runtime Scheduler
- Channels for Message Passing
- Select Statements for Concurrent Control Flow
- Concurrency Patterns: Fan-Out, Fan-In, and Worker Pools
- Synchronization Techniques: WaitGroups and Mutexes
Utilizing Standard and Common Packages in Go for Government
- Working with fmt, strings, time, and math Packages
- File I/O Operations Using os and io/ioutil
- HTTP Clients and Servers with net/http
- JSON Parsing and Encoding in Go for Government Applications
Project Organization and Dependency Management with Go Modules
- Using Go Modules for Effective Dependency Management
- Organizing Packages and Files in a Go Project
- Building and Installing Go Applications for Government Use
Go Tooling for Development Efficiency
- Using gofmt and go vet for Code Formatting and Linting
- Running and Writing Unit Tests with go test
- Benchmarking and Profiling with go test -bench and pprof
- Optional: Debugging Techniques with Delve
Summary and Next Steps for Government Developers
- Best Practices for Go Development in the Public Sector
- Overview of Go Web Frameworks and Ecosystem
- Resources for Continued Learning and Professional Development
Requirements
- Knowledge of any programming language (e.g., C, Java, Python, PHP, etc.).
- This course does not cover basic concepts such as loops or if-statements; it focuses on their implementation in Go.
Audience for Government
- Software developers familiar with other programming languages
- Backend developers transitioning to Go
- Engineers working on cloud-native or performance-critical applications
Testimonials (6)
The practical exercises which were really entertaining.
Jurgen Cruz - Focus Engineering SRL
Course - Go Programming Language for Programmers
The Trainer knew niche language concepts and had a historical perspective on how the language has changed since its original release date.
Brandon - DuosTechnologies, Inc.
Course - Go Programming Language for Programmers
The level of detail into the mechanics of why and how something worked was helpful. I also really appreciated having the repo to pull at the day so I could focus on watching what he was explaining.
Sara - DuosTechnologies, Inc.
Course - Go Programming Language for Programmers
The didactic way of presenting
Ivo Abdul - CEDSIF Ministry of Finance
Course - Go Programming Language for Programmers
Concepts of range, slice, swaps,...
Edmundo Manave - CEDSIF Ministry of Finance
Course - Go Programming Language for Programmers
The simplicity of language and the examples given by the teacher