Thumbnail image

My 10-Day Journey of Learning Go: Building Web Apps and More!

Learning GO

I’m so excited to share my journey of learning Go with you all! Go is such a fast and easy language to pick up, and I was able to create amazing things in just 10 days. Here’s a detailed breakdown of what I did:

  1. Getting Started with Go (Day 1-2)

    • I started my journey by immersing myself in Go. For the first couple of days, I watched tutorial videos, read documentation, and practiced the basics of Go syntax for about 6 hours each day. I was pleasantly surprised by how intuitive and simple the language was, making it easy to grasp the fundamentals quickly.

    A Tour of Go for the C# Developer - Jeremy Clark - NDC London 2021

  2. Building a High-Performance Web Service (Day 3-4)

    • On day three, I dived into practical application. I decided to build a web service using Echo, a high-performance framework for Go. Over the course of two days, I learned how to use service classes, create custom types, implement middleware for request handling, set up logging, apply rate limiting, render HTML templates, manage user sessions, and implement JWT authentication. This experience was invaluable for understanding how Go can be applied in real-world projects.

    High performance, minimalist Go web framework

  3. Exploring Database Modeling with ENT (Day 5-6)

    • To take my skills further, I explored ENT, a code-first approach to database modeling and querying in Go. I dedicated two days to learning how to define database schemas, perform CRUD operations, and use migrations to evolve the database schema over time. This was a crucial step in understanding how Go can work seamlessly with databases.

    An entity framework for Go

  4. Comparing Database Libraries (Day 7)

    • I decided to experiment with different database libraries in Go to understand their features and performance. I explored libraries like Upper DB and GORM, comparing their strengths and weaknesses. This allowed me to make informed choices in future projects based on specific requirements.

    UPPER DB -Data access layer for PostgreSQL, CockroachDB, MySQL, SQLite and MongoDB with ORM-like features.

    GORM ORM library for Golang, aims to be developer friendly

  5. Creating Dynamic Web Pages with HTMX (Day 8)

    • Day eight was all about frontend development. I integrated HTMX, a library that lets you access modern web features with HTML. I learned how to use templating engines like Tailwind, Daisy, and Go Razor to create dynamic and responsive web pages. This was a crucial skill to complement my backend development expertise.

    Echo

    Tailwind

    Daisy UI

    HTMX

    Tailwind

    Daisy

    GoRazor

  6. Full-Stack Web App with Iris (Day 9-10)

    • For the final leg of my journey, I tried out Iris, another popular web framework for Go. Over two days, I built a full-stack web application using Iris. I delved into templating, created controllers, implemented JWT authentication for secure user authentication, and set up routing to make a fully functional web app. There is Iris example Links.

    Iris

    Templates

    AUTH

    Bootstrapper

    Configuration

    Logging

    Routing

    Views

    Databases

Now I feel confident and ready to take on more challenge with Go. It’s such a fun and powerful language that I can’t wait to learn more about it!

Ten days of hard work, learning, and dedication might seem like a daunting task, but remember, the path to success is paved with small steps and persistence. Keep pushing forward, and you’ll amaze yourself with what you can accomplish. 🚀💪