Marc Köhlbrugge is a successful indie hacker and solo founder who is best known for creating BetaList, which shows promising startups. He also made the WIP community and Tweet Photo which let users automatically share Instagram posts to Twitter. Marc talks learning to code without a CS degree.
How did you learn to code?
Back in the 90s when I was still a little kid we had a computer that booted up in MS-DOS. I taught myself the basic commands like 'cd' and 'dir' to explore the hard drive and play different games that were installed.
There was one particular game that I found very difficult, but I desperately wanted to get my name into the high score leaderboard. Then I figured those scores must be store somewhere and started 'cd-ing' around and found a 'highscore.ini' file.
I never edited a file, but knew the English word "edit" so I tried typing 'edit highscores.ini' and sure enough I was able to see and edit the names and scores displayed in the game. I added my name with probably a ridiculous score, booted up the game, and lo and behold there I was at the top of the leaderboard. That was my "aha!" moment. I realised I could tell the computer what to do.
As I got older I thought I wanted to become a hacker, and started researching it whenever I got a chance to be on the web (this was still in the dial-up modem days). One tutorial explained hackers need to understand programming languages, so I randomly picked HTML and started building websites. Fortunately I didn't end up a true hacker, but the love for programming stuck and I haven't stopped programming since.
When did you first think or tell people “I can code”?
There wasn't a definitive moment where me or other people realised I could code. It's probably akin to a child learning to speak. There might be a moment where it says its first word, but there's no one moment where someone learns to speak. It's a gradual process.
If you can operate a computer (click on icons, etc) you are already giving the computer instructions which in a sense is what programming is. The more you use it, the more efficient you become. You might start automating things by selecting which apps to launch on startup, setting up an email auto-responder, etc. Those are all forms of programming.
Was there anyone that inspired you when you starting coding?
Not really. I started pretty young and didn't really know anyone doing the same. I definitely learned a lot from other people online through tutorials, but I didn't know who they were.
You have a lot of projects what with BeWhat has been the most challenging of yours to build?
I love starting new projects, but that comes at the expense of existing projects. There's only so much time in a day after all. This used to be a big challenge leading to many unfinished projects. That's something I've tried to work on.
Stick with a project long enough to give it a chance to succeed. BetaList is now almost 9 years old so I guess I'm getting better at it. That said, I still have the tendency to explore new ideas even though I know my current products need time and attention to grow as well.
How did you make Tweet Photo?
Tweet Photo is technically quite simple. I think I built the first version in a couple of days and honestly I haven't touched the codebase much since then. Most of my products are geared towards makers, so it's a nice change to see my work used by celebrities and random non-maker people.
Do you usually prefer to work on your own or with others?
I have worked in small teams before, but I find I can move much faster when I can make decisions on-the-fly. I try to chose to work on products that lend themselves to that approach. It doesn't work for all concepts.
With so many products and only 24 hours in a day I cannot possibly grow all of them by myself anymore. For BetaList I already work with someone to help with daily operations. I'm now starting to do the same for product development by hiring a developer.
What tips would you give someone with no CS degree who is just starting out with coding?
Build something simple you want to use yourself. Starting from scratch is hard though. So try to find a tutorial that teaches you to build something, that is close to what you want to end up building anyway. Then, step-by-step, change it so it better fits your own requirements.
Is there any common mistake you see newbie coders make when they are learning?
Don't overthink which programming language or framework to learn first. If you ask 10 people you'll get 10 different answers. Just start with a YouTube video or tutorial that appeals to you and go from there.
If you liked this, check out an article how Pieter Levels learned to code