An Introduction to Go

In this course, we are going to be taking a look at how you can get started with the Go programming language.

Course Goals

By the end of this course, you should have a stable base of knowledge that you’ll be able to take forward to build your own Go based programs.

Requirements:

The Go Language

Go was originally developed by Robert Griesemer, Rob Pike, and Ken Thompson whilst they were working at Google and was released to the world in November of 2009, a good 9 years ago now. By language standards, this makes Go a young adolescent just about to go off to University and face the big bad world.

The language was designed to be as simple as possible, and the language designers have been able to ward off pressure for new features in an attempt to keep the language as simple as possible. Keeping your systems as simple as possible can be a huge contributing factor to a projects overall success.

Why Go?

For me, Go seems like an obvious choice when it comes to developing things such as microservices and RESTful APIs. It’s a compiled language that is incredibly efficient at doing all manner of concurrent operations due to concurrency being baked into the language from the very start.

It’s Opinionated

Go, when compared to other languages, is also very opinionated in how things should be done, and whilst this may not sound good to some, in reality, it means that most Go programs follow a similar structure and coding conventions are mostly consistent across projects.

This is great news for developers looking to pick up the language as it means that once you have gotten used to the syntax and structure, you’ll be able to contribute to most, if not all, go-based projects relatively easily.

It’s Compiled and Efficient

The fact that you can compile your Go program down to a single binary executable that encompasses all of it’s dependencies within that executable makes it an absolute breeze when it comes to deploying into production.

Languages such as Python and Java require their respective runtimes to be available on the servers that will host your production applications, and as such, System Admins need to manage version updates, compatibility issues and more.

Go makes the lives of System Admins and DevOps professionals far easier.

Course Outline

In this course, we are going to be covering a wide number of topics in order to give you a handle of the overall language. We’ll start off by slowly building up a command-line interface tool that will allow you to do various things such as image resizing and as we are going along I’ll be introducing new concepts to expand upon what we’ve already built.

Supporting Me

All of this material is provided free of charge as I believe there should not be any barrier to entry when it comes to education. If you wish to support me, then you can do so by subscribing to my channel on YouTube - TutorialEdge.

Installation

In order to start writing your own Go based systems you’ll need to install it on your local machine: Download Go

Top Resources

If you are in need of some excellent books to cover the language in a greater depth then I highly recommend you check out my list of the top books for learning golang.


Tutorials


An Introduction to Go Logo
An Introduction to Go
4 Minutes

In this tutorial, we are going to take a gentle look at what go is, and how to get started programming your own go programs

Published: Sunday, Jul 8, 2018
An Introduction to Go Logo
Go Basic Types Tutorial
6 Minutes

In this tutorial, we are going to look at the various basic data types available in Go

Published: Saturday, Jul 14, 2018
An Introduction to Go Logo
Go Composite Types Tutorial
2 Minutes

In this tutorial, we are going to look at the various composite types available in Go

Published: Saturday, Jul 14, 2018
An Introduction to Go Logo
Go Functions Tutorial
3 Minutes

In this tutorial we'll look at what functions are in Golang and how you can use them in your programs

Published: Saturday, Jul 14, 2018
An Introduction to Go Logo
Building a Network Command Line Interface in Go
7 Minutes

In this tutorial, we are going to be building a very simple Command Line Interface or CLI in Go

Published: Sunday, Jul 29, 2018
An Introduction to Go Logo
An Intro to Go Dep
4 Minutes

In this tutorial, we are going to look at how you can get started using the go dep tool for your go projects.

Published: Sunday, Feb 18, 2018
An Introduction to Go Logo
Reading And Writing To Files in Go
3 Minutes

In this tutorial, we are going to look at how you can read and write files on your local filesystem using Go

Published: Saturday, Feb 17, 2018
An Introduction to Go Logo
Getting Started with Python and Dynamodb
0 Minutes

In this tutorial, we look at how you can use the Go ORM or GORM to easily manage interactions with the database

