Free Downloads
The Go Programming Language (Addison-Wesley Professional Computing Series)

The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether you’re most comfortable with JavaScript, Ruby, Python, Java, or C++. The first chapter is a tutorial on the basic concepts of Go, introduced through programs for file I/O and text processing, simple graphics, and web clients and servers. Early chapters cover the structural elements of Go programs: syntax, control flow, data types, and the organization of a program into packages, files, and functions. The examples illustrate many packages from the standard library and show how to create new ones of your own. Later chapters explain the package mechanism in more detail, and how to build, test, and maintain projects using the go tool. The chapters on methods and interfaces introduce Go’s unconventional approach to object-oriented programming, in which methods can be declared on any type and interfaces are implicitly satisfied. They explain the key principles of encapsulation, composition, and substitutability using realistic examples. Two chapters on concurrency present in-depth approaches to this increasingly important topic. The first, which covers the basic mechanisms of goroutines and channels, illustrates the style known as communicating sequential processes for which Go is renowned. The second covers more traditional aspects of concurrency with shared variables. These chapters provide a solid foundation for programmers encountering concurrency for the first time. The final two chapters explore lower-level features of Go. One covers the art of metaprogramming using reflection. The other shows how to use the unsafe package to step outside the type system for special situations, and how to use the cgo tool to create Go bindings for C libraries. 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. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download from and may be conveniently fetched, built, and installed using the go get command.

Series: Addison-Wesley Professional Computing Series

Paperback: 400 pages

Publisher: Addison-Wesley Professional; 1 edition (November 5, 2015)

Language: English

ISBN-10: 0134190440

ISBN-13: 978-0134190440

Product Dimensions: 7.4 x 1 x 9 inches

Shipping Weight: 1.4 pounds (View shipping rates and policies)

Average Customer Review: 4.8 out of 5 stars  See all reviews (91 customer reviews)

Best Sellers Rank: #8,039 in Books (See Top 100 in Books) #25 in Books > Textbooks > Computer Science > Programming Languages #38 in Books > Computers & Technology > Programming > Languages & Tools #2472 in Books > Reference

[Disclaimer: I was provided with a free review copy by the publisher.]TL;DRIf you're looking to buy a comprehensive text on Go, "The Go Programming Language" is an excellent choice. But with so many free e-book introductions to Go, do you really need it? Maybe, but maybe not.OVERVIEWThe authors "assume that you have programmed in one or more other languages" and thus "won't spell out everything as if for a total beginner". Yet the book weighs in at a hefty 380 pages (over 100 pages more than my venerable 1988 K&R 2nd edition).Is it better than the free 50-page "Little Go Book", or the free 160-page "Introduction to Programming in Go" or even the freely-available 80-page Go Language Specification itself? Yes, certainly. But is it two or three or four times as good? I don't think so.So is "The Go Programming Language" worth the cost to read in both dollars *and* time? It depends on how you learn, how much you already know, and whether, for you, the good parts outweigh the bad.THE GOOD PARTSChapter 1 ("Tutorial") sets the stage for much of what is excellent about this book: fabulous examples. Beyond the obligatory "Hello World", it presents a quick look at several simplified "real world" examples, including command line text filtering, image generation/animation, URL fetching and serving a web page.The rest of the book follows this same pattern. Chapters typically present several different code examples, most of which do real things rather than just consist of toy code. They include exercises (which I didn't do), that would be good for a course or for someone who learns best by doing structured exercises.

This review mostly focuses on the presentation and typesetting of the digital edition. As far as the content, I completely echo the praise that others have lauded on this book. It is the essential book that has been missing for Go as a language. That said, it is *not* perfect, and I will touch on the criticisms I have later perhaps.However, the presentation of the Kindle/Ebook edition is literally painful to read. It a significant impediment. It is so bad, that perhaps 4 stars is much too generous. (I have seen all versions other than the nook, which will undoubtedly be the same)The line spacing is unbearably compressed – it would require many over the age of 25 to squint or reach for a ruler. The font choice and typesetting are archaic, unprofessional and lazy – exacerbated by the authors failing (forgetting?) to embed the fonts they used in the production – resulting in no better than a direct export from something you would expect from a high school student essay in Word, and some 600 "pages" of it, with the code examples set stupidly on the page. I understand the appeal and desire to have this book be a contemporary version of K&R (and content wise, it succeeds), but this is significantly sub-par that standard which even so is incompatible with the legibility requirements for reading from screen. The fact that the authors advise “adjust(ing) the font size to the smallest setting” for optimal viewing is laughable, and effectively adds insult to injury. Is the print book published in a landscape orientation? No, it isn't, and reading the ebook that way is no remedy, and no eReader device or software has the necessary controls to fully remedy it. If I were to rate the book on the presentation alone it would be a zero. It is inexcusable.

