Kevin Hodges
Mar 20, 2015
3 mins reading time

5 signs you're a good coder

1. You don’t solve problems until you understand the system/context.

If this sounds like a simple one then that’s because it is. You can’t consistently and reliably fix problems if you don’t know what else you are affecting further up or down the stack. Take your time, understand all the local variables and touch points, pick through the flow of the system learning where data comes from and where it goes to. In a mature system, chances are your problem has already been solved elsewhere, if others have architected their code properly you could well find your solution already exists in tools code or common functionality.

2. You keep it simple, stupid.

Anybody can make a solution complicated but it takes a clever person to make a problem simple. Regardless of the size of the problem, design your solution away from your screen, you’ll be amazed at what happens when you stop thinking in terms of code and actually consider the problem as a thing. Also, it’s a simple fact, the less code you write the less chances there are for bugs to occur.

3. You spend a good percentage of your time designing your solution.

You can write all the crap code you like but if it’s organised, decoupled and properly thought out, chances are it’ll still be useful, maintainable and scalable (who knew!). Think about variable and function names, they’re the contract you will live by for the lifetime of the system and often, coming up with a good name will help tell you when your architecture is wrong. Think small defined units of work and how they fit together.

4. You’ve learnt to detect code smell and more importantly, you act on it.

There are a few simple simple rules to code smell: a) DRY. If your code isn’t DRY, first, go make a coffee, then go back and make your code DRY. b) Take a step back or make your font smaller or something. If it looks bad, chances are it is bad. c) Long functions, heavy nesting, many parameters/variables, alarm bells should be ringing. d) Cyclomatic complexity, keep your code modular, focused and concise. e) Most importantly, if it doesn’t feel right but you’re not sure why, get a second opinion.

5. You don’t just think you are open minded but you are actually open minded.

If to you, other peoples opinions are their problem then it is you who has the problem. Regardless of what you believe, everyone has the ability to challenge everyone however high up or low down the perceived heriarchy they are. If you don’t give those opinions the time of day then a huge opportunity for someone to learn something is being missed. When discussing ideas with people, reading a blog post, listening to a conference speaker or whatever, don’t just think, comprehend.

Tags software, engineer, coding, programmer