How do I become a bad programmer

When would someone be considered a bad programmer? [closed]

How would you think a programmer is bad at what he or she does?

If possible ... How should he / she improve?


If they don't learn from their mistakes and peer reviews.

At some point we will all be green; However, unless you get better or try to get better, you are a bad programmer.

A programmer who doesn't know what he doesn't know and is not at all interested in finding out.

A big red flag is when you are a "cargo cult" programmer - meaning that you do things but don't know Why they do these things (it's just "magic"). Great post from Eric Lippert here.

From the article:

Programmers who understand what the code does but not how it does it.

A big tip for me is if you ask you or the fellow programmers development questions that clearly show that they made absolutely no effort to figure it out for themselves.

One consequence is if you ask the same programming question several times and state that you are not internalizing the information.

When it takes you a long time to solve the FizzBuzz problem.

Programmers who refuse to learn new technology / languages ​​and insist on sticking to what they already know.

Addendum: (adding the dash in the comments)

An extension of this are people who know a subset of the functionality of a technology but are not interested in learning more about it. Programming language, editor, other tools ...

When a team member is the negative producing developer.

That said, the rest of your team will have to do more work because of the bad developer. NNPP

When they know there are better ways to do things but refuse to do them even if time allows.

Personally, I think that any programmer who can look at his own code that he wrote some time ago and cannot find a bug is not a good one. "A while" can keep up with the experience ... I'd say anywhere from a few weeks to a year or so.

The ones who ignore warnings in their codes and only care about bugs.

When I was a team leader in a small store, there were some people I had to reassign (neither myself nor my line manager had a quit option without a ton bureaucracy and documents.) Or no contract extension at the end of the current engagement. Some of the guys listed worked for other team leaders, and they thought much of the same. Things That Put People in the Bad Programmer Category in My Book:

  1. Untrainable or passed out in the past
    When the programmer cannot pick up the new system, tool, or whatever is deployed, regardless of how the training / education is conducted. Must repeat training regularly.
    When the programmer only knows the technology or coding paradigm they used 10 or 15 years ago. It was good enough then, so why should they change?
  2. Cowboy coder
    The person who codes first without a plan. The 'programmer' who makes untested changes to production code and / or data "because we need to fix them now" is then surprised when the "fix" fails.
    The cowboy is definitely not a team player either. Doesn't need a smelly team.
  3. The weather vane
    This "programmer" is in love with "technology." du jour "and sees every new framework, every new language, methodology or whatever new and is current as the
  4. The "big brain"
    This "programmer" is so sure of his talents and abilities that things are done that make little sense to the project. e.g. Rewrite a standard library "because it is inefficient for our system" or introduce tools and techniques that are not appropriate for the problem at hand. e.g. Introducing Lisp or Forth in a mainframe environment.
  5. LOC a. Sand dredger
    This 'programmer' uses obfuscation and misdirection to do that a to increase . LOC: Lines of code for which is paid. I've seen code in this situation that was page by page, screen by screen, with duplicate structure and logic, only changing the names of the paragraphs or control variables to increase the number of lines.
  6. Indispensable expert
    The "programmer" who has the expertise to solve the problem at hand, but has "known" everything about it ever since. In fact, the entire organization would collapse if they were hit by a bus. { Observation: Those who think that they are usually indispensable. (Does anyone have the source for this aphorism?)}
  7. The pasta chef
    This "programmer" specializes in spaghetti code, seasoned with identifiers that are simply too difficult to understand without a syntactically implemented IDE. e.g. IndexI1O0, Index1I0O etc.
  8. Summer intern - especially for the subtype "Walking Disaster"
    I used to hire some late high school or college age interns in my old shop. Once a department needed a small database to keep track of equipment usage (now this was a delay and dBase III was being used). The guy has been taking notes all summer but wasn't finished when college started that fall. He got a week extension, then a second week. At the end of the second week I was sent out to take over his project and finally bring it back into system development. He showed me the things he had done and then the unfinished part. What worked was a feast for the eyes, but the application wasincomplete. When I opened the new box of formatted floppy disks for copies he said, "Just a second, let me delete my test files ..." and before I could say anything he had deleted a number of files.
    I was suspicious and found that his application was almost nothing more than a feast for the eyes when I returned to my store. Then I went back to the department and got Norton out and deleted the deleted files again to find some additional logic. even if incomplete.
    I didn't find bad logic, just bad behavior. The printer attached to the PC he was using was a bike printer. The normally built-in character set was a Swiss variant. The output of the deleted programs contains a name, an address, a DOB, some letter codes and some kind of ID number. The format and layout bothered me. All dates of birth for several people were hardly allowed to drink. Most of the addresses weren't there when I looked them up in our cross directory. When I showed the printouts to his supervisor, he looked at me and said, "Driver's license, don't you think?" I said I did. He said that's why he found the transparencies in the trash next to the Xerox. Our bad boy had made overlays to match his age and that of his friends on their driver's licenses. We reported it to the authorities.Not paid for his last two weeks.

