Are you a Coder, a Hacker or a Developer?

Coder, Hacker or Developer - which do you think best sums you up?  I’ll wager that most would consider themselves a ‘Developer’.

But in my many years experience - from learning the basics of coding, to my present day role of Architect and teacher/mentor - I’ve come to the conclusion that actually the three titles are all part of the career path in software development.

For me the titles perform a very good job of defining the role, but I feel the perceptions associated with each can be misleading.

Coder

Coder’s code.  To code means to string some computer language together in logical structures to perform some function.  That’s it.  And in today’s modern Agile world this is an extremely important skill.  Agile is to some extent about breaking down the work into manageable tasks or ‘User Stories’.  As a User I want to do x.

So a Coder will be assigned a task - write some code that completes a function.

All these functions are eventually strung together to making the whole.  But essentially most tasks come down to coding - hence why it’s the first step of all developers.

Hacker

To some a hacker is cool.  To Business & Government hackers are evil!

But let’s examine the term.  Hacker.  To ‘hack’ into an existing system and, well, bend it to your will.

Yes, in the wrong hands this skill can cause some real damage - but so can ANY tool in the wrong (or inept) hands.

But to me Hackers represent the next level of coding skills.  Hackers can obviously code, but hackers can also look into the base foundations that all coders use day in day out, and enhance them. Hackers are able to get right there into the code and make it do things you wouldn’t normally be able to do - how?  Because Hackers truly understand the underlying system they are hacking.

This is also an incredibly important skill.  Rarely do business requirements fit any standard mould.  I have heard coders say - ‘it can’t be done, the system just won’t allow that’.  The Hacker will see the challenge.  They’ll learn the underlying mechanism and find away to make it do what they need it too.

So don’t ever think hacker is a detrimental - term - for me it’s the next level in becoming a truly greater developer.

Developer

For all their technical ability, Hackers still lack an important skill - Business Acumen.  Developers (in the varied sense) are often viewed is ’techies’.  But a true Developer understands the business needs - and can draw upon their Coder and Hacker skills to find the most effective, efficient solution to the Business Problem.

The true Developer is the most misunderstood role.  A Developer not only understands the underlying possibilities, they can decipher the business speak and apply their knowledge to the problem at hand.

In this sense ‘Developer’ is often referred to as Senior Developer - and it’s not about age or years of service (although that often helps!) - it’s about having the full skill set.  The most successful developers, the one’s who’ve built billion dollar companies, are the ones who also understand Marketing, Sales, Finance and Leadership - not necessarily in the depth needed to specialise - but certainly enough to carry their own and talk the talk.

Anyone can learn the basic skills to lay some bricks, or plumb some pipes - but a Developer understands how the whole fits together!

Architect

To me an Architect is the natural progression of a Developer - They take the business skills to the next level and help drive the full Software Development Life Cycle (SDLC).

The next level is about seeing things beyond the current project, to the multitude of projects that businesses have to take on. It’s about having the knowledge to see where IT can help and drive the solution BEFORE being asked.

It’s about looking for efficiencies of scale - how sharing code or better still, services, between the different projects can help reduce overhead, development time and quality.

 

All these ’levels’ are equally important - but if you want to push your career or technical ability - then you need to understand the different roles available - and focus on what’s needed to take you to the next level.