Click Here To Review The Course Material
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. Although it borrows ideas from existing languages, it has a unique and simple nature that make Go programs different in character from programs written in other languages. It balances the capabilities of a low-level systems language with some high-level features you see in modern languages today. This creates a programming environment that allows you to be incredibly productive, performant and fully in control; in Go, you can write less code and do so much more.
Hardcore Go is a 3 day class for any intermediate-level developer who has some experience with other programming languages and wants to learn Go. This class provides an intensive, comprehensive and idiomatic view of the language. We focus on both the specification and implementation of the language, including topics ranging from language syntax, Go’s type system, concurrency, channels, testing and more. We believe this class is perfect for anyone who wants a jump start in learning Go or who wants a more thorough understanding of the language and its internals.
- Language Syntax
- Arrays, Slices and Maps
- Methods, Interfaces and Embedding
- Packaging and Exporting
- Using Pointers
- Composition
- Error Handling
- Concurrency, Race Conditions and Channels
- Concurrency Patterns
- Testing and Debugging
- Standard Library
- Reflection
- HTTP
The material has been designed to be taught in a classroom environment. The code is well commented but missing some of the contextual concepts and ideas that will be covered in class. Students with the following minimal background will get the most out of the class.
- Studied CS in school or has a minimum of two years of experience programming full time professionally.
- Familiar with structural and object oriented programming styles.
- Has worked with arrays, lists, queues and stacks.
- Understands processes, threads and synchronization at a high level.
- Operating Systems
- Has worked with a command shell.
- Knows how to maneuver around the file system.
- Understands what environment variables are.
Install Go On Mac OS X:
http://www.goinggo.net/2013/06/installing-go-gocode-gdb-and-liteide.html
Install Go On Windows:
http://www.wadewegner.com/2014/12/easy-go-programming-setup-for-windows/
Starter Material:
Quick Tour
Learn More:
http://golang.org/
https://tour.golang.org/welcome/1
http://www.goinggo.net/
go get github.com/gobridge/gotraining
All material is licensed under the Apache License Version 2.0, January 2004.