These are just a few of the bad characters I had to work with ...

/ s / BezantSoft

Cannot adapt to new technology

Aside from the apparent lack of knowledge / skills, a programmer is a bad one when their code is harder to read and / or maintain than it should be.

When no one else can read his code. It doesn't matter how bright you are; No programmer is an island.

Someone who doesn't pay attention to the details and is always in "It works, so I'll leave it alone. All of these exceptions in the logs don't matter".

There are two categories of programmer for me - solo and team.

Bad solo programmers are

  • The ones that took too long to complete the simple task.
  • The ones who can't do their own research on what they're doing.
  • Those who, in a matter of days, will forget what was coded today and are unable to maintain their own code base well.
  • Those who cannot adapt to the demands change.

Bad team programmers are those who fall into the bad solo programmer category, including

  • The ones who cannot coordinate with other team members.
  • Those who do not welcome criticism.
  • The ones who don't know how to be useful to others and how to benefit from other team members.
  • Those who cannot write readable code.
  • The ones that do not comment for the sake of readability for the others.

Not willing to admit that they don't know the answer and / or are unwilling to look it up.

If you don't know, don't give up - find out and do it.

In my experience, if they don't comment on their hacks, it's a big red flag ...

You know what I mean: when you're forced to do something very hackneyed because there just isn't a better way to do it.

Good programmers will hate having to do this and will include inline comments saying how much they hate using this type of hack, but there is no other option. Bad programmers will only build in the hack and will not comment on it.

Obviously calm when a programmer is writing LOTS of code. Very large functions, e.g. B. copying / pasting lines or blocks of code, far more than is necessary. This may be because the programmer has no standard feature to do what he wants, but in most cases he doesn't.

Repeat that right Getting shown the way and making it easy again and again.

I'm moving my answer here from a closed duplicate to the question Can you tell if you're a bad programmer? The other topic was closed when I was composing my answer. My answer is more direct to the question as phrased by the other questioner and is better read if you understand that.

Sigh! Part of me didn't want to add anything to this already busy topic, but the other part of me won! Why did it win? Why do I bother adding more words to this particular multilog? Well, because to a certain extent I can see it a little differently than the many previous commentators.

Binary works great in computers: it's "1" or "0", "On" or "Off". With these two famous states we can abstract and encode a lot of information. But it doesn't work so well for human affairs: "good" or "bad", "healthy" or "crazy", "good" or "bad", "smart" or "stupid", "fat" or "thin", "alive" or "dead?" These kind of polarized reviews have always left the caring person who is part of me terribly dissatisfied. Whichever measurement scheme I choose, I usually find that the responses to such strong contrasts are actually somewhere along a continuum between one such pole and the other, rather than at both ends.

I've struggled with this polarization tendency for quite some time and my personal solution is that I find it far more useful to apply three words to such an assessment: " to what degree! "