Get started with Go and learn how to leverage its simplicity and flexibility to solve real-world problems and build practical software
Key Features
- Build a comprehensive foundation in Go and focus on developing real-world applications
- Explore the Go Standard Library and learn how to structure your code
- Learn how to efficiently interact with files, databases and REST APIs
Book Description
The Go Workshop will take the pain out of learning the Go programming language (also known as Golang). It is designed to teach you to be productive in building real-world software. Presented in an engaging, hands-on way, this book focuses on the features of Go that are used by professionals in their everyday work.
Each concept is broken down, clearly explained, and followed up with activities to test your knowledge and build your practical skills.
Your first steps will involve mastering Go syntax, working with variables and operators, and using core and complex types to hold data. Moving ahead, you will build your understanding of programming logic and implement Go algorithms to construct useful functions.
As you progress, you'll discover how to handle errors, debug code to troubleshoot your applications, and implement polymorphism using interfaces. The later chapters will then teach you how to manage files, connect to a database, work with HTTP servers and REST APIs, and make use of concurrent programming.
Throughout this Workshop, you'll work on a series of mini projects, including a shopping cart, a loan calculator, a working hours tracker, a web page counter, a code checker, and a user authentication system.
By the end of this book, you'll have the knowledge and confidence to tackle your own ambitious projects with Go.
What you will learn
- Understand Go syntax and use it to handle data and write functions
- Debug your Go code to troubleshoot development problems
- Safely handle errors and recover from panics
- Implement polymorphism by using interfaces
- Work with files and connect to external databases
- Create a HTTP client and server and work with a RESTful web API
- Use concurrency to design software that can multitask
- Use Go Tools to simplify development and improve your code
Who this book is for
The Go Workshop is designed for anyone who is new to Go. Whether you're beginning your journey as an aspiring developer, or are experienced with another programming language and want to branch out to something new, this book will get you on the right track. No prior programming experience is necessary.
Table of Contents
- Variables and Operators
- Logic and Loops
- Core Types
- Complex Types
- Functions
- Errors
- Interfaces
- Packages
- Basic Debugging
- About Time
- Encoding and Decoding (JSON)
- Files and Systems
- SQL and Databases
- HTTP Clients
- HTTP Servers
- Concurrent Work
- Tools
- Security
- Special Features
Delio D'Anna is an experienced software engineer with a company experience mainly developed working on web applications. Although he has been working mostly under a LAMP stack on the back-end side and with JavaScript on the front end, he is interested in a wide range of languages/technologies and always open to learn/apply what comes new from the IT world. His programming background started with the study of algorithms and artificial intelligence but his working career proceeded in the open source world programming high traffic websites in php/MySQL/Postgres/JavaScript.
Andrew Hayes has 8+ years of experience as a software engineer, including 3 years working with Go. Andrew has worked in a number of areas within the software industry, some which include storage, networking, DevOps, and cloud. He enjoys sharing knowledge by creating tutorials online and speaking at conferences. In his spare time he enjoys camping and fishing.
Sam Hennessy started working as a software developer in 2002, switching over to using Go for all his projects in 2015. He's worked at start-ups, agencies, and Fortune 500s. His passion for sharing knowledge leads him to write blogs, books, and present at user groups and conferences. Sam also works as an instructor, teaching Go and other topics. Sam's favorite thing is being at home, watching a good film, with his family and his dog Waffles.