0%

This book contains 25 short programs that will challenge your understanding of Go. Like any big project, the Go developers had to make some design decisions that at times seem surprising. This book uses those quirks as a teaching opportunity. By understanding the gaps in your knowledge, you'll become better at what you do. Some of the teasers are from the author's experience shipping bugs to production, and some from others doing the same. Teasers and puzzles are fun, and learning how to solve them can teach you to avoid programming mistakes and maybe even impress your colleagues and future employers.

Programmers love the Go (golang) programming language because of its efficiency and simple tooling. But that doesn't mean programming in Go is without challenges, like hidden dependencies that trip up the compiler and interesting string type conversions that differ from languages like Python. Work your way through 25 short brain teasers, and learn the nuances of Go in one of the most fun and creative ways around.

Challenge yourself and challenge your assumptions to gain a more in-depth understanding of integers, strings, Unicode, compiler behavior, and a variety of subtle programming gotchas that might otherwise trip you up. Just read a short program written in Go, try to guess the output, run the code yourself, and then go to the next page for an explanation of the solution. By working through these brain teasers, you'll tighten up your Go programming skills and have lots of fun at the same time.

Taken from real-world, programming problems, conference talks, and meetup quizzes, these brain teasers provide an effective learning tool that's as enjoyable as it is educational.

What You Need:

This book assumes you know Go at some level and have experience programming with it.

*NOTE:* We use Go version 1.14.1 to run the code; the output might change in future versions.

You will need a working Go environment, you can download it from https://golang.org/dl. You will probably want a good IDE for Go, two of the most popular ones are Visual Studio Code and GoLand.

Table of Contents

  1.  Acknowledgments
  2.  Preface
    1. About the Author
    2. About the Code
    3. About You
    4. One More Thing
  3.  Foreword by David Cheney
  4. Part I. Go Brain Teasers
    1. Puzzle 1. A Number π
    2. Puzzle 2. Empty-Handed
    3. Puzzle 3. When in Kraków
    4. Puzzle 4. I’ve Got Nothing
    5. Puzzle 5. A Raw Diet
    6. Puzzle 6. Are We There Yet?
    7. Puzzle 7. Can Numbers Lie?
    8. Puzzle 8. Sleep Sort
    9. Puzzle 9. Just in Time
    10. Puzzle 10. A Simple Append
    11. Puzzle 11. What’s in a Log?
    12. Puzzle 12. A Funky Number?
    13. Puzzle 13. Free-Range Integers
    14. Puzzle 14. Multiple Personalities
    15. Puzzle 15. A Tale of Two Cities
    16. Puzzle 16. What’s in a Channel?
    17. Puzzle 17. An **Int**eresting String
    18. Puzzle 18. A Job to Do
    19. Puzzle 19. To Err or Not to Err
    20. Puzzle 20. What’s in a String?
    21. Puzzle 21. A Double Take
    22. Puzzle 22. Count Me a Million
    23. Puzzle 23. Who’s Next?
    24. Puzzle 24. Fun with Flags
    25. Puzzle 25. You Have My Permission
3.141.31.209