During the earlier years of programming, you may think that coding is the most significant part of writing software. Fast-forward to the future, you realise that code isn’t the main problem. It’s the things that happen before and in-between writing code – solving the problem at hand.

Many attempts have been made to try and make programming “easier”, and I’m not going to say it’s a wasted effort, but the state that programming languages are now, how they are designed, are pretty damn efficient, and so expressive in the way you write down your solution, that I think the effort could be placed elsewhere.

Solving the problem isn’t even the complete picture, we don’t even always know what problems we’re trying to solve. I’ve been involved in many projects where the scope for a deliverable isn’t even completely defined.

Here’s a good example, I build Software for businesses, from internal tools to highly available solutions for tens of millions of people, so I’d confidently say I can write code. But if I was asked to build an MMO game, I’d have an idea, but it’s a completely different beast altogether, I would most likely fail during my first, even second or third try. I just don’t know completely how to go about solving the problems that are involved in producing games, nor do I know all the problems that game developers face.

If you’re good already very good at writing code, spend time learning how to how to identify problems earlier and how to go about solving different problems.