Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

To put it another way... What is the most commonly held and frustrating misunderstanding about programming, you have encountered?

Which widespread and longstanding myths/misconceptions do you find hard for programmers to dispel/correct.

Please, explain why this is a myth.

share

locked by Yannis Rizos Mar 13 '12 at 20:47

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

24  
I'd like to see Mythbusters take on some of these. –  sunpech Sep 9 '10 at 17:47
8  
Anyone up for a Mythbuggers YouTube channel? :-) –  Tom Wijsman Sep 9 '10 at 21:32
1  
Ooooh, MythBusters and race conditions! Meesa like! –  user1249 Oct 24 '10 at 14:59
show 1 more comment

61 Answers

that you can speed up a late project, simply by throwing more people at it.

share
28  
Ah, from The Mythical Man Month. en.wikipedia.org/wiki/The_Mythical_Man-Month –  sunpech Sep 9 '10 at 17:49
63  
We use a colorful saying "You can't put 9 women into a room and make a baby in a month". –  Walter Sep 9 '10 at 23:09
10  
Last week we added 4 people with no project experience to "help" meet an unrealistic schedule. This week's report from the project lead to upper management lists: "Schedule slippage Cause: Reduced efficiency due to learning curve of new team members" and "Recovery Plan: Continuing to add more people where opportunity exists." Unbelieveable. –  AShelly Sep 10 '10 at 16:23
38  
You could put 9 women in a room with me, and I'll give it my best shot :) –  Xepoch Sep 17 '10 at 16:26
7  
@Walter, but you can have 9 babies in 9 months and a little-league baseball team in 7 years. –  Huperniketes Oct 19 '10 at 9:27
show 8 more comments

The whole hollywood mentality (for lack of a better name) that whenever a programmer in a movie/tv series speaks up he needs to articulate every technology he needs (I need a PHP front-end and a MySQL back-end!!!11)... And then some more that doesn't make any sense at all of course.

If I would talk like this I'd probably get kicked in the nuts.

share
add comment

Good Programmer if you spend more time on programming.Practice makes a person perfect but doesnt make him good.

share
add comment
  • That OO means quality.
  • That the OO approach is the right approach.
  • That the job of a programmer is to write code.
  • That language matters.
share
add comment

That being a manager is better then being a coder. Being a manager is BORING. Anybody who went into pure management has never loved programming to begin with.

share
show 1 more comment

The biggest myth is that it's easy.

share
add comment

Using English (or your native language) to describe a problem:

is more useful than providing a compilable example of the code the illustrates the problem.

share
add comment

There is a language called C/C++

Or that the languages are so close that skills are interchangeable.

share
2  
+1 but at the same time some seem to think that any use of C/C++ as a phrase is wrong. how are you meant to refer to their common subset? –  jk. Jan 12 '11 at 9:56
2  
@jk01: Yes syntactically they have a common subset. But knowing this is not enough. The style used by both languages is now so divergent that they don't translate. –  Loki Astari Jan 12 '11 at 17:28
add comment

That writing software is actually about writing code.

share
show 1 more comment

Programmers who became managers saying:

"Three weeks?! I've coded in the past, how hard can it be?"

share
add comment

Among programmers: That Delphi is dead, dying or on life support.

share
2  
Do you guys use Delphi? –  Peter Turner Oct 1 '10 at 19:55
show 4 more comments

If we use something other than Java, C# and C++ in our project, we won't find any programmers to support it.

share
5  
@bigown, "obscure"? How obscure? Is TCL obscure? Haskell? Pascal (Delphi)? Python? I think they're not obscure. Many people think they are, and only a very narrow set of languages (C++, C# and Java) are allowed in "serious" development. –  Pavel Shved Sep 9 '10 at 14:12
5  
@bigown: oh, you mean obscure like COBOL? :p –  AnonJr Sep 10 '10 at 11:09
2  
I once worked for a small company doing Objective-C code on Linux. The CEO - who wasn't an engineer but had some technical knowledge - couldn't believe that there were ObjC programmers around or that anyone else used it. In fact they never had any problems hiring good developers. –  user4051 Oct 24 '10 at 18:17
4  
I've read an argument that exactly the opposite is true: for languages which are obscure (or at least commercially insignificant) but cool, fun, and interesting (which in that context meant Python and Ruby), there are more programmers than jobs. Plus, they're all people who are into cool, fun, and interesting languages, so they must be smart. So actually, working in Python means you'll find it easier to hire smart programmers than if you're working in Java. Don't know if i believe it, but it's at least as plausible as the orthodox idea! –  Tom Anderson Nov 26 '10 at 20:11
show 2 more comments

The worst myth: If you are programming for a long time then you can be a Project Manager easily.

And that you should become a project manager if you have been programming for a long time.

