Skip to content

Resources for learning Go (golang) #19

@coolaj86

Description

@coolaj86

We did what we always do when there’s a problem without a clear solution: we waited.
Waiting gives us more time to add experience and understanding of the problem and also more time to find a good solution. - Russ Cox

Learn the philosophy, earn the language.

  1. How to Think in Go ("Go Programming") (the original 2010 talk)
  2. Effective Go (short, 55 page book)
  3. Go by Example (for all your copy pasta needs)
  4. Introduction to Go Generics

Go Proverbs: Talk | Printable Poster | Website

Install Go

Uses the official Go tar package from golang.org, but also sets GOBIN, and doesn't change any system directories or permissions. TL;DR: Better than brew or the hacky pkg.

Cheat Sheets & Books

Selected Articles & Talks

How to Think in Go ("Go Programming"): https://www.youtube.com/watch?v=jgVhBThJdXc
(the original 2010 talk)

Selected Articles:

Google I/O

More on Software Engineering

Rob Pike Talks

Title Venue Link
Go Programming (2011) Google I/O https://www.youtube.com/watch?v=jgVhBThJdXc
Concurrency is not Parallelism (2015) Heroku https://www.youtube.com/watch?v=oV9rvDllKEg
Simplicity is Complicated (2015) dotGo https://www.youtube.com/watch?v=rFejpH_tAHM

And if you're going to write a [JavaScript] program, you wouldn't start with a C++ [or Rust] program and translate it line-by-line and expect to end up with a very well-written [JavaScript] program.

And concepts and the idiom in those languages are different enough that you just end up with a badly-written, non-idiomatic [JavaScript] program.

And the same is true of Go and other languages. If you start with the concepts and idioms from C++ or [Rust] or Python and you try to translate those line-by-line into [JavaScript], you'll just be frustrated with the experience. - Russ Cox, Go Programming, Google I/O

Really Good Extras

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions