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:
- File handling with Go.
- JSON Marshalling/Unmarshalling.
- 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:
- Using GitHub’s API effectively.
- 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. 🚀
Author Of article : Kaustubh Read full article