Build Things That Don't Matter (Yet)
You do not learn to swim by reading about water. The single fastest way to become a developer is to build a lot of small, ugly, pointless projects - and actually finish them.
If you take one thing from this entire series, make it this: you become a developer by building things, not by studying to build things. Everything else - the courses, the theory, the tutorials - exists in service of the building. A person who has built ten small ugly projects knows more, in the ways that count, than a person who has watched a hundred hours of polished courses and built nothing.
So let us talk about building.
Start embarrassingly small
The classic beginner mistake is to make your first project your dream project. You learn a week of Python and decide to build the next big social network, or a game with beautiful 3D graphics, or an app that will make you rich. Two weeks later you are drowning, defeated, and convinced you are not cut out for this. You were not un-cut-out for it. You just tried to deadlift a car on day one.
Start with something almost insultingly small. A program that converts temperatures. A script that renames all the files in a folder. A dice roller. A number-guessing game where the computer picks a secret number and you try to find it. These are not impressive and they are not meant to be. They are meant to be finishable - small enough that you will actually reach the end, and in reaching the end you will run into every ordinary problem a real project has: a bug, an edge case, a thing that does not work the way you assumed. Solving those on a tiny project is exactly the practice you need.
Finishing is the skill
Here is a truth that separates people who make it from people who do not: finishing is a separate skill from starting, and it is the harder one. Starting a project is a dopamine rush. Everything is possible, the blank canvas is exciting, you can already picture the finished thing. Then you hit the boring middle - the unglamorous plumbing, the annoying bug, the tedious edge cases - and a new, shinier idea appears, and you abandon this one to start that one. And the cycle repeats, and your hard drive fills with folders named "project-final" that are 20% done.
The developers who get hired are the ones who push through the boring middle and ship. Not because the finished tiny project is valuable in itself - nobody needs your dice roller - but because finishing teaches you the whole arc of building software, including the deeply unfun parts that make up most of real work. A hundred started projects teach you the fun 20% a hundred times. Ten finished projects teach you the whole thing ten times. Finish things, even small things, even things you have lost interest in. Especially those.
The progression
A rough ladder to climb, each rung a bit taller than the last. Rung one: tiny command-line programs - converters, calculators, text games. Rung two: something with a bit of persistence, a program that saves data to a file and reads it back, like a to-do list that remembers your tasks between runs. Rung three: something with a real interface, a simple web page that does something when you click, or a small app. Rung four: something that talks to the outside world, a program that fetches live data from a public API - weather, currency rates, a fun facts service - and does something with it. Rung five: a full small application that ties it together - a personal budget tracker, a habit logger, a tiny blog. By the time you can build rung five end to end, you are genuinely employable, whatever your degree situation.
Do not skip rungs because they feel beneath you. Each one drills a fundamental until it is automatic, and automatic fundamentals are what let you tackle the hard stuff without your brain overheating on the basics.
Build things you actually want
The projects that get finished are the ones you have a personal reason to want. A generic "build a to-do app" tutorial is forgettable. A to-do app you will use because your existing system annoys you is motivating in a completely different way. Scratch your own itches. Are you always losing track of which books you have read? Build the tracker. Do you and your friends argue about whose turn it is to pay? Build the splitter. Personal motivation carries you through the boring middle far better than discipline alone, because now the finished thing solves your problem, and that is a reward discipline cannot manufacture.
Let the projects be ugly
Your early projects will be badly organised, inefficient, and held together with digital tape. This is completely fine and entirely expected. Do not spend three weeks trying to make your first project "clean" and "professional" - you do not yet know what clean means, and chasing it now is just a sophisticated way of avoiding the discomfort of building. Make it work, then make the next one a little better. Skill compounds across projects, not within a single one polished to death.
The gap between a beginner and a working developer is not talent, and it is not the right course. It is a pile of finished projects, each one slightly more ambitious than the last, each one teaching a lesson that no amount of watching could. Start that pile today. Build something small, something pointless, something yours. Finish it. Then build the next.
And use version control from your very first project, which brings us neatly to the next post - the boring, essential tools that quietly separate hobbyists from professionals.
Jako Heiberg
Software developer with 40+ years of building things that work. Full-stack, FastAPI, React. Based in Cape Town, working remotely, worldwide.