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.
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.
- You will require a code editor - I highly recommend Visual Studio Code as it is the editor I’ll be using for the majority of this course.
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.
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.
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.
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.
- Lesson 1 - Installing Go and Building your Go Application
- Lesson 2 - Basic Data Types Go
- Lesson 3 - Complex Data Types in Go
- Lesson 4 - Variables in Go
- Lesson 5 - Methods in Go
- Lesson 6 - Functions in Go
- Lesson 7 - Interfaces in Go
- Lesson 8 - Packages in Go
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.
In order to start writing your own Go based systems you’ll need to install it on your local machine: Download Go
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.
An Introduction to Go4 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 programsPublished: Sunday, Jul 8, 2018
Go Basic Types Tutorial6 Minutes
In this tutorial, we are going to look at the various basic data types available in GoPublished: Saturday, Jul 14, 2018
Go Composite Types Tutorial2 Minutes
In this tutorial, we are going to look at the various composite types available in GoPublished: Saturday, Jul 14, 2018
Go Functions Tutorial3 Minutes
In this tutorial we'll look at what functions are in Golang and how you can use them in your programsPublished: Saturday, Jul 14, 2018
Building a Network Command Line Interface in Go7 Minutes
In this tutorial, we are going to be building a very simple Command Line Interface or CLI in GoPublished: Sunday, Jul 29, 2018
An Intro to Go Dep4 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
Reading And Writing To Files in Go3 Minutes
In this tutorial, we are going to look at how you can read and write files on your local filesystem using GoPublished: Saturday, Feb 17, 2018
Getting Started with Python and Dynamodb0 Minutes
In this tutorial, we look at how you can use the Go ORM or GORM to easily manage interactions with the databasePublished: Sunday, Feb 11, 2018
An Introduction to Benchmarking Your Go Programs2 Minutes
In this tutorial, we look at how you can effectively benchmark your go program.Published: Saturday, Feb 10, 2018
An Introduction to Testing in Go4 Minutes
In this tutorial, we look at how properly implement a tests within your go based systems using the go test toolPublished: Friday, Feb 9, 2018
Golang ORM Tutorial5 Minutes
In this tutorial, we look at how you can use the Go ORM or GORM to easily manage interactions with the databasePublished: Wednesday, Feb 7, 2018
Working with Websockets and Socket.IO in Go - Tutorial4 Minutes
In this tutorial we'll look at how you can implement websockets in GolangPublished: Wednesday, Aug 23, 2017
The Top Books For Learning Golang3 Minutes
The definitive list of all the books you should buy if you want to master the art of programming Golang applicationsPublished: Monday, Jun 12, 2017
Consuming A RESTful API With Go6 Minutes
This tutorial demonstrates how you can consume an already running RESTful API using GoPublished: Sunday, Apr 23, 2017
Reading in Console Input in Golang3 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
Executing System Commands With Golang2 Minutes
Executing system commands can be incredibly useful no matter what sort of software you are building,Published: Saturday, Apr 15, 2017
Creating A Simple Web Server With Golang4 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
Creating a RESTful API With Golang7 Minutes
this tutorial demonstrates how you can create your own simple RESTful JSON api using Go(Lang)Published: Saturday, Apr 15, 2017
Sending Email Using Go And Mailgun1 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
Implementing the Bubble Sort Algorithm using Golang2 Minutes
This tutorial demonstrates how one can implement their own version of bubble sort using the golang programming languagePublished: Saturday, Apr 15, 2017
Writing A Twitter Bot in Golang2 Minutes
In this tutorial I'll be demonstrating how you can implement a twitter bot using the go programming languagePublished: Sunday, Apr 9, 2017
Golang MySQL Tutorial4 Minutes
In this tutorial I'll be demonstrating how we can work with MySQL databases using Go.Published: Sunday, Apr 9, 2017
Golang Integer String Conversion Tutorial2 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
Parsing XML Files With Golang4 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
Parsing JSON files With Golang5 Minutes
In this tutorial we examine the encoding/json go package and how to parse JSON files.Published: Sunday, Apr 9, 2017
Concurrency With Golang Goroutines3 Minutes
In this tutorial we examine how we can build concurrent highly performant go programs using goroutines.Published: Sunday, Apr 9, 2017