An introduction to Go