darwen
August 24th, 2005, 06:49 PM
In my experience, there are four groups of programmers :
Hackers
These are people who have no consideration about design issues. They hack away at code until it works, and then deliver it.
How to identify a hacker :
(1) Huge blocks of code commented out.
(2) Code like this left in place :
void CMyClass::MyFunction(LPSTR szString)
{
// ....
szString[nIndex + 3] = '\0';
szString[nIndex + 2] = '\0';
szString[nIndex + 1] = '\0';
}
or
CMyClass::CMyClass()
{
m_nMyInteger = 2;
m_nMyInteger = 1;
m_nMyInteger = 4;
}
Programmers
I don't mean to be derogatory here, it's just a name I'm giving to a particular type of person (for want of a better one).
These are people who need specifications.
They can't think for themselves. If you say to them "maybe this is a good idea" they take it as gospel and base their entire coding strategy around what you might have said as an example.
They're kind of automaton - robots. You tell them what to do and they're fine, but if they have to think for themselves then like most robots on Sci-Fi movies they shut down.
Software Engineers
These people are more interested in producing 1000 pages of UML design than actually writing the code.
If you take offense to this, then see the last statement.
But these are people who have reasonable technical knowledge, but have a great deal of knowledge about how management works and more specifically how they can make the management system of their company work for them.
These people always suggest that they know the best way of doing things (e.g. let's use C# - when they have no idea what they're talking about), impress management and generally talk more bull than I've got in my cess pit.
Unfortunately these people are more likely to make big money than us in the final section...
The Undefined
The Undefined can do everything.
The Undefined can be a hacker when necessary.
The Undefined can be a programmer when necessary.
The Undefined can take on managerial skills and be a software engineer when necessary.
Mainly that the Undefined care about their art, their craft and actively try to improve themselves in everything that they do.
In short, the Undefined care about what they are producing.
Generally the Undefined will always produce great designs for software, in a very short space of time and combine all the above's advantages without any of their disadvantages.
The Undefined work in the job that is required of them at that moment in time.
However, The Undefined are never really appreciated by management. Mainly, from my experience, because this section of people are not understood by management.
Good management of staff comes from the understanding that no-one wants to be working. And that the people that are working for you will 90% of the time not deliver either on time, or even what you wanted them to do in the first place.
Management is there to solve and account for problems.
The "Undefined" programmer doesn't cause problems and actively goes out of their way to solve problems which they see arising in the team which they are working in.
Am I wrong in this categorisation ?
Any thoughts ?
Darwen.
Hackers
These are people who have no consideration about design issues. They hack away at code until it works, and then deliver it.
How to identify a hacker :
(1) Huge blocks of code commented out.
(2) Code like this left in place :
void CMyClass::MyFunction(LPSTR szString)
{
// ....
szString[nIndex + 3] = '\0';
szString[nIndex + 2] = '\0';
szString[nIndex + 1] = '\0';
}
or
CMyClass::CMyClass()
{
m_nMyInteger = 2;
m_nMyInteger = 1;
m_nMyInteger = 4;
}
Programmers
I don't mean to be derogatory here, it's just a name I'm giving to a particular type of person (for want of a better one).
These are people who need specifications.
They can't think for themselves. If you say to them "maybe this is a good idea" they take it as gospel and base their entire coding strategy around what you might have said as an example.
They're kind of automaton - robots. You tell them what to do and they're fine, but if they have to think for themselves then like most robots on Sci-Fi movies they shut down.
Software Engineers
These people are more interested in producing 1000 pages of UML design than actually writing the code.
If you take offense to this, then see the last statement.
But these are people who have reasonable technical knowledge, but have a great deal of knowledge about how management works and more specifically how they can make the management system of their company work for them.
These people always suggest that they know the best way of doing things (e.g. let's use C# - when they have no idea what they're talking about), impress management and generally talk more bull than I've got in my cess pit.
Unfortunately these people are more likely to make big money than us in the final section...
The Undefined
The Undefined can do everything.
The Undefined can be a hacker when necessary.
The Undefined can be a programmer when necessary.
The Undefined can take on managerial skills and be a software engineer when necessary.
Mainly that the Undefined care about their art, their craft and actively try to improve themselves in everything that they do.
In short, the Undefined care about what they are producing.
Generally the Undefined will always produce great designs for software, in a very short space of time and combine all the above's advantages without any of their disadvantages.
The Undefined work in the job that is required of them at that moment in time.
However, The Undefined are never really appreciated by management. Mainly, from my experience, because this section of people are not understood by management.
Good management of staff comes from the understanding that no-one wants to be working. And that the people that are working for you will 90% of the time not deliver either on time, or even what you wanted them to do in the first place.
Management is there to solve and account for problems.
The "Undefined" programmer doesn't cause problems and actively goes out of their way to solve problems which they see arising in the team which they are working in.
Am I wrong in this categorisation ?
Any thoughts ?
Darwen.