
Set up your go environment by installing go from go.dev, verify with go version, and configure Visual Studio Code with the go extension to run hello.go in a course folder.
Explore Go conditionals and loops, using if, else if, and, or, and boolean negation, and for loops with initialization, condition, and post statements, plus break and continue to control flow.
Discover how to declare and call functions in Go using the func keyword, with and without parameters, returning single or multiple values, and understanding pass-by-value.
Organize go projects by creating modules with go mod init and a module path such as example.com, then define a greeting package with exposed functions to print Hello.
Learn how to create and fill arrays in Go, access elements by index, and iterate safely with for loops and the range form.
Explore Go slices as a growable, same-type collection that expands with append, can be created with make for a fixed size, and iterated with range for printing.
Explore maps in Go: create maps with make or literals, use keys and values of consistent types, print maps, handle zero values and presence with ok, and delete keys.
Create a map with int keys and string values (at least three pairs) and print it; implement two functions, create and delete, to remove each key.
Learn to group values of multiple types with structs, access fields via the dot operator, and define custom types using type definitions, illustrated with a person example.
Define new types from an underlying type and attach methods to them, while preventing mixing with values of other types. Use pointer receivers to modify values within a defined type.
Master Go programming encapsulation by protecting struct fields and exploring exported versus unexported fields. Learn setter and getter methods with pointer receivers and embedding to share behavior across structs.
Learn how interfaces define a contract of methods that types must implement, illustrated by car and motorcycle steering. See how interfaces enable flexible parameters and type satisfaction in go.
Explore Go error handling with defer for cleanup, panic for severe failures, and recover to continue execution, leveraging deferred calls to ensure robust cleanup.
Build a Go command-line contacts manager with add, view, delete, and list features, featuring phone and email validation and a modular design with validation and contact components.
Learn how goroutines and channels enable concurrency and parallelism in go, using wait groups, defer, and a channel-based sum example that partitions work, gathers results, and prints the total.
Explore mutexes in Go to achieve mutual exclusion, prevent data races, and ensure data integrity by locking and unlocking shared resources across go routines.
Learn to write automated tests in Go using the Go testing package and Go test, including table-driven tests to validate function behavior across multiple inputs.
Learn to implement a concurrent sum of a slice of integers using go routines and a mutex, with a test validating correctness and thread safety across uneven workload distribution.
Develop a port scanning project using Go routines and channels to concurrently probe TCP ports, collect open ports, sort results, and print them, showcasing a worker pool and channel synchronization.
Discover how gRPC enables fast, scalable remote procedure calls using protocol buffers, with dot proto files generating client and server code in Go, and containerizing the app with Docker.
Explore gRPC basics in Master Go Programming by walking through the route guide proto, defining a service and four rpc types, and implementing server and client with protoc generated code.
Explore building a high-performance to-do list web app with the gin framework in go, including routes, handlers, models, and JSON-based APIs.
Finish a gin-based to-do list web application by testing create, update, list, and delete endpoints with payload.json and updated_payload.json. Use curl requests to localhost:8080/tasks and verify changes by id.
Welcome to Master Go Programming! This course is aimed at complete beginners to Go, as well as programmers looking to polish their Go coding skills.
What is Go?
Go is an open source programming language that makes it simple to build secure, scalable systems. The language was created by Google in 2007 and is now widely used by companies such as Uber, Netflix, Medium, Salesforce and Dropbox.
Why learn Go?
Go is a straightforward language to learn - with a similar structure to C, simple syntax, and a concise library
Go is all about performance and concurrency is prioritised - you can write code that can handle multiple tasks at once
Go is well supported and popular on cloud platforms and server-side applications - you can use it to create a full webapp or a tool to clean up incoming data for processing
Go is commonly used in DevOps, AI and data science and especially in infrastructure coding
In Master Go Programming you'll go from Beginner to Intermediate to Advanced, and at each stage of your learning you'll put your skills to the test with quizzes, practical assignments and hands-on project builds.
These include:
Assignment - Create a map (store data values in a way that provides fast lookups allows you to retrieve, update or delete data with the help of keys)
Assignment - Build a simple vehicle management system simulation!
Project - Build a contacts management system (add, view and delete users by name, phone number and email)
Project - Implement a simple port-scanning technique (to quickly assess your machine)
You'll also build and containerise a simple gRPC application in the penultimate course section.
With almost 6 hrs of teaching, this course aims to get you confident and coding in Go before you know it. Every course section also ends with a quiz, to help you grow in confidence and better get to grips with the language!
Discover Go today... and happy coding!