Go Session #4 : Programming in Go
6:15-8:15 Instruction and Programming
Josh Ellithorpe from Apcera will be leading this Go Session and taking you through some basic Go programming.
Please have Go installed and running per the requirements below.
Instructor: Josh Ellithorpe
Josh Ellithorpe is an experienced developer who likes Go and terminal prompts. More on his background and work can be found here.
You'll see some basic apps that are bundled with Go, walk through the build chain, and run through how to get documentation from godoc.
You'll add a small method to the sample app and write and run a test file. This will form the basis for writing tests for future lessons.
Basics of Go
This part of the exercise will go over the basics of the Go language. You'll find out what you need to know before jumping into the standard library. We'll go over the following and then cover the standard library and then get to some programming.
* Types (Numbers, Strings, Booleans)
* Variables (Scope, Multiple Assignment, Constants)
* Control Structures (For, If, Switch)
* Arrays, Slices, Maps* Errors
* Functions (Basic Syntax, Variadic, Closures, Defer, Panic, Recover)
* Pointers* Structs/Interfaces
* Concurency (Goroutines, Channels)
Once you have a basics, we'll provide some exercises to put these to good use. You'll be encouraged to work within Floobits to solve small challenges relating to one or more of the following packages.
• Solid programming experience in a major language
• Basic experience running Go programs
• Comfortable working on the command line
1. Required System Setup
* Go 1.2/1.3 (link)
* Text Editor with Go support.
• Sublime Text with GoSublime (link)
• vim (link)
• Emacs (link)
• LiteIDE (link)
* Git (link) + Github account
* Floobits to work on shared documents (link)
2. Compiling and Running a Go Program
Attendees should be able to compile and run basic Go programs in advance of attending. We'll run a simple Hello World example at the onset and it's expected that it'll run on your machine. The point is to get any installation problems out of the way so we can get to the instruction and the exercises. This exercise will also serve as the start of the live document we'll work on via Floobits.
About the Event Sponsors/Hosts
Apcera is a managed service technology company that helps organizations successfully take advantage of today's groundbreaking technology. Continuum by Apcera is an Agile Policy Platform offering technology management smarter, more efficient controls that align development and operations to go faster, safely. We're now hiring! (www.apcera.com)
Iron.io is the maker of IronMQ, a highly available message queue, and IronWorker, an elastic task queue/worker service. Iron.io's services are designed for doing things asynchronously and operating at scale. (www.iron.io)