This is a high level survey course for those who need an understanding of the Go programming language and concepts, but are not planning to do any Go programming themselves or who are novice programmers. This audience would include developers in other languages who need a high level under-standing of Go, testers who will be working with Go programmers, documentation specialists, team leads, integration engineers, and anyone evaluating the language. This course addresses the reality that not everyone who needs to understand Go is going to be a Go developer.
The lectures focus on the concepts used in Go programming, with easily understood examples illustrating the approaches and techniques that exemplify the “Golang” way of both solving programming problems and writing code. The hands on labs are intended to clarify and reinforce the concepts presented in the lectures, and are designed so that they can be accomplished by everyone including those with minimal coding skills.
Because Go is more than just a language but is an integrated development and software build system designed for modern large scale and continuous development projects, the course also explores the Go ecosystem including the Go command, build tools, utilities and standard libraries. These are all presented in the context of how the language developers intended them to be used, demonstrated with typical use cases.
Side by side comparisons of Go with other important languages (Java, C++, C, Python, etc) provide an evaluation of the relative strengths and weaknesses of Go and these other languages.
The purpose of the course is not to teach students to become Go programmers but to provide a high level overview of Go language structure, concepts, practices and the Go environment. The overall objective of the course is for students to be able to read a Go program listing and understand what the code is doing.
Before taking this course, students should have a basic understanding of programming concepts. Hands-on programming experience in a programming language is helpful but not essential.
2 Days/Lecture & Lab
This course is designed for those who need to understand how Go works, how to read Go code or otherwise get a fundamental understanding of Go but who do not need to master learning how to write Go code. The course is appropriate for testers, integrators, documentation specialists, team leads and others who will be working closely with Go developers or their Go code. The course is also appropriate for developers who are evaluating Go compared to other languages or for novice programmers.