A3G0: Go Programming Essentials
About this Course
Go 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.
Be it system admins, network, cloud, or storage engineers, all lessons in our courseware are highly relevant for using Go to craft enterprise solutions.
Class is a combination of live instructor demo and hands-on labs.
Review this course online at https://www.alta3.com/courses/golang
Audience Profile
• Software Developers
• System Administrators
• Network Engineers
• DevOps Operators
At Course Completion
• Current Go Standard Library
• Relevant networking libraries
• Version control with git
• Git integration with popular SCM (GitHub)
• Executing system commands
• Parsing and building files
• Consuming RESTful APIs with Go
• Creating a RESTful API with Go
• Parsing JSON
• Parsing XML files
• Building a simple web app with Go
• Containerizing Go Apps with Docker
• Interaction with databases
• Project structure best practice techniques
Outline
Certification
• 💻 Lecture + Lab: Alta3 Research Go Certification
AI LLM Toolkit
• 💻 Lecture + Lab: Large Language Model toolkit for AI Solution Assistance
Software Control Management
• 💻 Lecture + Lab: SCM Option #1 - GitHub
• 💻 Lecture + Lab: SCM Option #2 - GitLab
Up and Running with Go
• 💻 Lecture + Lab: Getting Started with Go
• 💬 Lecture: Go IDEs
• 💻 Lecture + Lab: The Go Playground
• 💬 Lecture: An Overview of Go
• 💻 Lecture + Lab: An Overview of Go
Basics
• 💻 Lecture + Lab: Practice with Variables
• 💻 Lecture + Lab: Go Basic Types
• 💻 Lecture + Lab: Go Constants
• 💬 Lecture: String Formatting
• 💻 Lecture + Lab: String Formatting
Composite Types
• 💬 Lecture: Arrays
• 💻 Lecture + Lab: Go Arrays
• 💬 Lecture: Slice
• 💻 Lecture + Lab: Slices
• 💻 Lecture + Lab: Go Functions
• 💻 Lecture + Lab: Struct Type
• 💻 Lecture + Lab: Go Receiver Functions (Methods)
• 💻 Lecture + Lab: Pointers
• 💻 Lecture + Lab: Maps
• 💬 Lecture: init Function
• 💻 Lecture + Lab: Variadic Functions
Idiomatic Go
• 💻 Lecture + Lab: Conditionals
• 💻 Lecture + Lab: Switch and Case
• 💻 Lecture + Lab: Looping
• 💻 Lecture + Lab: Panic
• 💻 Lecture + Lab: Defer
• 💻 Lecture + Lab: Recover
User Input
• 💻 Lecture + Lab: Reading in Console Input
• 💻 Lecture + Lab: Arguments
• 💻 Lecture + Lab: Flags
• 💻 Lecture + Lab: Environmental Vars
Parsing and Generating
• 💻 Lecture + Lab: Text Files
• 💻 Lecture + Lab: JSON Files
• 💻 Lecture + Lab: XML Files
• 💻 Lecture + Lab: CSV Files
• 💻 Lecture + Lab: YAML Files
• 💻 Lecture + Lab: Go Templates
Beyond Basics
• 💻 Lecture + Lab: Executing system commands
• 💻 Lecture + Lab: Generating Randomness Go Guessing Game
• 💻 Lecture + Lab: Generating and Handling Errors
• 💻 Lecture + Lab: Interfaces
• 💻 Lecture + Lab: Sorting
• 💻 Lecture + Lab: Concurrency with Goroutines
• 💬 Lecture: Channels
• 💻 Lecture + Lab: Channels
• 💻 Lecture + Lab: Go Testing
• 💬 Lecture: Benchmark Testing
• 💬 Lecture: Test-Driven Development TDD
Network
• 💻 Lecture + Lab: Consuming RESTful APIs
• 💻 Lecture + Lab: HTTP GET requests
• 💻 Lecture + Lab: HTTP POST requests
• 💻 Lecture + Lab: Simple HTTP Servers
• 💻 Lecture + Lab: Simple File Servers
• 💻 Lecture + Lab: Sending Email SMTP
Database
• 💻 Lecture + Lab: SQL and SQL-like Databases
CI/CD
• 💻 Lecture + Lab: Containerizing your Go App with Docker
• 💻 Lecture + Lab: Life-cycling a GoLang Application with GitLab
• 💬 Lecture: Athens
Enterprise
• 💻 Lecture + Lab: Cobra-Cli
• 💻 Lecture + Lab: Go and Prometheus
• 💻 Lecture + Lab: Kafka Go Client
Prerequisites
• Recommended to have some experience in another language, although, not required