Hand On Developer
Intro
In the world of AI taking over all the fun (I love coding), I decided to continue learning Go — something I started a long time ago but left in the background.
I wanted to do something with Go — in the spirit of Advent of Code challenges, but less about algorithms and more about small, hands-on projects using system libraries to understand them better. Most importantly: doing it manually, by hand — no AI involved (not even Copilot).
The Idea
One small project every week. Because we’re all busy and never have “free time” — but we can always find a bit of it before or after work. Each project is a chance to explore the language and its capabilities.
Project for this week: CLI Notes Manager
Goal: Build a simple command-line tool to manage personal notes stored locally.
Description: Create a CLI application that allows the user to create, list, and search notes. Each note should include a timestamp and optionally tags. The tool should support storing notes in a local file (plain text, CSV, or JSON).
Core Features:
- Add a new note with optional tags.
- List all notes, optionally filtered by tag or date.
- Search notes by keyword or tag.
- Use timestamps for each note.
Configuration:
- Allow specifying the notes file location via a command-line flag or environment variable.
- Optionally configure default sorting, output format, or other preferences.
Extra / Stretch Goals:
- Export notes to JSON.
- Support simple tagging system for notes.
- Allow batch import/export.
- Enhance search with multiple keywords or tag filtering.
Learning Focus:
- CLI argument parsing
- File I/O
- String manipulation
- Working with timestamps
- (Optional) JSON serialization
Join In
You can:
- Take the weekly assignment from this page, pick any language, and do it just for fun.
- Or join the mailing list — I’ll send you a weekly reminder about the next project. No ads, no course, nothing to sell — just building for the joy of it.
I’d love to hear your feedback and see your results (and share them with others!).
Final Thought
Pick a language. Take the task. Let’s have fun!
Not sure which language to pick? Try .
Bored with the task? Don’t just criticize — suggest something better! I’d love to hear your ideas.