DEV Community

Cover image for My Journey with Go and Two Practice Projects
Kaustubh
Kaustubh

Posted on

1

My Journey with Go and Two Practice Projects

Hi Devs 👋

I’m thrilled to share my journey of learning Go and how it led me to build two practice projects. This has been a rewarding learning experience, and I’m excited to share my learnings with you all.

🚀 Starting the Journey

I began my Go journey with "A Tour of Go" and freeCodeCamp. I explored Go’s:

  • Data Structures: Structs, arrays, slices, and maps.
  • Dynamic Behaviours: Methods, interfaces, and type assertions.
  • Concurrency: Goroutines and channels.
  • Advanced Concepts: Generics, pointers, readers, and image manipulation.

For a long time I loved C but had to part ways with it as it didn't support OOP and was highly memory unsafe. That's where I found Go, which was similar to C but had all the features that I missed in C. Including some of the dynamic aspects that made me choose this over C++.

🌟 Task Tracker CLI

One of my first projects with Go was a CLI Task Tracker Tool, which made me practice JSON parsing and file handling.

Features:

  • Add, view, update, and delete tasks directly from the terminal.
  • Track the status of your task: pending, in-progress, skipped, and completed.
  • Data Persistence: Stores the tasks in a JSON file of the current directory.

Lessons Learned:

  1. File handling with Go.
  2. JSON Marshalling/Unmarshalling.
  3. Taking command line arguments.

You can find the project here: CLI Task Tracker.

🌟 GitHub User Activity Tracker

Building on the momentum, I created GitHub User Activity Tracker, a tool for listing public GitHub contributions with just a username using GitHub's API.

Features:

  • Tracks commits, PRs, issues, and contribution history.
  • Provides an easy way to monitor and celebrate your GitHub activity.

Lessons Learned:

  1. Using GitHub’s API effectively.
  2. Structuring data and displaying it in meaningful ways.

You can check out the project here: GitHub User Activity Tracker.

Reflections and Future Plans

From understanding go's core concepts to applying them in projects, it was a great experience. These projects not only helped solidify my knowledge on go but also taught me how to build & read APIs.

What's next: I am building a Personal Blogging Platform that will store data on a Postgres database running on a docker container. This project will have an interactive TUI.

I’d love to hear your feedback on these projects! If you’re learning Go or working on similar tools, let’s connect and share insights. 🚀

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (0)

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay