DEV Community

Cover image for Day 1 of Learning Go: Variables, Data Types, and My First Impressions
Dhruv Mevada
Dhruv Mevada

Posted on

Day 1 of Learning Go: Variables, Data Types, and My First Impressions

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
Enter fullscreen mode Exit fullscreen mode

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 int instead of int32?
  • Why does Go distinguish between signed and unsigned integers?
  • What exactly is a rune?
  • Why is byte just another name for uint8?

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)