… is that you may end up having little to no understanding of domains where there are actual problems worth solving. For instance, Noni and I were discussing one of Noni’s ideas for payment processing. As software people, both of us can quickly locate the api and frameworks required and even build an MVP in little to no time. But neither of us are aware of what regulatory aspects control such finance apps. That means we now need to engage with a finance specialist (like an auditor or a chartered accountant or a banker). No, that’s not a bad idea as is. But it leaves us looking naive even though we pack close to 10 years of programming expertise each.

My advise to people who are just looking forward to starting a career is this: learn programming, its a good tool to know. Master it in your spare time. Don’t bother specializing in it. Specialize in domains. Domains that actually matter to people. People that may or not be fellow software professionals. Domains that are historically significant and domains that won’t just fade away with time.

Programming is more like a stove. If you know the recipe and also know how to operate the stove, you can easily make an interesting dish to eat. But knowing only to operate the stove doesn’t go very far. On the other hand, knowing just the recipe is still good enough, because you can always hire a maid to help you with the stove!