Ebook Template

Learn Go from

seasoned Go developers

We've used Go to power web sites, API sites, worker processes, services, mobile applications, command-line tools and more. Learn what works, what doesn't, and how to get the most from Go's concurrency features.

Ebook Template


Real-World Examples

Along side the instructional text, you'll find examples culled from real-world projects. Learn from our mistakes, profit from our success.

Ebook Template

Don't Wait!

Manning Early Access Program

Buy the book now and get frequent updates as we finish each chapter. Contribute suggestions, corrections, advice, and more to the Author Forum.


chapters complete




lines of example code


redbulls consumed

What you will learn

Project Organization

Learn how to organize your projects and make sense of your GOPATH.

Concurrency Patterns

See how to use goroutines and channels to get more out of your servers' hardware.

Go's Tools

Get the most out of the great tools that ship with Go.

Writing Performant Code

Use profiling tools to squeeze every last big of performance out of your code.

Using Go's Interfaces

Find out how to use Go's unique interfaces to write less code.

Testing Your Code

Make sure your code does what it advertises. Use Go's benchmark functionality to avoid performance regressions.

Sample pages

Get a taste of what's in store for you with these sample pages.

Chapter 1

Computers have evolved, but programming languages haven't kept the same pace of evolution. The cell phone you carry probably has more CPU cores than the first computer you used. High powered servers now have 64, 128, or even more cores, but we're still programming for them in the same ways we were when there was just one core.

The art of programming has evolved too. Most programs aren't written by a single developer any more, they're written by teams of people sitting in different time zones, working at different times of the day. Large projects are broken up into smaller pieces and assigned to programmers who then deliver their work product back to the team in the form of a library or package that can be used across an entire suite of programs.

Today's programmers and companies believe more and more in the power of Open Source Software. Go is a programming language that makes sharing code easy. Go ships with tools that make it simple to use packages written by others, and Go makes it easy to share your own packages too.

In this chapter you'll see why Go is different from other programming languages. Go rethinks the traditional Object Oriented development you might be used to while still providing an efficient means for code reuse. Go makes it easier for you to effectively use all of the cores on your expensive server, and Go takes away the penalty of compiling a very large project.

As you read this chapter, you'll get a feeling for the many decisions that shaped the creation of Go, from its concurrency model to its lightning fast compiler. You'll appreciate the tools that ship with Go to make your life as a developer easier. You'll see why so many developers are choosing Go when they start up that new project.

Chapter 2

Go has its own elegance and programming idioms which make the language very productive and fun to code in. In this chapter we will explore the syntax and programming structure of Go. If you are familiar with the C programming language or other derivatives, you will see a lot of similarities.

The Go language designers set out to create a programming language that would let them be productive without losing access to the lower level programming constructs they needed. This balance is achieved through a minimized set of keywords, built-in functions and minimized syntax. Go also provides a very comprehensive standard library. The standard library provides all the core packages programmers need to build real world, web and network based applications.

When we are done with this chapter, you will have a general overview of the Go language. We will familiarize ourselves with the general structure, style and syntax of the language. We will explore small coding examples that will provide an overview on variables, types, control structures, functions and error handling. All the things that make Go unique, productive and fun.

Choose a chapter

  • Chapter I

    - Introducing Go
  • Chapter II

    - Go Quick Start

Get your copy now! Read the book chapter-by-chapter while it's being written and get the final eBook as soon as it's finished. If you pre-order the pBook, you'll get it long before it's available in stores

Our book has an Author Online Forum where you can ask questions, provide feedback, and help shape the final content.


Messages from early readers

Technical Reviewer

Enjoyed reading it. Looking forward to more.

Technical Reviewer

To say it out loud: I am extremely impressed! I think this is one of THE best early-stage manuscripts I have seen. I think the authors do a tremendous job of presenting their material: clear, short, extremely to the point, no fluff (like Go itself!). No hype, either – what a relief!

Technical Reviewer

People know about Go, but I don't think much has been written about it. And (based on what I have seen), this book would provide a tremendous “crash course” for intermediate to advanced programmers, who quickly want to get the gist of Go.

Technical Reviewer

Covers a broad range of topics from language details to programming environment/ease-of-use features, ideal for someone with existing programming experience wanting to learn about Go.

Special Offers



  • Electronic Version
  • Includes downloadable code
  • Includes all future updates
  • PDF, ePub, and Kindle
buy now

eBook + pBook


  • Electronic and Print Version (when available)
  • Includes downloadable code
  • Includes all future updates
  • PDF, ePub, and Kindle
buy now

About the authors

Experienced Gophers

Brian, Erik, and Bill are part of the team behind Gopher Academy. We promote Go by helping to build a strong community of Go developers, through education, our blog, and the annual Go Conference.

Brian Ketelsen

Brian has been using Go in production since 2010. Working as the CIO of a credit bureau, Brian created the Skynet project to help move a monolithic Rails project into smaller, easier to maintain Go services. Brian's Go projects service several million API requests per day. @bketelsen

Erik St. Martin

Erik worked with Brian to create many of the projects that evolved out of Skynet, most notably SkyDNS. Erik has been a full-time Go developer since 2011. Previously, Erik worked on large web projects like Disney's online reservation system. @erikstmartin

William Kennedy

William Kennedy is a managing partner at Ardan Studios in Miami, FL, a mobile and web app development company. Bill is also the author of the blog GoingGo.Net and the organizer for the Go-Miami and Miami MongoDB meetups in Miami. Bill has been a software developer for over two decades developing back end systems in C, C++ and C# for the call center, gaming and financial industries. Bill looked for a new language in 2013 that would allow him to develop back end systems in Linux and found Go. He has never looked back. He has been married since 2005 and he and his wife enjoy their five kids, four cats, one dog and all the wild animals who have found a home on the Kennedy compound.

You can reach Bill on Twitter at @goinggodotnet