
This video will give you an overview about the course.
Developers who are curious about learning Go need reasons to support their feeling that learning Go is a worthwhile investment.
This video gives background information on Go to explain where it came from and how it is used today.
In order to work with Go, you need to have a development environment installed and validated.
This video walks through installing Go and Visual Studio Code for Mac and Windows and validates the environment.
Now that your Go environment is installed, you need to make sure that everything is working correctly.
This video uses Visual Studio Code to create a project, write a “Hello World” program, and run it.
Programmers new to Go won’t be familiar with the structure of a Go program.
This video shows a non-trivial Go program looks like, runs it, and then does a brief walkthrough of the code.
Go provides multiple ways to declare variables.
This video walks through the three different styles of variable declaration in Go.
Go provides a rich set of built-in numeric types that behave differently than numbers in other languages.
This video covers the primitive numeric types in Go, how to declare them, and how to convert between them.
Go has built-in string and array value types, and a character type called a rune. These are different than the implementations in other languages.
This video covers how to work with strings and arrays, and the relationship between strings, bytes, and runes.
The if/else statement is present in many languages, as is the for statement. Go provides a unique twist on both.
This video covers the if/else and for statements in Go, how they are both similar and different to the same statements in other languages.
The switch statement in Go is far more powerful than the similar statement in Java or C.
This video covers all of the features of the switch statement in Go.
Functions are central to Go.
This video shows the user how to declare and use functions in Go.
Beyond simple function declarations, there are many more things you can do with functions.
This video shows how functions are treated like values in Go, with functions declared inside of functions, closures, and passing them in and out of functions.
Go unabashedly embraces the pointers, while removing their most dangerous abilities.
This video walks through using pointers in Go, and how they can be used to simulate call-by-reference in other languages.
Go uses packages to organize source code and import statements to declare access to code in other packages.
This video covers how packages and import statements work and gives a quick walkthrough of the standard library.
Packages aren’t just for the standard library. Well-structured Go programs also use package for organization.
This video covers how to break up your program into different packages and how to import these packages.
Programmers can’t write all of the code by themselves. They also need to depend on code that’s written by other developers.
This video covers third-party packages in Go, how to use code created by other people, and how to make your code available to other people.
Programs can’t only be built out of simple types like ints and strings. You also need types that can contain other types.
This video covers slices and maps, two built-in generic types in Go that contain other types.
In addition to slices and maps, you also need structures to build data types with multiple different values that are associated with each other.
This video covers structs, Go’s way to allow users to define types that contain multiple different types.
One object-oriented programming concept that has been very useful is the method, which tightly couples data with the code that processes it.
This video covers Go’s support for methods and how it is both similar to and different from methods in other languages.
Abstracting interface from implementation is another useful object-oriented concept.
This video covers Go’s implementation of interfaces, which is very different from how interfaces work in most other languages.
Error handling is a core part of any program and different languages encourage different patterns for handling error conditions.
This video covers Go’s implementation of errors, which uses interfaces and multiple return values.
The rise of multi-core CPUs has made concurrency handling one of the most important parts of programming today.
This video provides an introduction to Go’s style of concurrency and covers the goroutine, a lightweight in-process concurrency abstraction.
Part of what makes Go’s concurrency model different is that it focuses on sending data between concurrent processes rather than trying to share data across them.
This video covers channels, Go’s method for sending data between Goroutines.
Most concurrency patterns require you to work with more than a single channel. Select statements are the key to properly handling multiple channels.
This video covers select, Go’s method for handling requests across multiple channels.
Go is a compiled, statically typed language in the tradition of Algol and C, with garbage collection, limited structural typing, memory safety features, and CSP-style concurrent programming features added.
More and more developers are interested in learning Go. It was the language of the year on TIOBE in 2016 and is at the top of the list of languages that developers want to learn next.
This course will teach you how to program in Go, building on your existing knowledge of programming languages. It starts by introducing familiar features before moving on to the more unique features that have earned Go its reputation as the language of the cloud. You will learn how to build a completely functional application server in under two dozen lines of code. Then, you'll master structuring and organizing your code, implementing the procedural control structures of every C-inspired language, and breaking your code into separate functions.
Towards the end of the course, you'll learn how to create your own packages and import them. You'll also explore Go's approach to error handling, Object-Oriented Programming, and concurrency. By the end of the course, you'll be ready to start writing your own Go projects.
This course uses Go 1.9, while not the latest version available, it provides relevant and informative content for legacy users of Go.
About the Author :
Jon Bodner has spent the past 20 years working in just about every corner of the software industry including on-line commerce, education, finance, government, healthcare, and internet infrastructure. He is a software engineer, lead developer, and architect and enjoys presenting and discussing open source technology trends, and the future of software engineering. Jon is currently a Lead Software Engineer at Capital One where, along with a co-worker, he recently open sourced checks-out, a fork of the LGTM project
Over the past two years, Jon has given several public talks on Go. At DevFest DC, he gave introductory and advanced talks on Go concurrency. At GopherCon, he introduced Proteus, a declarative, type-safe, runtime-generated DAO layer for Go and, at GothamGo, he spoke on closures and generics in Go.
Jon has also written a number of posts on Go for Capital One's DevExchange blog.
In addition to talking and writing about Go, Jon has also spoken at PyData DC on improving Data Science accuracy via software engineering, took part in a panel on open source in the enterprise at Atlanta Vision Talks, and spoke about Capital One's open source process at the Open Source Leadership Summit and OSCON.