2010-05-27 17:47:42 -06:00
<!-- title Go Resources -->
<!-- subtitle Go documents and learning materials -->
< h2 id = "about" > Recommendations< / h2 >
< p >
If you're new to Go, we recommend following the
< a href = "go_tutorial.html" > tutorial< / a > while consulting the
< a href = "go_spec.html" > language spec< / a > .
Then read < a href = "effective_go.html" > Effective Go< / a > , as it addresses many
common beginner questions.
< / p >
< h2 id = "reference" > Reference Materials< / h2 >
< p > Keep these under your pillow.< / p >
< h3 id = "pkg" > < a href = "/pkg/" > Package Documentation< / a > < / h3 >
< p >
The built-in documentation for the Go standard library.
< / p >
< h3 id = "pkg" > < a href = "/cmd/" > Command Documentation< / a > < / h3 >
< p >
The built-in documentation for the Go tools.
< / p >
< h3 id = "spec" > < a href = "go_spec.html" > Language Specification< / a > < / h3 >
< p >
The official Go Language specification.
< / p >
< h3 id = "go_mem" > < a href = "go_mem.html" > The Go Memory Model< / a > < / h3 >
< p >
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.
< / p >
< h2 id = "tutorials" > Tutorials< / h2 >
< 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 >
< 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 >
< 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-07-01 21:32:02 -06:00
< h2 id = "tutorials_nonenglish" > Tutorials in languages other than English< / h2 >
< h3 id = "tutorial_de" > < a href = "http://bitloeffel.de/DOC/golang/go_tutorial_20100613_de.html" > Eine Anleitung zum Programmieren in Go< / a > < / h3 >
< p >
A German translation of the Go Tutorial.
< / p >
2010-05-27 17:47:42 -06:00
< h2 id = "faqs" > Frequently Asked Questions< / h2 >
< h3 id = "go_faq" > < a href = "go_faq.html" > Go FAQ< / a > < / h3 >
< p >
Answers to common questions about Go.
< / p >
< h3 id = "go_lang_faq" > < a href = "go_lang_faq.html" > Language Design FAQ< / a > < / h3 >
< p >
Answers to common questions about the design decisions behind Go.
< / p >
< h3 id = "go_programming_faq" > < a href = "go_programming_faq.html" > Programming FAQ< / a > < / h3 >
< p >
Answers to common questions about programming with Go.
< / p >
2010-07-01 21:32:02 -06:00
< h2 id = "dev" > Development< / h2 >
2010-05-27 17:47:42 -06:00
< h3 id = "contibute" > < a href = "contribute.html" > Contributing to the Go project< / a > < / h3 >
< p >
How to contribute changes to the Go project.
< / p >
< h3 id = "roadmap" > < a href = "devel/roadmap.html" > Roadmap< / a > < / h3 >
< p >
Features and ideas being developed or discussed by the Go team.
< / p >
< h3 id = "release" > < a href = "devel/release.html" > Release History< / a > < / h3 >
< p >
A summarization of the changes between tagged releases of Go.
< / p >
< h2 id = "videos" > Videos< / h2 >
< 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 >
< / ul >
< 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-07-01 21:32:02 -06:00
< h2 id = "codewalks" > Codewalks< / h2 >
< h3 id = "codewalk_sharemem" > < a href = "codewalk/sharemem/" > Share Memory By Communicating< / a > < / h3 >
< p >
A demonstration of the practical use of goroutines and channels.
< / p >
< h3 id = "codewalk_codewalk" > < a href = "codewalk/codewalk/" > How to write a Codewalk< / a > < / h3 >
< p >
A self-describing Codewalk.
< / p >
2010-05-27 17:47:42 -06:00
< h2 id = "blogs" > Blog Posts< / h2 >
< p >
Articles about Go from external blogs.
< / p >
< h3 id = "blog_rsc" > < a href = "http://research.swtch.com/search/label/Go" > Go articles at research!rsc< / a > < / h3 >
< p >
Posts labelled 'Go' by Russ Cox, one of the core Go developers.
< / p >
< h3 id = "blog_iant" > < a href = "http://www.airs.com/blog/archives/category/programming" > Programming articles at Airs< / a > < / h3 >
< p >
Posts labelled 'Programming' by Ian Lance Taylor, one of the core Go developers.
< / p >