Thread: Definition of a bad programmer

  1. #1
    Registered User
    Join Date
    Nov 2013
    Posts
    31

    Definition of a bad programmer

    I have read many articles online about the software engineering workplace and how bad programmers can be. What does that typically mean? I imagine it as being someone who uses ill practices like documentation habits/bad indentation? I mean how bad can a professional software developer really be? If they got the job in the first place, doesn't that say something about their skills?

  2. #2
    Lurking whiteflags's Avatar
    Join Date
    Apr 2006
    Location
    United States
    Posts
    9,612
    I think the majority of "bad programmers" are applicants who end up not getting the job...

  3. #3
    Registered User
    Join Date
    Nov 2013
    Posts
    31
    I can't argue with that. It just seems that when I hear about "Bad Programmers" it's in the workplace.

  4. #4
    Registered User MutantJohn's Avatar
    Join Date
    Feb 2013
    Posts
    2,665
    Okay, consider this : Facebook doesn't need to be a particularly well-developed website to be successful. From a computer science standpoint, it could be incredibly weak but it's because the function of it is so prized, it's successful.

    I mean, it has to be functional, yes, but being functional is not the same thing as being good. I wouldn't say there are any 'bad' professionals, just passable ones at worst.

  5. #5
    Unregistered User Yarin's Avatar
    Join Date
    Jul 2007
    Posts
    2,158
    Quote Originally Posted by new2C- View Post
    ... how bad programmers can be. What does that typically mean? ...
    Really, it means what ever the author wants it to mean.

  6. #6
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    There are various thing that will cause me to consider someone a bad programmer. For example;

    1) Someone who claims to be an expert in <language> who can't reason about even simple code written in that language.

    2) Someone who keeps begging colleagues, friends, teachers, or in forums for people to do their coding for them.

    3) Someone who does the coding for the beggar in category #2.

    4) Someone who can't (or won't bother to) even formulate a problem description, uses a hacking approach to try to get the expected result and, when that fails, becomes a member of category #2.

    5) Someone who knows their programming language and libraries of choice quite well, but only uses them for work they are interested in - even when being paid to develop software to address a completely different problem.

    6) Someone who uses techniques from <language X> even when programming in complete different <language Y>, that is suited to very different technique.

    7) Someone who defaults to using brute force techniques that take a week of CPU time on as supercomputer, when a couple of hours of thinking about the actual problem would have identified a ten line solution that would run to completion in 20 seconds on an ancient desktop machine.

    8) Someone who writes code that is so confusingly structured that only THEY can maintain it.

    9) Someone who insists on working alone in a software development team environment.
    Last edited by grumpy; 03-17-2014 at 05:34 AM.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

  7. #7
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    In most companies the point is to make money, not follow best practices. There is little point in doing things better if it won't improve the bottom line.

    And this is quite a realistic attitude to have, by the way.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  8. #8
    Registered User MutantJohn's Avatar
    Join Date
    Feb 2013
    Posts
    2,665
    Quote Originally Posted by brewbuck View Post
    In most companies the point is to make money, not follow best practices. There is little point in doing things better if it won't improve the bottom line.

    And this is quite a realistic attitude to have, by the way.
    This is kind of why I like code as a hobby. It allows it to be a true craft instead of a money-maker. I know it sounds hippie to say but it's just honestly how I feel.

  9. #9
    Registered User
    Join Date
    Oct 2006
    Posts
    3,445
    I have experienced this firsthand. Skipping the testing phase is a very common occurrence. My company recently became a hardware pseudo-manufacturer. One day, one of my coworkers created a system that would allow us to streamline the deployment of our hardware, and made the mistake of telling the company owner. Literally the next day (and I do mean literally), we were shipping it out to customers. It's no wonder that the next week we were having problems with it, and he was getting the blame, with questions of "why isn't this working?" Of course it's not appropriate to tell the owner of the company that it's not working because of his reckless impatience, so we have to bite the bullet and deal with it.
    What can this strange device be?
    When I touch it, it gives forth a sound
    It's got wires that vibrate and give music
    What can this thing be that I found?

  10. #10
    Officially An Architect brewbuck's Avatar
    Join Date
    Mar 2007
    Location
    Portland, OR
    Posts
    7,396
    Quote Originally Posted by Elkvis View Post
    I have experienced this firsthand. Skipping the testing phase is a very common occurrence. My company recently became a hardware pseudo-manufacturer. One day, one of my coworkers created a system that would allow us to streamline the deployment of our hardware, and made the mistake of telling the company owner. Literally the next day (and I do mean literally), we were shipping it out to customers. It's no wonder that the next week we were having problems with it, and he was getting the blame, with questions of "why isn't this working?" Of course it's not appropriate to tell the owner of the company that it's not working because of his reckless impatience, so we have to bite the bullet and deal with it.
    Well, that's an example of shirking the rules done wrong. You're supposed to go off half cocked if it'll MAKE money, not LOSE money...

    Also, this pattern of bosses acting rashly with new information is the reason some companies have a culture of keeping secrets internally.
    Code:
    //try
    //{
    	if (a) do { f( b); } while(1);
    	else   do { f(!b); } while(1);
    //}

  11. #11
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    Quote Originally Posted by Elkvis View Post
    Of course it's not appropriate to tell the owner of the company that it's not working because of his reckless impatience, so we have to bite the bullet and deal with it.
    I disagree, and in fact have on multiple occasions told my bosses very much the same thing -- just in a few more words. I did so specifically because I had been burned by releasing untested products before, being blamed despite the fact that I protested the product's lack of readiness. Back up your claims with the numerous studies and data out there about the value of testing, and how finding/fixing problems early in the process is far more cost effective in the long run. Get some rough numbers from this instance in your company: cost to release, take back the bad product, customer service and support time spent on this, engineering hours spent, etc. Compare that to what it would cost to find all those issues pre-release.

    Yeah, it takes some stones to tell your boss they're making bad decisions, but (in my opinion and experience) it works out one of two ways, the first way being much more common:

    1. You show the boss you know what you're talking about, and have good business sense to go along with your technical skills. You are an asset to the company on multiple levels and your reputation/respect goes up. The management loves that you save them money. The developers and support staff love that you stood up to management to do things right and make their lives easier.
    2. Your boss is a a-hole and hates you after that. If he otherwise lets you work in peace after that, feel free to stay. If he makes you're life a living hell -- well, I wouldn't want to work for a company with crappy values, management and treatment of talented employees -- time to start looking for a new job. We are lucky, by and large the tech sector is booming, so we have choices.

  12. #12
    Registered User
    Join Date
    May 2003
    Posts
    1,619
    Quote Originally Posted by new2C- View Post
    I mean how bad can a professional software developer really be?
    I knew a guy who regularly just checked in code without testing (a lot of the time it wouldn't even compile, much less run successfully) because "that's what QA is for".

    Another complained to me "You told me the code needed to be done by this date - you never said it had to work!"
    Last edited by Cat; 03-18-2014 at 09:23 PM.
    You ever try a pink golf ball, Wally? Why, the wind shear on a pink ball alone can take the head clean off a 90 pound midget at 300 yards.

  13. #13
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    You told me the code needed to be done by this date - you never said it had to work!
    O_o

    o_O

    ^_^

    Code:
    int main(int argc, char ** argv)
    {
        int (*main2)(int, char **) = ((int (*)(int, char **))(void *)(rand()));
        return(main2(argc, argv));
    }
    You can't prove that it will not do exactly what you want...

    Soma
    “Salem Was Wrong!” -- Pedant Necromancer
    “Four isn't random!” -- Gibbering Mouther

  14. #14
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    O_o

    Okay, I know I'm pushing the joke. (I'd never do that.*) Still though, I was getting ready for bed when it hit me: that code might also be a quine.

    I wonder the odds...

    Soma

    * I might though, in four years.
    “Salem Was Wrong!” -- Pedant Necromancer
    “Four isn't random!” -- Gibbering Mouther

  15. #15
    Registered User
    Join Date
    Jun 2005
    Posts
    6,815
    Quote Originally Posted by phantomotap View Post
    Okay, I know I'm pushing the joke. (I'd never do that.*)
    <cough> Some might believe that.

    Quote Originally Posted by phantomotap View Post
    Still though, I was getting ready for bed when it hit me: that code might also be a quine.

    I wonder the odds...
    The real paradox is that code might be a quine while, simultaneously, not being a quine.

    To be or not to be, that is the question.
    Right 98% of the time, and don't care about the other 3%.

    If I seem grumpy or unhelpful in reply to you, or tell you you need to demonstrate more effort before you can expect help, it is likely you deserve it. Suck it up, Buttercup, and read this, this, and this before posting again.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Definition of myself
    By ahmed el sakka in forum C++ Programming
    Replies: 6
    Last Post: 04-26-2011, 11:33 AM
  2. Multiple definition error, one definition
    By frog in forum C++ Programming
    Replies: 9
    Last Post: 10-21-2010, 03:15 AM
  3. multiple definition??
    By coni in forum C Programming
    Replies: 4
    Last Post: 09-11-2009, 07:55 PM
  4. Definition?
    By reRanger in forum C++ Programming
    Replies: 6
    Last Post: 11-23-2004, 05:36 PM