
Explore why Go is a modern language and learn core concepts from constants and variables to functions, structs, pointers, and interfaces, with concurrency and practical guidance in a desktop IDE.
Download project files here
Learn why Go is a compiled, cross-platform language with Go routines and channels for concurrency, strong typing, garbage collection, memory efficiency, developed at Google from 2007 released in 2012.
Explore golang.org’s interactive browser editor to learn go quickly, then switch to a desktop environment for compiling and exploring concurrency; discover go tour basics, packages, imports, and formatting.
Explore Go's import statements and the main function as the program's entry point, enabling execution from a single place. Learn about factored imports and external, with capitalization indicating access.
Explore the importance and benefits of using Go. Learn how to import different kinds of libraries into Go and how to use them.
Download Source Code here
Explore variable declarations in Go by using the var keyword, type inference, and various declaration styles. Learn zero values for strings, booleans, and integers and how initialization affects output.
Learn how to declare constants in Go and why they cannot be reassigned. See how Go infers constant types, uses the constant keyword, and the role of imports.
Explore Go's primitive types, including strings, integers, floats, and complex types, and learn how to cast between them, convert strings to numbers, and format outputs with printf.
Set up your local Go environment by downloading the Go binary for your platform and installing a lightweight Go IDE with plugins for building and running programs.
Learn how to define a dealership struct in Go with name and city fields, initialize and print instances, and observe default values and assigned cases that resemble a constructor.
Declare and use functions in Go to accept parameters, return multiple values, and calculate inventory and dealer names for a car lot.
Demonstrate variadic functions in Go by passing an undetermined number of values of the same type, then print each dealer name using range over the variadic parameter list.
Learn how to use the defer keyword in go to postpone cleanup actions, ensuring files close after operations and handling panics with a finally-like flow.
Explore Go pointers to pass by reference and mutate values within functions. Learn how ampersand and star work with primitives and structs, including memory addresses and when to use new.
Explore Go arithmetic operators by declaring integers, performing addition, subtraction, multiplication, and division, and using shorthand plus equals and remainder operators to compute totals.
Learn to implement Go conditionals to branch logic with if-else chains and switch cases, perform comparisons, manage default outcomes.
Explore arrays and slices in Go, learn fixed-size arrays and dynamic slices, initialize and access elements, use append and make, and perform slicing to extract ranges.
Explore maps in Go by building a car dealer inventory with string keys and integer values, adding, deleting, and retrieving entries, and using maps for town data.
Explore looping through arrays, slices, and dictionaries using for loops and range, printing each item. Understand index-based and range-based iterations, including key-value prints and avoiding infinite loops.
Download Source Code here
Learn object composition in Go by putting a vehicle struct into a car, exposing mpg and number of doors, and implementing a get mpg method to print values.
Declare a color type as a string, create color constants, and apply them to a car struct while managing initialization and printing mpg.
Learn how to implement constructor functions in Go to initialize default values for a car struct by returning a pointer with fields like mpg, doors, and color.
Explore polymorphism in Go by implementing a common manufacture interface with a get function for car and truck, then iterate a list and call given polymorphically.
Build a multi-file Go project by defining car and truck types in separate files, with package main, constants, and a vehicle helper interface to share behavior across modules.
Learn how to read a file, handle errors, convert between string and byte slices, and append content when writing to a file in Go.
Learn to implement encryption and decryption in Go by building a crypto.go module, using a cipher in CFB mode, with encrypt and decrypt functions handling text, key, and IV.
Build a simple Go web server with net/http, define a handler, and listen on localhost. Pull a page with http.Get and print the response body to verify the output.
Publish json from a Go web server using encoding/json and net/http, with a publish function and a handler that serves a payload envelope of cars and trucks for site consumption.
Develop a go json consumer that fetches from a local server using net/http, decodes the response with encoding/json into payload maps, and prints envelope data like trucks and doors.
Download source files here
Explore the differences between concurrency and parallelism in Go, and learn how Go routines and channels enable concurrent execution and potential parallelism depending on core availability.
Learn how to create Go routines to display a map of cars and print their data with formatted output, exploring concurrency and timing delays.
Learn to synchronize and coordinate go routines with channels, passing frame data through a multistage assembly line—frame, body, interior, and paint—using go channels and prints.
Explore dynamic stage management in Go using channels and goroutines to sequence assembly stages, build a generalized assembly stage function, and display progress with prints.
This course covers Go fundamentals from variables and loops to maps and functions, builds a web server, explores concurrency and channels, and guides you through the course project.
Google Go Programming for Beginners (Golang)
There are an endless number of programming languages out there, and new ones are added on an almost daily basis. To keep on top of the game and broaden your skill set, picking up a few of these new languages never hurts. Google Go (golang) is the programming language created by one of the largest technology names in the world – Google – so having Go in your arsenal is a surefire way to add to your coding credentials. This course will teach you everything you need to know about Go.
Hands on Programming Training
Everything you Need to Get up and Go!
This course has been designed for anyone who is familiar with coding and programming languages, but has not yet turned their hand to Google Go. It's also perfect for beginner programmers who want to diversify their skills by learning a new language. It's not intended for complete beginners learning their first language, although it does make an excellent follow-up course.
The course is broken into several different sections which become increasingly more advanced as you progress. Over 41 lectures and 4 hours, you will be continuously challenged but able to move at a comfortable pace (without becoming overwhelmed). It's all about hands on training, so expect to jump right into the action and get coding with real world golang examples.
After you've been introduced to the Go language, you'll get to grips with its individual features, functions, structures and interfaces. You'll then expand your knowledge to elements like polymorphism, encryption and concurrency (among others) before tackling the course project. On completion, you'll be well versed in all things Go and ready to either start using it in real world applications, or move on to another more advanced programming language.
Tools Used
LiteIDE: Lite IDE is the open source integrated development environment used in conjunction with Go to write code. If you are unable to use LiteIDE for this course, golang is a useful alternative.
Google Go: Go is an open source programming language developed by Google and used in many of their systems (as well as in other applications not associated with Google). It is compiled in the tradition of C and C++ and is relatively simple to pick up for those with programming experience.