See the Installing Go page golang.org for information on installing Go. This page has instructions for installing from a pre-compiled tarball on Linux, OSX, and FreeBSD. It also has links to an OSX package installer, an MSI installer for Windows, and a few other options.
If you're on Ubuntu, Jay R Wren's Go PPA may work for installing Go 1.4 on your system. There is also a project called godeb that lets you download the latest Go source and turn it into a Debian package. See http://blog.labix.org/2013/06/15/in-flight-deb-packages-of-go for details and links to download binaries.
Fedora 21 and 22 both include Go 1.4.
Go should work identically on Linux, OSX, and Windows systems.
The exercises repository uses symlinks in the answer directories to avoid having to copy some files around. However, you don't need to run or edit any code in the answer directories (they're for the instructor).
If you're using Emacs as your editor, I highly recommend installing go-mode for syntax highlighting. You can install this using ELPA. Add the http://melpa.milkbox.net/packages package repo in order to get the latest go-mode package.
I also suggest binding a key to execute
gofmt on the current buffer. Here's
a snippet that binds M-t:
(add-hook 'go-mode-hook (lambda () (local-set-key "\M-t" `gofmt)))
Here are some useful Vim tools for Go:
- https://github.com/fatih/vim-go - syntax highlighting, auto gofmt on save, and more
- https://github.com/scrooloose/syntasti - syntax checking as you type
- See https://github.com/golang/go/wiki/IDEsAndTextEditorPlugins for more
Sublime Text Integration
Check out the GoSublime plugin collection if you're using Sublime Text. It supports code completion, syntax checking as you type, quick formatting, and much more.
General Editor Recommendations
Setting up your editor to integrate with
go fmt and
go vet makes your Go
coding experience much better. You can have it run these checks on the
currently loaded file and/or run these checks every time you save your code.
You may also want to be able to run
golint easily, though I don't recommend
this as a default action for every save. It will often complain about issues
that you will not want to fix, especially when you write code for this class's
Getting Set Up for the Class
First, you'll want to check this repo out. Then run the appropriate binary for
your platform from the
setup directory. If you want to specify the
for the binary to use, simply set it on the command line:
Note that on OSX you must set the
GOPATH variable before running the
If you're on a platform which doesn't have a binary, all it does is the following:
- Makes a
$GOPATHroot directory under
https://github.com/autarch/intro-to-go-class-exercises.gitfrom that subdirectory
https://github.com/stretchr/testify.gitfrom that subdirectory
- Tells you to set your
$GOPATHenvironment variable to
$HOME/goif it's not already set
Note that you can use a different directory for your
$GOPATH if you prefer.
Make sure that you set the
GOPATH environment variable and add
$GOPATH/bin to your
PATH in your preferred shell's rc file(s) such as
Reading the Slides on Your System
Being able to browse the slides while doing the exercises will be very helpful, so I recommend getting this set up in advance.
First, you'll need to clone this repo. Then in the checkout run the following two commands:
git submodule init git submodule update
Next you'll need the present tool. After you have your
$GOPATH set up,
go get golang.org/x/tools/cmd/present
present binary will be installed as
$GOPATH/bin/present, which you
should have added to your
You can run
present from the checkout directory, which contains the
intro-to-go.slide file. Open up the URL that
present gives you and you'll
see a link to open the slides.