I've decided to start learning Go.
My goal isn't just to learn another programming language—it's to become a better backend developer. Over the next few months, I'll be documenting everything I learn, the mistakes I make, and the projects I build.
This is the first post in that journey.
Why Go?
Most of my experience has been with Flutter and Dart, so I've spent a lot of time building mobile applications.
Recently, I wanted to dive deeper into backend development. After looking into different languages, Go stood out because of its simplicity, performance, and strong reputation for building scalable backend services.
So, here we are.
Today's Topic: Variables & Data Types
Like every new language, I started with the basics.
Declaring variables in Go is straightforward.
var name string = "Dhruv"
age := 22
Go also lets the compiler infer the type when it can, which keeps the code clean without losing readability.
The Thing That Surprised Me
I honestly didn't expect Go to have so many numeric data types.
There are signed integers:
- int
- int8
- int16
- int32
- int64
Unsigned integers:
- uint
- uint8
- uint16
- uint32
- uint64
Floating-point numbers:
- float32
- float64
And there are also types like:
- byte (alias for uint8)
- rune (alias for int32, used for Unicode characters)
Coming from Dart, this initially felt like a lot.
My first thought was:
"Do I really need all of these?"
As I read more, it started making sense.
Different applications have different memory and performance requirements. Having multiple data types gives developers more control over how data is stored and processed.
Small Struggles
Even though variables are one of the first topics in any language, I still had a few moments where I had to stop and think.
Questions like:
- When should I use
intinstead ofint32? - Why does Go distinguish between signed and unsigned integers?
- What exactly is a
rune? - Why is
bytejust another name foruint8?
These aren't difficult concepts, but they're different enough from what I'm used to that they made me curious.
My First Impression of Go
So far, Go feels...
- Simple
- Clean
- Easy to read
- Minimal
There aren't dozens of different ways to write the same thing.
The language feels like it wants you to focus on solving problems rather than learning clever syntax.
I like that.
What's Next?
Tomorrow I'll be learning more Go fundamentals like arrays, slices, functions, and control flow.
Eventually, I want to build real backend projects using:
- Go
- SQL
- Redis
- Docker
- AWS
- CI/CD
I'll be documenting the entire journey here on Dev.to.
If you're also learning Go, I'd love to hear what surprised you when you first started.
See you in Day 2! 🚀
Top comments (0)