DEV Community

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

Posted on

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. ๐Ÿš€

Top comments (0)