Programming in Go: Creating Applications for the 21st Century / Edition 1

Paperback (Print)
Buy New
Buy New from
Used and New from Other Sellers
Used and New from Other Sellers
from $28.74
Usually ships in 1-2 business days
(Save 36%)
Other sellers (Paperback)
  • All (6) from $28.74   
  • New (4) from $28.74   
  • Used (2) from $35.98   


Your Hands-On Guide to Go, the Revolutionary New Language Designed for Concurrency, Multicore Hardware, and Programmer Convenience

Today’s most exciting new programming language, Go, is designed from the ground up to help you easily leverage all the power of today’s multicore hardware. With this guide, pioneering Go programmer Mark Summerfield shows how to write code that takes full advantage of Go’s breakthrough features and idioms.

Both a tutorial and a language reference, Programming in Go brings together all the knowledge you need to evaluate Go, think in Go, and write high-performance software with Go. Summerfield presents multiple idiom comparisons showing exactly how Go improves upon older languages, calling special attention to Go’s key innovations. Along the way, he explains everything from the absolute basics through Go’s lock-free channel-based concurrency and its flexible and unusual duck-typing type-safe approach to object-orientation.

Throughout, Summerfield’s approach is thoroughly practical. Each chapter offers multiple live code examples designed to encourage experimentation and help you quickly develop mastery. Wherever possible, complete programs and packages are presented to provide realistic use cases, as well as exercises. Coverage includes

  • Quickly getting and installing Go, and building and running Go programs
  • Exploring Go’s syntax, features, and extensive standard library
  • Programming Boolean values, expressions, and numeric types
  • Creating, comparing, indexing, slicing, and formatting strings
  • Understanding Go’s highly efficient built-in collection types: slices and maps
  • Using Go as a procedural programming language
  • Discovering Go’s unusual and flexible approach to object orientation
  • Mastering Go’s unique, simple, and natural approach to fine-grained concurrency
  • Reading and writing binary, text, JSON, and XML files
  • Importing and using standard library packages, custom packages, and third-party packages
  • Creating, documenting, unit testing, and benchmarking custom packages
Read More Show Less

Product Details

  • ISBN-13: 9780321774637
  • Publisher: Addison-Wesley
  • Publication date: 5/18/2012
  • Series: Developer's Library Series
  • Edition description: Original
  • Edition number: 1
  • Pages: 480
  • Sales rank: 687,466
  • Product dimensions: 6.90 (w) x 8.90 (h) x 1.20 (d)

Meet the Author

Mark Summerfield, owner of Qtrac Ltd., is an independent trainer, consultant, technical editor, and writer specializing in Go, Python, C++, Qt, and PyQt. His books include Rapid GUI Programming with Python and Qt (Prentice Hall, 2007), C++ GUI Programming with Qt 4 (with Jasmin Blanchette, Prentice Hall, 2008), Programming in Python 3, Second Edition (Addison-Wesley, 2009), and Advanced Qt Programming (Prentice Hall, 2010).

Read More Show Less

Table of Contents

Tables xv

Introduction 1

Why Go? 1

The Structure of the Book 4

Acknowledgments 5

Chapter 1: An Overview in Five Examples 7

1.1. Getting Going 7

1.2. Editing, Compiling, and Running 9

1.3. Hello Who? 14

1.4. Big Digits–Two-Dimensional Slices 16

1.5. Stack–Custom Types with Methods 21

1.6. Americanise–Files, Maps, and Closures 29

1.7. Polar to Cartesian–Concurrency 40

1.8. Exercise 48

Chapter 2: Booleans and Numbers 51

2.1. Preliminaries 51

2.2. Boolean Values and Expressions 56

2.3. Numeric Types 57

2.4. Example: Statistics 72

2.5. Exercises 78

Chapter 3: Strings 81

3.1. Literals, Operators, and Escapes 83

3.2. Comparing Strings 86

3.3. Characters and Strings 87

3.4. Indexing and Slicing Strings 90

3.5. String Formatting with the Fmt Package 93

3.6. Other String-Related Packages 106

3.7. Example: M3u2pls 130

3.8. Exercises 135

Chapter 4: Collection Types 139

4.1. Values, Pointers, and Reference Types 140

4.2. Arrays and Slices 148

4.3. Maps 164

4.4. Examples 171

4.5. Exercises 180

Chapter 5: Procedural Programming 185

5.1. Statement Basics 186

5.2. Branching 192

5.3. Looping with For Statements 203

5.4. Communication and Concurrency Statements 205

5.5. Defer, Panic, and Recover 212

5.6. Custom Functions 219

5.7. Example: Indent Sort 244

5.8. Exercises 250

Chapter 6: Object-Oriented Programming 253

6.1. Key Concepts 254

6.2. Custom Types 256

6.3. Interfaces 265

6.4. Structs 275

6.5. Examples 282

6.6. Exercises 311

Chapter 7: Concurrent Programming 315

7.1. Key Concepts317

7.2. Examples 322

7.3. Exercises 357

Chapter 8: File Handling 361

8.1. Custom Data Files 362

8.2. Archive Files 397

8.3. Exercises 405

Chapter 9: Packages 407

9.1. Custom Packages 408

9.2. Third-Party Packages 417

9.3. A Brief Survey of Go’s Commands 418

9.4. A Brief Survey of the Go Standard Library 419

9.5. Exercises 431

Appendix A: Epilogue 435

Appendix B: The Dangers of Software Patents 437

Appendix C: Selected Bibliography 441

Index 443

Read More Show Less

Customer Reviews

Average Rating 3.5
( 2 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Anonymous

    Posted August 30, 2014

    "Programming in Go" is still the best book on Go progr

    "Programming in Go" is still the best book on Go programming published as of August 2014. The author spends his time away from the libraries, covering the core of the language. By the nature of this approach the matter is dense, but it also gives the author ample time to discuss best practices, for instance:

    "...[i]ncidentally it is a Go convention that functions that have channel parameters have the destination channels first, followed by the the source channels [in the function definition]..."

    Many of these best practices stem from conventions found in Go's own source code, which happily, the author is well acquainted with. Learning a language by isolating its syntax and analysing idioms and conventions is effective for those willing to persevere, and "Programming in Go" abounds in such detail.

    Ideally, "Programming in Go" should be paired with a textbook which focuses on use-cases. Balbaert's "The Way to Go" is such a book, but sadly, is not nearly so well written as Summerfield's. In any case, "Programming in Go" is the book for those searching for a solid understanding of Go's fundamentals.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted January 1, 2013

    Go is awesome

    Unfortunately how author describes things is extremely boring... but Go is awesome and author seems like to understand it but cant really explain it or understand how exactly it is so exciting, maybe because he is not a real programmer or people he writes for wouldnt understand anyways.

    0 out of 2 people found this review helpful.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)