What is your job as a developer? Is it to write code? Well of course, but is it just about writing code?
There is a general term called “code monkey”, which basically means “doing coding so simple a monkey could do it”. So if coding can be so easy that a monkey can do it, why are software development the most sought-after skill (in South Africa and probably other places in the world)?
Because developers are hired to solve problems and build solutions. In order to build a solution, you need to understand the problem, you need to think about it, analyze it. Then you need to figure out how to build the solution. Along the way of defining a solution, there are obstacles that need to be overcome. These obstacles can include limitations of using a specific framework, technical debt or legacy code that needs to be dealt with, other team members with different skills that needs to be taken into consideration, future-proofing the solution for whatever changes or additions can be expected next and the list goes on. These are all the things that need to be well thought about even before a single line of code is written. Before you even touch your IDE, you need to have a clear idea what it is that you are going to code.
If you are a code monkey, it means you are just there to write code. The simplest, easiest code just to get the job done, without being fully aware of the impact that your code needs to have. How do you know if you are a code monkey? It’s simple. Take any code kata or even an advent of code challenge. If your first instinct is to start tapping away at your keyboard to start coding a solution, well then…
The right approach would be to first understand the problem. Read through the challenge and get a clear idea of what the expected outcome is. Then start thinking about what the solution needs to look like. What is it that you need to do to meet the final requirements. What steps to you need to take. Where is the starting point, and what obstacles are you expecting to find along the way. Design your solution without thinking about a single line of code. By mapping everything out first, you get a clear understanding of the problem and what you need to do to solve it. Then the easy part is just translating that solution into code.
That is why doing code kata’s is so very important. It doesn’t teach you to write better code, but it teaches you how to craft better solutions.
Being a developer doesn’t mean your job is just coding. Writing code is just the side-effect of what you are actually hired to do. Solve problems.