share
3  
Or even worse, if you've never programmed or managed a programming project, reading a few books and will magically make software happen. Been down that road with a previous PM and don't care to repeat it as long as I live. –  Evan Plaice Sep 11 '10 at 9:06
4  
Even worse: Since all the great programmers on the team prefer writing code over writing reports, we should promote the mediocre programmer to Project Manager. The thought is he'll be "tecnical enough". The fact is he ends up being a disinformation filter between the team and upper managment. –  AShelly Sep 11 '10 at 19:42
2  
Also: if you're the best programmer, you should obviously become the project manager and from that point on stop doing any actual programming yourself! No, thank you very much, but I'll still take the raise. Note: I'm not talking about becoming a lead programmer or any such thing, I'm talking about the managers who think it's a clever idea to promote everyone to their level of sufficient incompetence. –  pluma Sep 19 '10 at 17:22
1  
Also known as Peter Principle. en.wikipedia.org/wiki/Peter_Principle –  Spoike Nov 22 '10 at 18:24
show 2 more comments

All programs written in C/C++ will execute faster than Java/C# equivalent programs.

share
add comment

Which wrong ideas are widespread for long time

There is a very widespread belief among programmers about how to find performance problems. It is that in order to find them, you have to measure them.

The simplest counter-example is an (undesired) infinite loop. It takes 100% of time, doing things that are completely unnecessary.

How do you find the problem? You get it under a debugger and pause, halt, or interrupt it. Then you look at the stack, because you know the loop is somewhere on it. You've caught it in the act. Did you measure it? or just find it?