Published: Sunday, Feb 11, 2018
An Introduction to Go Logo
An Introduction to Benchmarking Your Go Programs
2 Minutes

In this tutorial, we look at how you can effectively benchmark your go program.

Published: Saturday, Feb 10, 2018
An Introduction to Go Logo
An Introduction to Testing in Go
4 Minutes

In this tutorial, we look at how properly implement a tests within your go based systems using the go test tool

Published: Friday, Feb 9, 2018
An Introduction to Go Logo
Golang ORM Tutorial
5 Minutes

In this tutorial, we look at how you can use the Go ORM or GORM to easily manage interactions with the database

Published: Wednesday, Feb 7, 2018
An Introduction to Go Logo
Working with Websockets and Socket.IO in Go - Tutorial
4 Minutes

In this tutorial we'll look at how you can implement websockets in Golang

Published: Wednesday, Aug 23, 2017
An Introduction to Go Logo
The Top Books For Learning Golang
3 Minutes

The definitive list of all the books you should buy if you want to master the art of programming Golang applications

Published: Monday, Jun 12, 2017
An Introduction to Go Logo
Consuming A RESTful API With Go
6 Minutes

This tutorial demonstrates how you can consume an already running RESTful API using Go

Published: Sunday, Apr 23, 2017
An Introduction to Go Logo
Reading in Console Input in Golang
3 Minutes

A quick and simple tutorial on how to read in console text input into your GoLang program. Excellent for simple shells and other command line driven tools.

Published: Saturday, Apr 15, 2017
An Introduction to Go Logo
Executing System Commands With Golang
2 Minutes

Executing system commands can be incredibly useful no matter what sort of software you are building,

Published: Saturday, Apr 15, 2017
An Introduction to Go Logo
Creating A Simple Web Server With Golang
4 Minutes

In this tutorial I'll be demonstrating how to create a very simple web server using Google's GoLang programming language.

Published: Saturday, Apr 15, 2017
An Introduction to Go Logo
Creating a RESTful API With Golang
7 Minutes

this tutorial demonstrates how you can create your own simple RESTful JSON api using Go(Lang)

Published: Saturday, Apr 15, 2017
An Introduction to Go Logo
Sending Email Using Go And Mailgun
1 Minutes

In this tutorial I'll be demonstrating how to send mail using Mailgun's API and Google's GoLang programming language.

Published: Saturday, Apr 15, 2017
An Introduction to Go Logo
Implementing the Bubble Sort Algorithm using Golang
2 Minutes

This tutorial demonstrates how one can implement their own version of bubble sort using the golang programming language

Published: Saturday, Apr 15, 2017
An Introduction to Go Logo
Writing A Twitter Bot in Golang
2 Minutes

In this tutorial I'll be demonstrating how you can implement a twitter bot using the go programming language

Published: Sunday, Apr 9, 2017
An Introduction to Go Logo
Golang MySQL Tutorial
4 Minutes

In this tutorial I'll be demonstrating how we can work with MySQL databases using Go.

Published: Sunday, Apr 9, 2017
An Introduction to Go Logo
Golang Integer String Conversion Tutorial
2 Minutes

In this tutorial we look at how we can convert String to integer and back again using the strconv golang package.

Published: Sunday, Apr 9, 2017
An Introduction to Go Logo
Parsing XML Files With Golang
4 Minutes

In this tutorial we examine how to read in files and unmarshal them using the xml package in go.

Published: Sunday, Apr 9, 2017
An Introduction to Go Logo
Parsing JSON files With Golang
5 Minutes

In this tutorial we examine the encoding/json go package and how to parse JSON files.

Published: Sunday, Apr 9, 2017
An Introduction to Go Logo
Concurrency With Golang Goroutines
3 Minutes

In this tutorial we examine how we can build concurrent highly performant go programs using goroutines.

Published: Sunday, Apr 9, 2017