Nobody talks about the part where nothing works.
They show you the finished product — the clean UI, the live URL, the GitHub repo. What they don't show you is the three hours debugging a CORS error at 11pm, or the day your laptop died and took your unfinished project with it.
I'm Philip Ahenda, a first-year apprentice developer at Zone 01 Kisumu, Kenya. I just built a full stack secondhand clothes marketplace from scratch — Go API, PostgreSQL, React, image uploads, messaging and authentication. Here is what actually happened.
There Is So Much You Don't Know You Don't Know
I thought building a full stack app meant writing code. That is maybe 40% of it. The rest is learning why your frontend on port 3000 can't talk to your backend on port 8080, what a JWT token actually is, why your database query fails silently and why go mod tidy downloads half the internet on a new computer.
Expect to spend as much time learning concepts as writing code. That is not a problem. That is how it works.
CORS Will Make You Question Everything
Every request from my React app to my Go API was blocked. No error that made sense. Just blocked. The fix was four lines of code. Finding those four lines took hours because I didn't understand the problem. I was looking at my code when the issue had nothing to do with my code at all.
This is a pattern in full stack development. The problem is almost never where you are looking.
Your Database Will Surprise You
My Go code expected a column called url. The database had image_url. My code expected an integer id. The database used UUIDs. Each mismatch gave me a cryptic error that took longer to understand than to fix.
Always check your actual database columns before writing code. Confirm every column name and type first.
The Laptop Died
Mid-project my laptop died. I had not pushed my work to GitHub. Everything was gone.
I started again.
Commit your code and push it to GitHub every single day. Your code is not safe until it is on GitHub. This is not optional advice. It is survival advice.
What Kept Me Going
The problem being real. I built this for Kisumu — for sellers who have no digital presence, for students who want affordable clothes nearby. Every time I got frustrated I remembered what the thing was for.
Abstract projects are hard to finish. Projects that solve real problems for real people have a different kind of pull.
The One Thing I Would Tell Myself at the Start
Don't wait until you understand everything to start building. You learn by building. The CORS error teaches you more about browsers than any article ever could. The database mismatch teaches you more about types than any documentation.
Start building. Break things. Fix them. Push to GitHub. Repeat.
Top comments (0)