Course Overview
TOPGo is designed to be concise, clean, and efficient. It is easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the feel of a dynamically typed, interpreted language.
In this very hands-on 5-day class, particularly relevant for system admins, network, cloud, or storage engineers, you ll learn how to use Go to craft enterprise solutions.
Scheduled Classes
TOPOutline
TOP- Up and Running with Go
- Install Go
- Lecture - Go IDEs
- The Go Playground
- Lecture - An Overview of Go
- Basics
- Practice with Variables
- Go Basic Types
- Go Constants
- Lecture - Formatters
- String Formatting
- Composite Types
- Lecture - Arrays
- Arrays
- Lecture - Slices
- Slices
- Go Struct
- Pointers
- Go Functions
- Lecture - init Function
- Interfaces
- Maps
- Idiomatic Go
- Looping
- Panic
- Defer
- Recover
- Go Methods
- Conditionals
- Switch Statement
- User Input
- Reading in Console Input
- Arguments
- CLI Flags
- Parsing and Generating
- Text Files
- JSON Files
- XML Files
- CSV Files
- YAML Files
- Go Templates
- Beyond Basics
- Executing system commands
- Generating Randomness
- Sorting
- Generating and Handling Errors
- Concurrency with Goroutines
- Channels
- Go Testing
- Network
- Consuming RESTful APIs
- HTTP GET requests
- HTTP POST requests
- Simple HTTP Servers
- Simple File Servers
- Sending Email SMTP
- Database
- SQL and SQL-like Databases
- RESTful interfaces and CRUD operations
- CI/CD
- Containerizing your Go App with Docker
- Life Cycling a Go App with GitLab CI
- Enterprise
- Interop with Prometheus
- Go and Apache Kafka
- Appendix
- Go Best Practices
- Go Certification Project
- Glossary
Prerequisites
TOPExperience programming in another language is a useful prerequisite for this course, but not required.
Who Should Attend
TOPThis course is an appropriate introduction to anyone looking to get started with Go, but especially:
- Software Developers
- System Administrators
- Network Engineers
- DevOps Operators