Project Habit Tracker: The Drama, The Developer's Loneliness, and The Trap of Vibe Coding
Current Session Stats
They say the biggest lessons in life don't come from well-written academic textbooks, but from the drama of real work. And the Habit Tracker project had plenty of that, before the first line of code even ran in my terminal.
The Chronicle of a Foretold... Solo
It all started with the best intentions at the Hellenic Open University (HOU). A group of fellow students decided to organize ourselves, beyond mandatory assignments, to build something "real". A group programming project in Python to get into the teamwork mentality, learn Git, and practice in market conditions.
Spoiler alert: Teamwork went out the window before we even reached the first commit.
The reality of adult life and obligations knocked on the team's door. No one bothered, no one did anything, and promises like "I'll write the logic this weekend" remained empty. Where you expect GitHub notifications, you only see absolute digital silence. But instead of quitting and letting it die, I took it personally. I said this project will happen, even if I have to carry it all on my back.
That's where the pain begins, the loneliness, but also the true glory of understanding what it means to "ship a product".
From Python to C: The "Metal" Martyrdom
After finishing the basic logic in Python —a language that with the help of Google and StackOverflow makes you feel like a wizard— I felt something was missing. I wanted to feel the "metal". I wanted to understand how things work "under the hood". So, I made the rather irrational decision to rewrite the backend core in C.
There I understood the difference of the old school. In C you don't have "vibes", you only have pointers, memory leaks, and segmentation faults. Every bug was an exhausting battle with documentation and memory allocation. This was the mindset we learned at HOU: Search, Read, Suffer, Solve. There was no easy way. You had to understand why malloc() returns NULL or why your string destroys the memory of the adjacent struct.
The Invasion of Vibe Coding: Shock and Awe
When it was time to convert the project into a Web App, Vibe Coding entered my life. The moment you see AI "spewing" entire blocks of code, CSS frameworks, and API endpoints in seconds, is shocking. It's like going from digging by hand to a massive excavator.
From searching 2 hours on StackOverflow to find how to parse a JSON in C, suddenly the AI gives you a full responsive frontend before you even finish typing your sentence.
But therein lies the biggest trap our industry has ever faced. The transition from "writing code from scratch" to "vibe coding" makes you feel omnipotent, but at the same time empties you of substantial understanding if you're not careful.
The Trap of Digital Garbage
Doing the project, I realized that vibe coding fills the system with digital garbage. The AI produces code that "works", but is often verbose, contains unnecessary libraries, or follows wrong architectural patterns that just happened to be in its training data.
If you don't have the algorithmic thinking you gained by sweating over C and data structures at HOU, you can't "clean" this mess.
🏛️ The Old School
- Primary Tool: StackOverflow / Google Search.
- Developer Psychology: Patience, deep analysis, and the constant question "Why does this work?".
- The Final Product: Pure knowledge that stays in your mind forever.
⚡ The New Era (Vibe Coding)
- Primary Tool: AI Orchestrators & Prompting.
- Developer Psychology: Speed, focus on intent, and "I want the result now".
- The Final Product: A fast MVP that hides "digital clutter" if you don't know how to check it.
Prompt Monkey vs Software Engineer
If this project became commercial and had to scale for thousands of users, the "prompt monkey" would hit a wall. They would spend days debugging without even knowing what the stack trace the server throws means. But the programmer, who has taken the beating of C, can see through the AI code, refactor it, and bring it to the measures of a correct architecture.
The job market isn't school assignments where we often look for a "Pass". It is your career, and in the real market, bad architecture costs money and time.
Conclusion...
The drama of the failed group work led me to a great truth: When you rely blindly on a tool, you become disposable.
Programming is not about typing. It's about thinking. AI can type 1000 words per minute, but it can't think for your specific architecture.
Learn programming, understand C, feel the pain of memory management, and then use Vibe Coding to take off. Don't let the tool make you "lazy" in thought. Transform from Code Monkey to Architect.
My Project (Check the source to see the cleanup!): christoskataxenos/habit-tracker-webapp