
Amazon Prime Free Trial
FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with FREE Delivery" below the Add to Cart button and confirm your Prime free trial.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited FREE Prime delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new:
$49.99$49.99
Ships from: Amazon.com Sold by: Amazon.com
Save with Used - Good
$28.13$28.13
Ships from: Amazon Sold by: Zara's Library
Return this item for free
We offer easy, convenient returns with at least one free return option: no shipping charges. All returns must comply with our returns policy.
Learn more about free returns.- Go to your orders and start the return
- Select your preferred free shipping option
- Drop off and leave!

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.
Follow the authors
OK
Go Programming Language, The (Addison-Wesley Professional Computing Series) 1st Edition
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 dateOctober 26, 2015
- LanguageEnglish
- Dimensions9.1 x 7.3 x 1 inches
- Print length400 pages
Frequently bought together

More items to explore
From the Publisher
Why You Should Learn Go with this Authoritative Guide
Flexible
Go bears a surface similarity to C and, like C, is a tool for professional programmers, achieving maximum effect with minimum means. But it is much more than an updated version of C.
Go borrows and adapts good ideas from many other languages, while avoiding features that have led to complexity and unreliable code.
Co-author Brian Kernighan was a co-creator of several programming languages and the co-author of one of the most popular programming books of all-time The C Programming Language.
General-purpose language
Go is especially well suited for building infrastructure like networked servers, and tools and systems for programmers, but it is truly a general-purpose language and finds use in domains as diverse as graphics, mobile applications, and machine learning.
The book features hundreds of interesting and practical examples of well-written Go code that cover the whole language, its most important packages, and a wide range of applications
Efficient
Go programs typically run faster than programs written in dynamic languages and suffer far fewer crashes due to unexpected type errors.
This book is meant to help you start using Go effectively right away and to use it well, taking full advantage of Go’s language features and standard libraries to write clear, idiomatic, and efficient programs.
Editorial Reviews
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; 1st edition (October 26, 2015)
- Language : English
- Paperback : 400 pages
- ISBN-10 : 9780134190440
- ISBN-13 : 978-0134190440
- Item Weight : 1.48 pounds
- Dimensions : 9.1 x 7.3 x 1 inches
- Best Sellers Rank: #50,435 in Books (See Top 100 in Books)
- #15 in Computer Programming Languages
- #58 in Programming Languages (Books)
- 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 analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find this Go programming book provides a clear introduction to the fundamentals of the language and covers it without unnecessary fluff. Moreover, the book includes several different examples and exercises, and customers consider it well worth the price. Additionally, the design receives positive feedback, with one customer describing it as well thought out. However, the functionality receives mixed reviews.
AI-generated from the text of customer reviews
Select to learn more
Customers find the book provides a clear introduction to the fundamentals of the Go programming language, with good explanations and concise content.
"...It' s probably best for someone with some programming experience as in the interests of brevity some low-level features and common programming..." Read more
"...Concepts are coherently and timely presented. Examples are usually not code fragments, but complete programs which can be compiled and run...." Read more
"...All the code is easily downloadable using standard Go tools, so it is easy to try things out as you learn...." Read more
"...more than the following sentences: The content is excellent and essential. It unquestionably has helped me, and will help me in the future...." Read more
Customers appreciate the book's examples, which are presented in a cookbook style and provide rationale for design decisions.
"...to work well together which facilitate a program model that is quite powerful, but simple to learn, reason, write, and support...." Read more
"...It uses realistic, and complete, examples to illustrate the design philosophy behind the language...." Read more
"...The examples are excellent and the explanations and instructions clear...." Read more
"...You'll definitely get more rationale for design decisions in this than any other treatment of the topic, and Go's sometimes idiosyncratic nature..." Read more
Customers appreciate the design of the book, with one noting its well-thought-out approach and another highlighting its nice presentation.
"...such modern features as abstract data type, data encapsulation, object composition, interface, package, CSP model (Tony Hoare) concurrent programing..." Read more
"...The exercises at the end of each section are well thought out and an additional vehicle for learning what was taught...." Read more
"Nice presentation, good way to be learning go." Read more
"Terse and elegant. Many of the examples demonstrate efficient techniques that may not be obvious, but are not over-clever...." Read more
Customers appreciate the exercises in the book, with one noting they are not short.
"...Other than an overly long introductory chapter, it is brief, to the point, and accurate...." Read more
"...They are not short exercises. If I were assigning homework, the 2 or 3 exercises at each step intra-chapter would be enough for a weeks worth." Read more
"...for the language from A to Z. One of the interesting things is exercise section which helps to test your knowledge and skills!..." Read more
"...Assumes WAY to much programming knowledge. Exercise are good for someone who has been coding in various languages for some time...." Read more
Customers find the book well worth its price, with one mentioning that the chapter on concurrency is particularly valuable.
"...technical information about design decisions, the compiler, practical trade-offs, &c to help inform the Why without ever getting bogged down in..." Read more
"...The writing is incredible and the value is greater than just covering the topic...." Read more
"...Nope, this isn't coding for dummies, this is the real deal, written by the gods of coding, for those of us in this universe...." Read more
"...The chapter on concurrency is worth the cost of the book alone. Buy it!" Read more
Customers have mixed experiences with the book's functionality, with one customer noting that features are carefully designed to work well together, while another reports issues with instructions stopping at version 2.6.1 Imports.
"This book might not work for beginners who just start their journey in software engineering, but for professionals looking to switch to Go from C++,..." Read more
"...All features are careful designed to work well together which facilitate a program model that is quite powerful, but simple to learn, reason, write,..." Read more
"I've been coding along but the instructions stop working at 2.6.1 Imports...." Read more
"...a month before I read this book, so going into I had a working familiarity with Go, having begun using it on a few side projects...." Read more
Top reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on November 25, 2024This is a very thorough introduction to Go. The author's code examples are available on Github which spares you the trouble of retyping them. It' s probably best for someone with some programming experience as in the interests of brevity some low-level features and common programming shortcuts are demonstrated but not explained. However Go is much-better documented than other languages I've used so there's ample resources on the web to help you out with the small details. As a small aside, it's actually nice to have a book that announces what you're up to if you work in co-working spaces or cafes. Sometimes another engineer will see the book cover and let you know that they're available to answer your questions. Well, this happened to me once anyway.
- Reviewed in the United States on August 19, 2020I like GO because It implements cleanly such modern features as abstract data type, data encapsulation, object composition, interface, package, CSP model (Tony Hoare) concurrent programing, multi-value-return function, deferred function calls, garbage collection, exporting names by capitalization, simple but effective exception handling and memory model. It is a static type language. Higher abstract data types such as map (hash table), string, array and slice are built in to simplify memory management. Its syntax is succinct (only 25 keywords). Yet using it correctly can lead to powerful program constructs. Little redundancies are built into the language. As such, there are not many alternate ways to do one thing which leads to codes that are easy to understand and maintain. The designers deliberately choose to implement features to support object composition instead of inheritance, to handle exception where it happens instead of the throw and catch clauses, to use simple "struct literals" to initialize abstract data type instead of constructor functions, and "type" expression to help users consistently define user types, interface (abstract) type as a standard protocols to call different concrete-objects methods (the correct way to implement polymorphism). It does not have default arithmetic type conversion, and function name overloading, which together with class inheritance (function overwrite), constructor functions, throw-and-catch exception handling are the sources of needlessly programing complexity. Importantly, both procedure (functions and data structures) and object-oriented (objects and methods) methodologies can be used. There are just enough features that help make GO a pleasant language to write. All features are careful designed to work well together which facilitate a program model that is quite powerful, but simple to learn, reason, write, and support.
The book is well written by a GO expert programmer and a computer pioneer and noted author of programing books. Concepts are coherently and timely presented. Examples are usually not code fragments, but complete programs which can be compiled and run. Programs of complex concepts are presented in multiple versions from simpler to more elaborated ones. Like the efficient design of GO, the book is never overwritten. It is the most enjoyable programing book I have read in a long while.
- Reviewed in the United States on July 18, 2020If you want to learn the Go programming language using a printed book, you can't really go wrong with this one. People (of a certain age!) who grew up with K&R being a gold standard for language documentation, will certainly recognize the same qualities in this text. Other than an overly long introductory chapter, it is brief, to the point, and accurate. It uses realistic, and complete, examples to illustrate the design philosophy behind the language. All the code is easily downloadable using standard Go tools, so it is easy to try things out as you learn.
It is probably worth noting that the book is very slightly dated (mine is a 2015 first printing; I only needed to learn Go for real a full five years after I purchased it!). Go has obviously evolved since the publication of the book. Most notably it now has a real module system. Many small tweaks have also been made to the language and platform. For example, error wrapping, and allowing for the embedding of interfaces with overlapping methods. Obviously, these are not in the book, but for a working programmer I believe it still remains a complete introduction to the language. Understanding the new changes in the context of the information in the book actually gave me a much better appreciation for how the language designers (and community) think about programming in Go.
Top reviews from other countries
- TomReviewed in the United Kingdom on March 8, 2021
5.0 out of 5 stars Very well written with lots of interesting examples
Over 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.
- JohnReviewed in Australia on March 24, 2024
5.0 out of 5 stars Clear exposition of the Language
A 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 !
-
Andrea BerardiReviewed in Italy on November 8, 2019
5.0 out of 5 stars Una guida interessante e ben fatta.
Una buona guida per un linguaggio interessante.
Sinceramente GoLang non mi ha mai catturato, ho sempre preferito altri linguaggi, ma visto il credito che ha avuto penso valga la pena scoprirlo.
Andrea BerardiUna guida interessante e ben fatta.
Reviewed in Italy on November 8, 2019
Sinceramente GoLang non mi ha mai catturato, ho sempre preferito altri linguaggi, ma visto il credito che ha avuto penso valga la pena scoprirlo.
Images in this review
- AndrewReviewed in Canada on December 18, 2015
5.0 out of 5 stars Excellent Book From Masters
I'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/)
-
Julien BalestraReviewed in France on November 11, 2016
5.0 out of 5 stars Parfait
Ce livre, en anglais, est parfait pour débuter le Go avec un rythme adapté.
Quelques exercices sont présents pour pratiquer tout au long du livre.
Les exemples présentés sont disponibles en ligne.
Ce livre s'adresse toutefois à des personnes ayant déjà une base en programmation (peu importe le langage).