Suppose it's not an infinite loop, it just takes longer than you think necessary. Suppose the unnecessary work is less than 100%, like 90%, 50%, or 20%. It's the same idea. If you pause it, that percent is the chance that you will catch it in the act. (You don't have to know what the percent is to catch it.)

Just to be sure, you can pause it several times. As soon as you see it doing something, on as few as two samples, that you can replace with something faster, you can fix it for a nice speedup. Not only that, you've just made any other problems easier to find, because the time is shorter and they take a bigger percent. This can "snowball" until the code is very close to optimal.

Of course, if you want to measure the problem, just take more samples, but that's not a prerequisite to finding it.

People tell me, wishfully, that this is what sampling profilers do but do it better. Many would rather debate the issue than see for themselves.

share
4  
Nice subject for an answer. I'm feeling pedantic: I say you are still measuring, it's just a rough measurement. –  MarkJ Nov 2 '10 at 23:06
show 4 more comments

That web apps can be up "7x24."

Ask any business person what downtime is allowed and they always insist on 100% uptime. Nevermind that 1 minute downtime per week is still 99.99% and is nearly unachievable for an organization smaller than a major utility.

share
8  
"We need 5 nines!!!" No...no, you don't. People know how to hit 'refresh'. And if you're worried about lost sales...well, if your profit margin is 0.001%, rethink your business plan. –  Alex Feinman Oct 26 '10 at 12:58
2  
@Alex Feinman you'd be amazed how many people don't know how to hit refresh. –  Glen Solsberry Feb 3 '11 at 21:19
add comment

That there is a single "best" tool/solution/answer to any problem/question

share
add comment

That Hungarian notation only means that you prefix variable names with a type (like int iArraylength = 5; ) instead of what kind of data it holds (like int xcTextfield = getTextfield().coord.x; )

"Systems Hungarian notation" != "Apps Hungarian notation"

share
1  
+1 for talking about a code related myth. –  Sergio Acosta Oct 8 '10 at 2:43
5  
both are still an abomination in a strongly typed language –  jk. Jan 12 '11 at 9:47
show 1 more comment

That learning the syntax is the hard part.

share
add comment

That because you're a programmer, you know how to fix [person]'s virus ridden machine.

share
34  
Car analogy / get out clause: "I'm a racing driver not a mechanic." –  Peter Boughton Sep 9 '10 at 17:48
15  
This comic is relevant: theoatmeal.com/comics/computers –  lunixbochs Sep 9 '10 at 20:31
16  
xkcd.com/627 –  back2dos Sep 9 '10 at 20:43
21  
@Tim if she can cook, start volunteering her to cater your friends' parties –  Steven A. Lowe Sep 9 '10 at 21:05
19  
Its not that I don't know how to... It that I don't want to waste hours fixing your machine that you will break in 2 weeks anyway. –  ChaosPandion Sep 10 '10 at 2:21
show 16 more comments

If you havent gone to university, you are not suitable for the job

share
27  
Also: a programmer with a degree is better than a programmer without and should be paid accordingly. The same probably goes with ageism and sexism. This kind of nonsense infuriates me -- if you don't know how to write good code, I couldn't care less about where you went and what you did. This may be another case of programmer/nerd culture (skill == authority) clashing with corporate culture (rank == authority). –  pluma Sep 19 '10 at 17:37
1  
And yet the people teaching at University also seem to think that they can generalize the behavior of programmers and projects by observing how students operate when teamed up. Communications of the ACM is good for 4-6 such articles a year. –  MIA Sep 30 '10 at 3:20
1  
@Billy How about around here, where a college diploma means jack, but a university diploma will grant you everything? Both go to school, both are arguably better than the other, but there's a sociological difference –  Slokun Oct 1 '10 at 17:01
4  
@Billy: in Canada, university awards you a degree and colleges give you diplomas. Colleges are more like "schools where you learn practical stuff". Think community college in the US vs normal college/university. Here they typically have two-year specialized applied programs. You can't get a bachelor's (masters, etc.) from a college. Basically, you'd go to college to study how to write software and to university to study computer science. University degrees are given much stronger preference in hiring. –  Anna Lear Oct 1 '10 at 18:33
4  
Universities teach at least one important thing: the mindset. This is very important, but those who don't know that... well, don't know that. –  user1249 Dec 2 '10 at 12:00
show 16 more comments

Computers and software improve working process by itself.

share
add comment

That when programmers say it's very hard to do/simply impossible, HR thinks they're lazy and unmotivated

share
2  
Include management too –  Prasham Jan 4 '11 at 12:21
show 2 more comments

That any code written in an OOP (C#, C++, Java) language by anyone is automatically Object Oriented and "Reusable".

It wasn't just once where I was asked to reuse a thousand line code block or a class in an architecture that did not have any patterns except inheritance (which doesn't even count). Apparently, copy pasting also counts as good code-reuse for anyone who doesn't know the difference between an OO-language and OOP itself.

A favorite TDWTF that's happens every so often: Code-Refuse

share
add comment

OOP reuse. It's the biggest fallacy marketed in programming.

share
1  
Well. The HP XL WESM is roughly 85% the same as the Symbol WS5100 (there's OEMming going on). Would you have me copy-and-paste that percentage of my monitoring and configuration code so that there's twice as many bugs, or would you prefer that I rewrite it from scratch and take forty times as long and there are five times as many? Or are you just pressured by foolish management which thinks that it's one of several magical panaceas to make $project faster? –  fennec Oct 2 '10 at 2:58
1  
Reuse in the small was solved 40 years ago and more. Reuse in the large is difficult and hasn't been solved yet IMHO. Just like Robert Glass says in Facts and fallacies of software engineering –  MarkJ Nov 2 '10 at 22:52
add comment

that as a programmer you know everything about latest hardware trends, overclocking, case mod, etc. friends and relatives consult you when they buy their gears.

share
5  
I used to keep on top of some of these things back in highschool, but nowadays I find that they are generally irrelevant to what I do and while some are neat, I'd much rather pay someone who knows their stuff and use the time I save doing what I like (i.e. writing code). Maybe another "good with computers" misunderstanding. –  pluma Sep 19 '10 at 17:40
2  
+1, or a slightly one off tangent - Because your a programmer, you have a super duper water cooled 300 LED fan spinning flashing top of the range brand new shipped from the manufacturing plant before its been released case. Erm not really! Its a decently fast machine, its in a black very cheap case. Dont really care beyond that! –  Dot Net Pro UK Sep 22 '10 at 9:16
show 2 more comments

That because you are a programmer, you know how to fix the copier.

share
6  
But I do know how to fix the copier! –  configurator Sep 19 '10 at 3:02
3  
Programmers are by nature problem-solving beings who can take in large amounts of information and reason about it. That makes them probably better at average at fixing things. It doesn't help my house plants, though. I now mostly ignore them, let my wife take care of them, and don't think too hard at them, just in case. –  David Thornley Sep 22 '10 at 19:36
show 1 more comment

That premature optimization means you shouldn't optimize at all. I've seen more horrendously bad databases because no one wanted to consider performance (critical to any database system) in design as that was premature optimization than any other database design issue . Rubbish, there are known performance killers, stop using them as your first choice.

Another myth, it's too hard to refactor the database. No but you have to consider how to do refactoring in the design phase to do it effectively. And BTW, the longer you wait to fix that annoying design-based performance issue, the harder it's going to be to fix.

Another bad myth, database design should reflect OOP principles. No, databases are designed to work with sets not OOP principles. Some OOP things will cause horrible performance problems and others are just pain silly in database terms.

Finally, you should enforce data integrity in the application. Databases are going to last past the application and would lose the rules when the application is replaced, mulitple applications are going to access them and there will often be the need to run direct queries to fix things that do not go through the application. I have never seen a database that refuses to enforce data integrity in the datbase that has good data.

share
5  
+1 for the first paragraph. Premature optimization is the root of all evil; writing bad code for no bloody reason is even worse. –  configurator Sep 19 '10 at 2:42
3  
"Some OOP things will cause horrible performance problems and others are just pain silly in database terms" - could you say which? I know about OOP, but not a lot about databases, and i'm interested in how far i can carry ideas from each side to the other. –  Tom Anderson Nov 26 '10 at 20:13
show 4 more comments

That any M.Sc. with one programming course is enough to be hired as a software developer.

share
show 3 more comments

Any programming environment with a visual designer of some sort will make it so that business users can "write" the program and actual programmers aren't needed.

share
9  
Ah, yes. It's always fun when some company creates a new authoring tool to make programmers redundant and then everybody who adopts it goes ahead and hires highly-paid <authoring tool> specialists to actually use it. Case in point: Joomla! and all that non-sense. –  pluma Sep 19 '10 at 17:26
show 2 more comments

Not the answer you're looking for? Browse other questions tagged or ask your own question.