Being a Developer

2020-05-12
#Blog#Development

So over the last few years, I've had plenty of discussions about "being a developer".

These conversations usually start from people saying "such and such is a good developer", because maybe they created an excellent interface or made a beautifully reusable class. Good code is excellent and people love talking about it. The conversation then usually steers somewhere towards "but they forgot about the product", overran the deadline or missed a visual issue. And I think that defines the difference in my mind between a programmer and a developer. I'd call that person a good programmer.

To me, a developer thinks about the product, a programmer thinks about the code itself. I'm not saying they don't have a real link - obviously if your product is code, then the code quality matters and will directly affect the product. But it's not the full picture.

I've worked in creating gambling games for 4 years now, and I certainly don't think I'm the best programmer. I do however like to think I'm a pretty good developer, I try think about the product, how the user will play through and see the game. This does sometimes mean I don't plan my code out the best, or do something today that'll fill the gap for the next couple of games, and will be written already marked for a re-write down the road.
This does of course mean you end up doing more work in total, but I believe this can frequently be worth it to save the time up front or in this particular game to put more effort in elsewhere.

A good programmer can think about the codebase moving forwards, optimise it and keep it readable, they're the person you turn to when you need a code review scrutinised. I have a good friend that I'd lean more towards the programmer than the developer, he has a massive love for all things software but has a problem with over complicating things towards the "perfect code". I turn to him when I have a problem or interest in a certain tech.

I do think both are necessary and important for a good product, and both sides need to keep each other in check.