Let me start by saying that I had high expectations for this book because of the authors pedigree. I must say that all of those expectations were met. I received a digital copy of this book for review, and halfway through the book I purchased a hard copy becaue this is the reference book to have for Go.The book is laid out in a typical programming language way. You start with basic concepts and get more advanced as you progress through the book. The book does not assume you have any knowledge of Go, but it does assume you have some basic programming or computer science background. Each chapter has numerous real world examples, and as the book progresses these examples are iteratively improved upon as you learn new concepts. I really enjoyed this setup and revisiting those samples each time really helps solidify the knowledge you gained earlier. Similarly, the exercises at the end of each chapter are challenging and really force you to grasp the chapter's content. Almost all of them consist of improvements to previous samples using the knowledge you gained. Some of the examples in the early parts of the book reference multiple different future sections. I found this could be a little overwhelming at times. I wanted to skip ahead to learn those new features, but knew I needed to start from the beginning. These "in coming chapters" sections really added up in the first few chapters, and that was one of my only complaints with the book.Full source code is provided for every exercise and sample. And there is a LOT of code included. With just this book and the code samples you should be armed to really get working with Go. Throughout the book and the samples they authors point out how to write idiomatic Go code, and common pitfalls you might run into when developing in Go.

The Go Programming Language (Addison-Wesley Professional Computing Series) Advanced Programming in the UNIX Environment (Addison-Wesley Professional Computing Series) Advanced Programming in the UNIX(R) Environment (Addison-Wesley Professional Computing Series) Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) TCP/IP Illustrated, Vol. 1: The Protocols (Addison-Wesley Professional Computing Series) TCP/IP Illustrated, Volume 1: The Protocols (Addison-Wesley Professional Computing Series) TCP/IP Illustrated, Volume 1: The Protocols (2nd Edition) (Addison-Wesley Professional Computing Series) TCP/IP Illustrated, Vol. 2: The Implementation (Addison-Wesley Professional Computing Series) Programming #45: Python Programming Professional Made Easy & Android Programming In a Day! (Python Programming, Python Language, Python for beginners, ... Programming Languages, Android Programming) Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Hadoop 2 Quick-Start Guide: Learn the Essentials of Big Data Computing in the Apache Hadoop 2 Ecosystem (Addison-Wesley Data & Analytics Series) Hadoop 2 Quick-Start Guide: Learn the Essentials of Big Data Computing in the Apache Hadoop 2 Ecosystem (Addison-Wesley Data & Analytics) Ruby on Rails Tutorial: Learn Web Development with Rails (Addison-Wesley Professional Ruby Series) Eloquent Ruby (Addison-Wesley Professional Ruby Series) Win32 Programming (Addison-Wesley Advanced Windows Series)(2 Vol set) MYSQL Programming Professional Made Easy 2nd Edition: Expert MYSQL Programming Language Success in a Day for any Computer User! (MYSQL, Android programming, ... JavaScript, Programming, Computer Software) Bayesian Methods for Hackers: Probabilistic Programming and Bayesian Inference (Addison-Wesley Data & Analytics) C#: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of C# programming (C#, C# Programming, C++ Programming, C++, C, C Programming, C# Language, C# Guide, C# Coding) R Programming: Learn R Programming In A DAY! - The Ultimate Crash Course to Learning the Basics of R Programming Language In No Time (R, R Programming, ... Course, R Programming Development Book 1) Body Language: Body Language Training - Attract Women & Command Respect, by Mastering Your High Status Body Language (Body Language Attraction, Body Language ... Language Secrets, Nonverbal Communication)