Buy new:
USD43.05USD43.05
USD 15.41 delivery Thursday, 15 January
Dispatches from: Amazon Sold by: Amazon
Save with Used - Very Good
USD28.49USD28.49
USD 10.27 delivery 9 - 16 January
Dispatches from: World of Books Ltd Sold by: World of Books Ltd
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet or computer – no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Image Unavailable
Colour:
-
-
-
- To view this video download Flash Player
-
-
-
VIDEO -
Follow the authors
OK
Go Programming Language, The (Addison-Wesley Professional Computing Series) Paperback – 26 Oct. 2015
Purchase options and add-ons
The authoritative resource to writing clear and idiomatic Go to solve real-world problems
Google’s Go team member Alan A. A. Donovan and Brian Kernighan, co-author of The C Programming Language, provide hundreds of interesting and practical examples of well-written Go code to help programmers learn this flexible, and fast, language. It is designed to get you started programming with Go right away and then to progress on to more advanced topics.
- Basic components : an opening tutorial provides information and examples to get you off the ground and doing useful things as quickly as possible. This includes:
- command-line arguments
- gifs
- URLs
- web servers
- Program structure : simple examples cover the basic structural elements of a Go program without getting sidetracked by complicated algorithms or data structures.
- Data types: Go offers a variety of ways to organize data, with a spectrum of data types that at one end match the features of the hardware and at the other end provide what programmers need to conveniently represent complicated data structures.
- Composite types :
- arrays
- slices
- maps
- structs
- JSON
- test and HTML templates
- Functions : break a big job into smaller pieces that might well be written by different people separated by both time and space.
- Methods :
- declarations
- with a pointer receiver
- struct embedding
- values and expressions
- Interfaces : write functions that are more flexible and adaptable because they are not tied to the details of one particular implementation.
- Concurrent programming : Goroutines, channels, and with shared variables.
- Packages : use existing packages and create new ones.
- Automated testing : write small programs that check the code.
- Reflection features : update variables and inspect their values at run time.
- Low-level programming : step outside the usual rules to achieve the highest possible performance, interoperate with libraries written in other languages, or implement a function that cannot be expressed in pure Go.
Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download and may be conveniently fetched, built, and installed using the go get command.
- ISBN-109780134190440
- ISBN-13978-0134190440
- Edition1st
- PublisherAddison-Wesley Professional
- Publication date26 Oct. 2015
- LanguageEnglish
- Dimensions23.11 x 18.54 x 2.54 cm
- Print length400 pages
Frequently bought together

More items to explore
Structure & Interpretation of Computer Programs 2ePaperbackUSD 17.25 deliveryGet it 7 – 17 JulUsually dispatched within 6 to 7 months
From the brand
-
The Clean Code Series
-
Absolute Beginner's Guides
-
The Learn Enough Series
-
The From Scratch Series
-
MS Business Skills Series
-
The Adobe Classroom Series
-
Cisco's CCNA Series
Product description
Review
From the Back Cover
About the Author
Alan A. A. Donovan is a member of Google’s Go team in New York. He holds computer science degrees from Cambridge and MIT and has been programming in industry since 1996. Since 2005, he has worked at Google on infrastructure projects and was the co-designer of its proprietary build system, Blaze. He has built many libraries and tools for static analysis of Go programs, including oracle, godoc -analysis, eg, and gorename.
Brian W. Kernighan is a professor in the Computer Science Department at Princeton University. He was a member of technical staff in the Computing Science Research Center at Bell Labs from 1969 until 2000, where he worked on languages and tools for Unix. He is the co-author of several books, including The C Programming Language, Second Edition (Prentice Hall, 1988), and The Practice of Programming (Addison-Wesley, 1999).
Product details
- ASIN : 0134190440
- Publisher : Addison-Wesley Professional
- Publication date : 26 Oct. 2015
- Edition : 1st
- Language : English
- Print length : 400 pages
- ISBN-10 : 9780134190440
- ISBN-13 : 978-0134190440
- Item weight : 671 g
- Dimensions : 23.11 x 18.54 x 2.54 cm
- Part of series : Addison-Wesley Professional Computing
- Best Sellers Rank: 238,918 in Books (See Top 100 in Books)
- 141 in Programming Languages & Tools
- 271 in Introduction to Programming
- Customer reviews:
About the authors

