Jako Heiberg
HomeInsightsMusingsPortfolioAboutContact
Jako Heiberg

From DBase III+ to edge computing.
The journey continues.

Pages

  • About
  • Portfolio
  • Resume / CV
  • Insights
  • Musings
  • Archive
  • Contact

© 2026 Jako Heiberg · Cape Town, South Africa · UTC+2

Built with React + Cloudflare Workers. No PHP was harmed.

Back to Insights
Insights

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.

June 16, 2026
5 min read
Technology

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.

Read next

So You Want to Be a Software Developer

The Boring Tools That Make You Employable

Nobody makes tutorials about the command line and version control because they are not exciting. They are also the difference between looking like a hobbyist and looking like someone worth hiring.

Related Posts

Insights

Vim From Scratch — Part 2: Modal Editing, and Why Modes Are a Feature

Every other editor lets you type text the moment you open it. Vim makes you ask for permission first. This sounds insane until you realise it's the reason Vim can do so much with so few keys.

August 26, 2026
5 min read
Insights

The Long Game: Staying Employable Without Burning Out

A software career is a forty-year marathon disguised as a series of sprints. Here is how to keep learning without chasing every shiny thing, and keep going without burning to the ground.

August 19, 2026
6 min read
Insights

Your First Job: What Nobody Warns You About

You got in. Now everyone else seems to know things you do not, the real codebase is a horror, and you are convinced they will realise they made a mistake hiring you. Good news: all of that is completely normal.

August 12, 2026
6 min read