2010-09-15 22:01:02 -06:00
<!-- title Documentation -->
2010-05-27 17:47:42 -06:00
2010-09-15 22:01:02 -06:00
< div class = "left-column" >
2010-05-27 17:47:42 -06:00
2010-09-15 22:01:02 -06:00
< h2 id = "learning" > Learning Go< / h2 >
2010-05-27 17:47:42 -06:00
< p >
2010-09-15 22:01:02 -06:00
If you're new to Go, we recommend you work through the
< a href = "go_tutorial.html" > tutorial< / a > . The
< a href = "go_spec.html" > language specfication< / a > has all the details should
you want to explore.
2010-05-27 17:47:42 -06:00
< / p >
< p >
2010-09-15 22:01:02 -06:00
Once you've learned a little about the language,
< a href = "effective_go.html" > Effective Go< / a > will help you learn the style and
idioms of programming in Go.
2010-05-27 17:47:42 -06:00
< / p >
< h3 id = "orig_tutorial" > < a href = "go_tutorial.html" > A Tutorial for the Go Programming Language< / a > < / h3 >
< p >
The first tutorial. An introductory text that touches upon several core
concepts: syntax, types, allocation, constants, I/O, sorting, printing,
goroutines, and channels.
< / p >
< h3 id = "effective_go" > < a href = "effective_go.html" > Effective Go< / a > < / h3 >
< p >
A document that gives tips for writing clear, idiomatic Go code.
A must read for any new Go programmer. It augments the tutorial and
the language spec, both of which should be read first.
< / p >
2010-09-29 00:52:22 -06:00
< h3 id = "go_faq" > < a href = "go_faq.html" > Frequently Asked Questions (FAQ)< / a > < / h3 >
< p >
Answers to common questions about Go.
< / p >
2010-09-15 22:01:02 -06:00
< h3 id = "code" > < a href = "code.html" > How to write Go code< / a > < / h3 >
< p >
How to write a new package and how to test code.
< / p >
2010-05-27 17:47:42 -06:00
< h3 id = "codelab_wiki" > < a href = "codelab/wiki/" > Codelab: Writing Web Applications< / a > < / h3 >
< p >
This codelab takes the reader through the creation of a simple wiki web
application. It touches on structs, methods, file I/O, http, regular expressions,
and closures.
< / p >
< h3 id = "go_for_cpp_programmers" > < a href = "go_for_cpp_programmers.html" > Go for C++ Programmers< / a > < / h3 >
< p >
An introduction to Go for C++ programmers.
< / p >
2010-09-15 22:01:02 -06:00
< h2 id = "tutorials_nonenglish" > Non-English Documentation< / h2 >
2010-07-01 21:32:02 -06:00
2010-09-29 21:43:09 -06:00
< h3 id = "docs_cn" > Chinese — 中文< / h3 >
2010-07-01 21:32:02 -06:00
2010-09-29 21:43:09 -06:00
< ul >
< li > < a href = "http://code.google.com/p/golang-china/" > golang-china< / a > - a broad range of Go documentation.< / li >
< li > < a href = "http://code.google.com/p/ac-me/downloads/detail?name=fango.pdf" > Effective Go and Tutorial< / a > < / li >
< / ul >
2010-08-25 18:17:14 -06:00
2010-09-29 21:43:09 -06:00
< h3 id = "docs_de" > German — Deutsch< / h3 >
2010-08-25 18:17:14 -06:00
2010-09-29 21:43:09 -06:00
< ul >
< li > < a href = "http://bitloeffel.de/DOC/golang/go_tutorial_de.html" > Eine Anleitung zum Programmieren in Go< / a > - the Go Tutorial.< / li >
< li > < a href = "http://bitloeffel.de/DOC/golang/effective_go_de.html" > Wirkungsvoll Go programmieren< / a > - Effective Go.< / li >
< li > < a href = "http://bitloeffel.de/DOC/golang/code_de.html" > Wie man Go-Kode schreibt< / a > - How to Write Go Code.< / li >
< / ul >
< h3 id = "docs_jp" > Japanese — 日本語< / h3 >
< ul >
< li > < a href = "http://golang.jp/" > golang.jp< / a > < / h3 > - Go documentation and news.
< / ul >
2010-05-27 17:47:42 -06:00
2010-09-15 22:01:02 -06:00
< / div >
2010-05-27 17:47:42 -06:00
2010-09-15 22:01:02 -06:00
< div class = "right-column" >
< h2 id = "References" > References< / h2 >
< p > Keep these under your pillow.< / p >
< h3 id = "pkg" > < a href = "/pkg/" > Package Documentation< / a > < / h3 >
2010-05-27 17:47:42 -06:00
< p >
2010-09-15 22:01:02 -06:00
The built-in documentation for the Go standard library.
2010-05-27 17:47:42 -06:00
< / p >
2010-09-15 22:01:02 -06:00
< h3 id = "cmd" > < a href = "/cmd/" > Command Documentation< / a > < / h3 >
2010-05-27 17:47:42 -06:00
< p >
2010-09-15 22:01:02 -06:00
The built-in documentation for the Go tools.
2010-05-27 17:47:42 -06:00
< / p >
2010-09-15 22:01:02 -06:00
< h3 id = "spec" > < a href = "go_spec.html" > Language Specification< / a > < / h3 >
2010-05-27 17:47:42 -06:00
< p >
2010-09-15 22:01:02 -06:00
The official Go Language specification.
2010-05-27 17:47:42 -06:00
< / p >
2010-09-15 22:01:02 -06:00
< h3 id = "go_mem" > < a href = "go_mem.html" > The Go Memory Model< / a > < / h3 >
2010-05-27 17:47:42 -06:00
< p >
2010-09-15 22:01:02 -06:00
A document that specifies the conditions under which reads of a variable in
one goroutine can be guaranteed to observe values produced by writes to the
same variable in a different goroutine.
2010-05-27 17:47:42 -06:00
< / p >
2010-07-29 18:36:13 -06:00
< h2 id = "videos_talks" > Videos and Talks< / h2 >
< h3 id = "go_programming" > < a href = "http://www.youtube.com/watch?v=jgVhBThJdXc" > Go Programming< / a > < / h3 >
< p >
A presentation delivered by Rob Pike and Russ Cox at Google I/O 2010. It
illustrates how programming in Go differs from other languages through a set of
examples demonstrating features particular to Go. These include concurrency,
embedded types, methods on any type, and program construction using interfaces.
< / p >
2010-05-27 17:47:42 -06:00
< h3 id = "techtalk" > < a href = "http://www.youtube.com/watch?v=rKnDgT73v8s" > The Go Tech Talk< / a > < / h3 >
< p >
An hour-long talk delivered by Rob Pike at Google in October 2009.
The language's first public introduction. (See the < a href = "talks/go_talk-20091030.pdf" > slides in PDF format< / a > .) The language has changed since it was made,
but it's still a good introduction.
< / p >
< h3 id = "gocoding_channel" > < a href = "http://www.youtube.com/gocoding" > gocoding YouTube Channel< / a > < / h3 >
< p >
A YouTube channel that includes screencasts and other Go-related videos:
< / p >
< ul >
< li > < a href = "http://www.youtube.com/gocoding#p/u/0/jDWBJOXs_iI" > Screencast: Writing Go Packages< / a > - writing, building, and distributing Go packages.< / li >
2010-07-29 18:36:13 -06:00
< li > < a href = "http://www.youtube.com/watch?v=3brH0zOqm0w" > Screencast: Testing Go Packages< / a > - writing unit tests and benchmarking Go packages.< / li >
2010-05-27 17:47:42 -06:00
< / ul >
2010-07-29 18:36:13 -06:00
< h3 id = "oscon_go" > < a href = "http://www.oscon.com/oscon2010/public/schedule/detail/14760" > Another Go at Language Design< / a > < / h3 >
< p >
A tour, with some background, of the major features of Go, intended for
an audience new to the language. The talk was presented at OSCON 2010.
See the < a href = "http://assets.en.oreilly.com/1/event/45/Another%20Go%20at%20Language%20Design%20Presentation.pdf" > presentation slides< / a > .
< / p >
< h3 id = "oscon_go" > < a href = "http://www.oscon.com/oscon2010/public/schedule/detail/15464" > Go Emerging Languages Conference Talk< / a > < / h3 >
< p >
Rob Pike's Emerging Languages Conference presentation delivered in July 2010. See the < a href = "http://assets.en.oreilly.com/1/event/45/Go%20Presentation.pdf" > presentation slides< / a > . Abstract:
< / p >
< p > < i >
Go’ s approach to concurrency differs from that of many languages, even those
(such as Erlang) that make concurrency central, yet it has deep roots. The path
from Hoare’ s 1978 paper to Go provides insight into how and why Go works as it
does.
< / i > < / p >
2010-05-27 17:47:42 -06:00
< h3 id = "promo_video" > < a href = "http://www.youtube.com/watch?v=wwoWei-GAPo" > The Go Promo Video< / a > < / h3 >
< p >
A short promotional video featuring Russ Cox demonstrating Go's fast compiler.
< / p >
2010-09-15 22:01:02 -06:00
< / div >
2010-05-27 17:47:42 -06:00
2010-09-15 22:01:02 -06:00
< div class = "end-columns" > < / div >