Go Programming

Request more details:

submit request
Description:
This Go (or Golang) Programming training course will give developers a solid working knowledge of the Go programming language, through useful & relevant hands-on exercises. Delegates will work in pairs where appropriate, and Best Practices will be observed throughout.
Prerequisites:
The Go Programming course assumes some programming experience, and any skills in Object Oriented languages (such as C, Java, C# or Python) will be a definite boon.
Learning Objectives:
Our Go Programming training course will give developers a solid working knowledge of the Go programming language, through useful & relevant hands-on exercises. Delegates will work in pairs where appropriate, and Best Practices will be observed throughout.
Who should attend:
Anyone who is looking to learn to program using the Go language, leveraging the rapid application development capabilities of Go, as well as the scalable, commercial-quality functional aspects of the language.
Go Basics:
Tackling a small, self-contained, straightforward problem or three to ensure setup and workflow.
Go Error Handling:
Many programming languages rely on exceptions for error handling. Go has eschewed these (except for the panic exception to terminate execution) in favour of error codes returned to callers. In this session we will ensure we get into the mind-set.
Data and Object-based Programming with Go:
Go does not have the concept of classes and inheritance, but instead allows methods to be added to a data structure to create an object-based way of working.
Go Interfaces and Polymorphism:
The Go approach to polymorphism centers on the use of interface and programming to interfaces.
Go Concurrency and Parallelism:
Arguably Go main USP (unique selling point), and perhaps its most important features, is its goroutines and channels. In this session we will tackle some classic problems to investigate a number of different solutions to problems, and end up showing that dataflow is generally the architecture for solving most problems.
Go Networking:
Go is currently getting most traction in problems relating to networking. In this session we will find out why. Node, Vert.x, Tornado, etc. really just cannot compete with Go for easy to create, maintainable, and supremely performant network-focused systems.
Go Packaging and Distribution:
Go distributions come with a large number of very high quality bits and pieces allowing us to create a very large number of applications. It is not however a batteries included distribution, there are a large number of very high quality packages not part of the distribution but they are part of the overall milieu. In this session we will tackle some problems for which we will need extra bits and pieces. In turn we will create something that could be useful to others.
Mini-project:
So far the problems tackled will have been relatively small. Now is the time to get bigger. In this session, we will create full applications, and show that this is straightforward and quick with the Go infrastructure, workflow and language.
Closing:
Not really to say goodbye, more au revoir. This workshop is a springboard for using Go for applications and infrastructure, learning more Go, and being welcomed by the world-wide Go community.