Thursday 14 May 2015

Syntax For Show, Code For Dough


How do we asses a developers competence? Should we be concerned with an encyclopaedic knowledge of syntax or with a sound understanding of what good code looks like?
Starter for Ten 
To often we submit developers to a trivia quiz to find out if they know the latest buzzwords or class names of a language or platform. Obviously expert knowledge of a language or platform is advantageous but it shouldn't be the yardstick that separates a good developer from a bad developer.
Is it more important that a developer knows how to define an interface in a language or that he or she knows the power of abstractions and why loose coupling produces flexible maintainable code?
We can gain more insight into what a developer will bring to a team by understanding there philosophy (or lack thereof) then we can by determining if they can code by numbers.
A developer with little understanding of software design principles will quickly do more damage than a solid developer who is learning the syntax of a language.
The Painter not the Brush
Its important as developers that we define ourselves by our engineering skill not in the tools we currently know how to use.
We shouldn't describe ourselves as Java developers, iOS developers or Windows developers. We are engineers first and foremost who understand how to construct code that is fit for purpose now and in the future. The language or platform is an implementation detail, good developers will always be able to add another tool to the toolbox, bad developers will repeat the same mistakes on whichever canvas they try and paint. 
Just as its the painter not the brush that produces a masterpiece its the developer not the platform or language that builds great software. 

No comments:

Post a Comment