How would you consider that a programmer is bad at what he or she is doing?
If possible... How should he/she improve?
|
How would you consider that a programmer is bad at what he or she is doing? If possible... How should he/she improve? |
|||||||||
|
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
|
When they fail to learn from their mistakes and from peer reviews. We are all green at some point; however, if you're not getting better or attempting to get better then you're a bad programmer. |
|||||||||||||||||||||
|
|
A big warning sign is if they are a "cargo cult" programmer - meaning they do things but don't know why they do those things (it's just "magic"). Great post by Eric Lippert here. From the article: programmers who understand what the code does, but not how it does it. |
|||||||||||||||||||||
|
|
Apart from the obvious lack of knowledge/ability, a programmer is a bad one, if their code is harder to read and/or maintain than it should be. |
|||||||||
|
|
When a team member is the negative producing developer.
Meaning the rest of your team has to do more work because of the bad developer. NNPP |
|||||||||||||||||||||
|
|
When it takes them a long time to solve the FizzBuzz problem. |
|||||||||||||||||||||
|
|
When they know there are better ways of doing things but still refuse to do them even when time permits. |
||||
|
|
|
When they produce things which belng on The Daily WTF on a regular basis. |
||||
|
|
|
When nobody else can read his code. It doesn't matter how bright you are; no programmer is an island. |
||||
|
|
|
Someone who says "It can't be done". In my opinion it's all about problem solving, the tool should be far less relevant than actually getting work done. If I've got to solve it using MS-Access or assembly language, it's a matter of time and money, not a matter of "It can't be done" A warning sign is too much focus on the academic and "proper" way of doing things, and not enough focus on getting work done. |
|||||||||||||||||||||
|
|
If he only knows the syntax of a language but don't know the basic concepts of algorithms. |
||||
|
|
|
A big tip-off for me is when they ask you or the other programmers development questions that clearly show they have made absolutely zero effort to figure it out on their own. A corollary is when they ask the same programming question multiple times indicating they aren't internalizing the information. |
|||||||||
|
|
A programmer who doesn't know what he doesn't know and isn't interested at all to find out. |
|||||||||
|
|
There are two categories for programmers for me - solo and team. Bad solo programmers are
Bad team programmers are those who falls into bad solo programmers category, including
|
|||||
|
|
Programmers who refuse to learn new technologies/languages, and insist on sticking to what they already know. Addendum: (adding what dash said below in the comments)
|
|||||||||
|
|
!(smart and gets things done) |
||||
|
|
|
Personally I think that any programmer who can look at their own code that they wrote a while ago and not find something wrong with it is not a good one. "A while" can scale with experience... I'd say between a few weeks up to a year or so. |
|||||||||
|
|
When I was a team leader in a smallish shop, there were several folks who I had to have reassigned (neither I or my direct supervisor had termination capability without a ton of Red Tape and a pile of documentation.) or to have no contract renewal at the end of the current engagement. Some of the types enumerated also worked for other team leaders, and they pretty much took the same view. Things which took folks into the "Bad Programmer" category in my book:
These are just some of the bad characters I have had to work with.... /s/ BezantSoft |
||||
|
|
|
Someone who does not pay attention to the details and is always in "it works, so I'm leaving it alone. All those exceptions in the logs don't matter" mode. |
||||
|
|
|
Not willing to admit they don't know the answer and/or unwilling to look things up. If you don't know it, don't give up - figure it out and get it done. |
||||
|
|
|
Those who don't know principles such as SOLID, DRY, OOP and so on. It's important to have good understanding of programming principles and foundations rather than knowing specific technologies. Those with solid foundation will be able to learn new topics easily and will produce better code. |
||||
|
|
|
Quiet obviously when a programmer writes A LOT of code. Very large functions, maybe copy/paste lines or code blocks, using way more ifs then necessary, etc. This could be because the programmer doesnt know a standard function to do what he wants but much of the time it isnt. |
||||
|
|
|
An embedded programmer that doesn't understand interrupts very well or multitasking. Also programmers that need to work with bit fields but don't grasp logical operations on them and shifting. |
||||
|
|
|
An immediate recognition signal is someone saying: "I don't understand why it doesn't work. I did everything right." |
||||
|
|
|
Being repreategly shown the right way to do it, and repeatedly just doing it the easy way. |
||||
|
|
|
One thing that distinguishes a bad programmer from a newbie programmers is stubborn insistence on implementing their favorite system in whatever language and API they are working in. I once inherited a system where the prior developer re-implemented (in Java) a large set of the Ashton Tate DBase III+ api layered on top of custom dbf access library. None of the Java collections framework was used. This was so he could write a Java/swing app that looked and acted like a DBase III+ (or possibly clipper) app. The Apps he wrote in this system had lite-bar menus and would open a full window form with a row of buttons on the bottom when you navigated the lite-bar to the option. It was like a little time machine back to the 1980s. The man was clearly a skilled developer. He knew enough that he was able to write that whole system himself in the time frame of that project. He was also able to re-use it on a few other internal systems. But he was an awful programmer in that his code misused the features of the systems he worked on. He was more willing to spend 3 months on a custom lib of dubious benefit than learn Java/Swing/SQL. |
||||
|
|
|
A big warning sign in my experience is when they don't comment their hacks.... You know what I mean: when you're forced to do something very hacky because there is simply no better way to do it. Good programmers will hate having to do it and put in inline comments saying how much they hate putting in that kind of hack, but there is no choice. Bad programmers will just put in the hack and not comment it. |
||||
|
|
|
I think that the only way a programmer can be bad at programming is if he stops listening to what other people have to say. Programming is about information. One needs to keep the ears, and eyes wide open. A programmer can only improve by hitting the books, and working hard. But, you should also focus on learning new things, not learning the same over and over (look for new experiences inside your specific field/industry). Good luck. |
||||
|
|