Why learn GoLang #
Go (or Golang) is a programming language designed for building fast, reliable, and efficient software at scale. Its simplicity, concurrency features, and built-in garbage collection make it particularly well-suited for building large-scale, networked applications and distributed systems. Additionally, Go’s growing popularity and strong community support make it an increasingly relevant language for both web and backend development.
Go is extensively used by google,uber,netflix,twitch,dropbox etc, go is mainly used in building api’s , go is known for its extensibility in microservice architecture, lately go’s popularity has been increasing so it is a very good choice to learn go.
Go (or Golang) can be used for a variety of applications, including building web servers and APIs, creating networked and distributed systems, developing command-line tools and utilities, writing system software and device drivers, and more generally for any application that requires high performance, reliability, and scalability.
🎓 Take Away Skills #
After completing this learning path you will be knowledgeable in:
- Operators and Data Types
- Loops and Conditional Statements
- Arrays , Slice etc
- Functions in GO lang
- Struct, Map in golang
- Interface in golang
- Methods in go lang
- Defer Panic and Recover
- Pointers in golang
🧑🏻💻 Programming Knowledge #
There is no prerequisite in learning go lang , but familiarity of basic programming is good
📲 Installation and Setup #
- Visit the official Go website at golang.org and download the appropriate installer for your operating system.
- Run the installer and follow the prompts to install Go on your machine.
Set up the environment variables:
- After installing Go, you need to set up the environment variables to ensure that Go commands can be executed from anywhere on your machine. This typically involves adding the Go installation directory to your PATH environment variable.
Verify the installation:
- To verify that Go has been installed correctly, open a command prompt and run the command go version. This should display the version of Go that you have installed.
Optional: Install a Go editor or IDE: While it’s possible to write Go code in any text editor, you may want to install a specialized Go editor or integrated development environment (IDE) to take advantage of features like syntax highlighting, code completion, and debugging.
The preferred ide for golang is
GoLand by JetBrains#
That’s it! After following these steps, you should have a working installation of Go on your machine and be ready to start writing and running Go code.
💡 Learning Session #
🎓 Topics to Learn #
- Variables and Data Types
- Control Structures
- Functions and Packages
- Pointers and Memory Management
- Error Handling
Resources to Learn #
- Tour of Go - an interactive tutorial for beginners
- A Tour of Go - a beginner-friendly book on Go programming
- Effective Go - a guide to writing idiomatic Go code
- The Go Programming Language - an in-depth book on Go programming
- Go by Example - Personal Favorite
🛠️ Learning Activity #
- Follow a beginner-friendly tutorial on building a simple Go program.
- Write a program that accepts user input and performs some operations using the basic control structures and data types.
🛠️ Small Project #
- Build a simple command-line tool that reads a CSV file, performs some simple data analysis, and displays the results.
- This project will help you learn how to work with files, data structures, and packages in Go.
Learning GoLang can be challenging, but with the right resources and a willingness to practice, you can become proficient in the language. Good luck and happy coding!
🔖 Resource Pool #
📄 Articles/Blogs #
📽️ Videos #
🚀 Project Pool #
- Build a cli with golang
- Build a web server with golang and frameworks like fiber or gin
- Web scraper: Build a web scraper that retrieves information from a website and saves it to a file or database. You can use the “net/http” and “html” packages to extract information from the HTML code.
- URL shortener: Build a simple URL shortener that converts long URLs to short URLs. You can use the “net/http” package to create an HTTP server and the “encoding/base64” package to encode and decode URLs.