Discover more of the author’s books, see similar authors, read book recommendations and more.

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings, help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyses reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Generated from the text of customer reviewsSelect to learn more
Top reviews from United Kingdom
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United Kingdom on 8 March 2021Format: PaperbackVerified PurchaseOver the past years I've read many programming books. I must admin that this one really stands out!
After completing the book you will have good understand of go language. However, note that this book will not cover all subject in depth so more advanced go programmers may not find this book very interesting.
Examples are not trivial but rather interesting ones. Apart from letting you understand go better, they also give you interesting programming challenges, which could be used in other programming languages.
I was really enjoying this book and highly recommend that book to any one who wants to start his adventure with go.
- Reviewed in the United Kingdom on 10 August 2023Format: PaperbackVerified PurchaseSome of the chapters may be out-dated (I'm currently in chapter 12), but overall - the book has a good structure, useful examples, mathematical style of how it's written (reminds me of my uni days). I recommend.
- Reviewed in the United Kingdom on 17 July 2025Format: PaperbackVerified Purchasei will agree that the content of the book is well written, there is a caveat in that this book was first released in 2015 and then reprinted in 2024 which is what this version of the book is.
this means it was written before the landmark Golang release 1.18 in 2022 meaning that core features like Generics and fuzzing etc are completely missing, so if like me you are buying this as a physical reference book that you can 'annotate' beware.
this may be a moot point though as some may argue (like by my colleague) that generics aren't in the realm of the beginner programmer to whom this book is maybe aimed, i still feel it would be disingenuous to promote it without pointing out these flaws
this is obviously a gripe with the marketing of the book within Amazon itself (or maybe lazyness on my behalf for not checking the original release date) that the book itslef
- Reviewed in the United Kingdom on 9 June 2019Format: PaperbackVerified PurchaseIf you are coming from another language and need a rapid coverage of the basics, this is probably not the best book to start with. You are better off using one of the numerous online resources for that. I personally found the free 'The Little Go Book' as a perfect fast-paced first scan of the language .
This book is best as your second (or your first, if you are not in a great deal of a hurry), and more thorough coverage of the language, and as a ready reference while you tackle projects.
If I had any complaints, it would be a wish that they used bigger print in the paperback ... and that an eBook version is made available and discounted for owners of the paperback.
Highly recommended.
- Reviewed in the United Kingdom on 31 December 2019Format: PaperbackVerified PurchaseThis is a fantastic book to start learning Go. It explains all necessary concepts very clearly with many examples.
The examples used throughout the book are not very different from other Go books, but the authors incrementally build on these examples to introduce or showcase new concepts.
As a minor downside of the book, (personal opinion) I would prefer the authors to provide much more clear and understandable explanations of some examples, however they have done a great job to provide avery reasonable flow.
- Reviewed in the United Kingdom on 10 December 2018Format: PaperbackVerified PurchaseOver the years I've read many programming books and this one I have to say is a standout book! The exercises, while sometimes pretty in-depth, are varied and hugely interesting. The content of the book is relevant, elegantly put forward, and full of detail. I'm enjoying this book so much I'm going through it page by page and doing all of the exercises.
Maybe some will want a cheat-sheet type of book containing less detail but this book will actually help you grok Go. The authors are also approachable and helpful. Highly recommended!
- Reviewed in the United Kingdom on 19 February 2018Format: Kindle EditionVerified PurchaseI have found that this is the best book that I have (and I have a few) on the subject of the Go programming language. The sections are very detailed but not so much that you loose interest in the subject matter. I would say that the book is very well written and balanced in explaining the concepts and getting you to produce real world code.
Excellent book would recommend to anyone looking at learning Go.
Top reviews from other countries
JohnReviewed in Australia on 24 March 20245.0 out of 5 stars Clear exposition of the Language
Format: PaperbackVerified PurchaseA very clearly written book with good examples explaining the language, emphasizing the simplicity and utility of the language. Only thing would have liked is a second edition with Generics added !
-
Alexandre EstanislauReviewed in Brazil on 13 September 20205.0 out of 5 stars Excelente
Format: Kindle EditionVerified PurchaseExcelente livro, traz explicacões claras sobre a linguagem. Não conhecia Go e tive de aprender para uso profissional, ajudou muito na curva de aprendizado.
AndrewReviewed in Canada on 18 December 20155.0 out of 5 stars Excellent Book From Masters
Format: PaperbackVerified PurchaseI've read some books about Go programming but this is the best Go programming book. It explains the concepts clearly, for the complex concepts come with lots of pictures to explain the ideas.
The book is just 380 pages but it covers all major topics of Go programming language and lots of minor topics and some corner cases of the language. For example, I was wondering how to use the (&^) bit clear operator in Go and found nothing in other books but only in this book(p53).
There are lots of insights about how to use Go. Map keys must be comparable, so slice can't a legal key. There is a strategy on how to use slice as map key on page 97. A data race occurs whenever two goroutines access the same variable concurrently and at least one of the accesses is write. Three ways to avoid a data race are given on page 260. How to use nil channel to enable or disable some features on page 246. And lots of other topics spread all the books.
There are also lots of pitfalls and how to avoid them. Capturing iteration variables - it just capture the variable storage location, not its value in the loop of the function - on page 140. An interface containing a nil pointer is non-nil on page 184. And many others.
Lots of carefully chosen examples make me understand the concepts easily. You can download the code examples from http://www.gopl.io/ and run them in your own computer.
In short, excellent book from masters.
Just a reminder, this is not a book for the very beginners. You should have some basic Go programming knowledge.(After Go Tour, Effective Go or this free ebook from http://www.golang-book.com/)
-
MatReviewed in France on 10 October 20255.0 out of 5 stars Référence pour le Go
Format: PaperbackVerified PurchaseJ'adore ce livre de Go, il est très bien, je l'ai feuilleté pas en entier, mais il est très bien, il y a beaucoup d'exemples, le livre est joli et assez conséquent, c'est un bon achat si vous voulez apprendre le Go, c'est un peu la référence.
Dean D.Reviewed in the United States on 9 March 20195.0 out of 5 stars A Fantastic Read
Format: PaperbackVerified PurchaseThis book is not only one of the best books I've read on Go, but also one of the best programming books I've read in general. It is easy to understand and well edited. I thought the first chapter was really entertaining, explaining the origins of go (Plan 9, etc.), and the pacing from there is really great for my tastes. It's not overly verbose (there are a few sentences that are short but pack a punch that I re-read a few times just to make sure I understood them) and it's not trying to teach you how to program.
I am a gopher by way of .NET Core (among others), and this helped me immensely. It explains *why* golang is the way it is as well as nearly all aspects of the language. I have been programming professionally for > 15 years but I became a golang dev in a "trial by fire" manner. I took over a full-stack Angular/go project that was written by a brand new developer, so there were a ton of terrible practices / bugs and it was already in production (as it turns out, in the real world things are sometimes less than ideal!). I read the docs, did the "Tour of Go" (which is really nice, by the way) and "Go by Example" (also recommend), and hit the ground running. Go is a simple language to learn, so I was able to squash bugs and ship new features immediately; but this book really helped flesh out the gaps in my knowledge.
If you have some experience programming but are new to Go (or want to dig deeper), this is the one to get. If you are new to programming, I would approach this with some trepidation. I don't think it's completely out of the question for a brand new programmer, but you might have to do some googling along the way to help you with concepts that maybe aren't explained in detail in this book because it's assumed they are already known.












