Go, also known as Golang, is a modern programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson – Released 2009. It is a statically typed, compiled language that is known for its simplicity, concurrency support, and performance. Go is relatively new but already used by companies of all sizes to build a wide variety of software, including web applications, command-line tools, and distributed systems.Google – This is what you get from the internet as a definition of Go.
As I‘m an experienced software developer with over 10 years of experience in C#, Visual Studio, and VS Code I expect Go to be relatively easy to master. I love TDD (Test driven development) and, as with any new programming language, will challenge the Go ecosystem in this regard.
I‘ve compiled a learning path and time schedule. This learning path will guide me (maybe also you!) through the basics of Go and help you to start building your own applications, using TDD. It is designed for software developers with experience in other languages, and it includes a mix of resources from Google and other sources.
Learning resources for the start
- The Go Programming Language (official Go website): https://www.gopl.io/
- Go by Example (official Go website): https://gobyexample.com/
- Go Tours (official Go website): https://www.goaheadtours.com/
- A Tour of Go (Dave Cheney): https://go.dev/tour/
- Effective Go (Caleb Miles): https://go.dev/doc/effective_go
- Testing in Go (official Go website): https://pkg.go.dev/testing
- Go TDD (Dave Cheney): https://quii.gitbook.io/learn-go-with-tests/
Learning path proposal
- Read the first few chapters of The Go Programming Language to learn the basics of the Go language syntax.
- Complete the Go Tours to get some hands-on experience with the language.
- Read A Tour of Go to get a high-level overview of the Go language and its key features.
- Read Testing in Go to learn about testing in Go.
- Read Go TDD to learn about test-driven development (TDD) in Go.
- Continue reading The Go Programming Language to learn about more advanced topics such as concurrency and error handling.
- Start working on your own Go application, using TDD. This could be a simple command-line tool or a web application.
- Use Go by Example to learn how to use specific Go packages and libraries.
- Continue working on your Go application.
- Read the first few chapters of Effective Go to learn best practices for writing Go code.
- Join the Go community on Stack Overflow or the Go subreddit to ask questions and get help from other Go developers.
- Finish working on your Go application.
- Deploy your Go application to production.
- Start learning about specific Go packages and libraries that are relevant to your interests. For example, if you are interested in web development, you could learn about the net/http package.
- Write blog posts or tutorials about Go to share your knowledge with the community.
- IDE: Use Visual Studio Code. This will make it easier to write and debug Go code.
- Use the official Go documentation. It is comprehensive and well-written.
- Don’t be afraid to ask for help from other Go developers. The Go community is very friendly and helpful.
So off we go; I’ll take you with me on this journey and hope this is helpful. Let‘s GO 🙂