101
votes

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.

4
  • 24
    I'd like to see Mythbusters take on some of these.
    – spong
    Commented Sep 9, 2010 at 17:47
  • 8
    Anyone up for a Mythbuggers YouTube channel? :-) Commented Sep 9, 2010 at 21:32
  • 1
    Ooooh, MythBusters and race conditions! Meesa like!
    – user1249
    Commented Oct 24, 2010 at 14:59
  • @TomWij that would be great to have a website with such name! Commented Oct 24, 2010 at 15:21

61 Answers 61

272
votes

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

21
  • 34
    Car analogy / get out clause: "I'm a racing driver not a mechanic." Commented Sep 9, 2010 at 17:48
  • 15
    This comic is relevant: theoatmeal.com/comics/computers
    – lunixbochs
    Commented Sep 9, 2010 at 20:31
  • 16
    xkcd.com/627
    – back2dos
    Commented Sep 9, 2010 at 20:43
  • 21
    @Tim if she can cook, start volunteering her to cater your friends' parties Commented Sep 9, 2010 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. Commented Sep 10, 2010 at 2:21
266
votes

A common HR thing that drives me nuts when I'm job hunting: the implicit assumption that all coding skills are language-specific, that there is no software engineering expertise that transcends command sets. That ten years experience in Java and another five in Perl mean you'd be completely useless on a project that uses, say, C#.

"Yes, there's a learning curve. But I've made harder transitions than this. I'll make you a deal, pay me 80% for the first month and at the end of that time if I'm not ... oh, wait, we're not actually having this conversation, because your HR monkey simply deleted my application."

10
  • 91
    +INF for HR monkey.
    – Rusty
    Commented Sep 9, 2010 at 19:12
  • 67
    I have had an HR guy turn me down for a role because I knew how C#, but he was looking for someone who could code in dotNet.
    – Dan
    Commented Sep 14, 2010 at 7:51
  • 11
    @burnt_hand: Yeah, I know dotNet. I also know Excel and Internet Explorer. I can haz contract now?
    – Alan Plum
    Commented Sep 19, 2010 at 17:00
  • While I agree that there are huge overlaps with syntax, structure, SDLC, etc, between Java and C#, if they give you any reasonably tricky C# test in your interview, how will you fare? Commented Oct 16, 2010 at 17:45
  • 2
    @Kyralessa - I think that I now know enough about the underlying theory of computing and functions of computers to not make basic errors in any programming language. I can read the documentation. However, something that a language specific hire with limited engineering skills /will/ do is make basic errors in the structure, design, correctness, scalability, reliability and maintainability of the program that will potentially cost large amounts to fix. If you don't lose all your customers due to the low quality of the software in the meantime (assuming your project actually gets anywhere). Commented Dec 24, 2010 at 9:57
260
votes

If you're not typing, you're not working.

I believe zombie blank stares and coffee walks are essential to programmers organising things in their heads.

10
  • 9
    Page up, page down...page up, page down... Commented Sep 9, 2010 at 18:12
  • 139
    I'm not paid to type, I'm paid to think. I provide typing as a bonus. Commented Sep 10, 2010 at 0:08
  • 11
    "code's compiling" Commented Sep 10, 2010 at 8:38
  • 11
    This is why I don't think very highly of online freelancing markets that offer recording "working time" with a screengrabber and a webcam. WTF? If you think my quote is good, why do you care what it is exactly that I do in the time I'm charging for?
    – Alan Plum
    Commented Sep 19, 2010 at 16:59
  • 10
    "If I had more time to code, I'd write fewer lines." - take off on Abe Lincoln quote.
    – JeffO
    Commented Sep 27, 2010 at 19:53
158
votes

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

11
  • 28
    Ah, from The Mythical Man Month. en.wikipedia.org/wiki/The_Mythical_Man-Month
    – spong
    Commented Sep 9, 2010 at 17:49
  • 2
    Actually, uh, you can. -1 (yeah, behold a myth carrier!)
    – P Shved
    Commented Sep 9, 2010 at 18:46
  • 63
    We use a colorful saying "You can't put 9 women into a room and make a baby in a month".
    – Walter
    Commented Sep 9, 2010 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
    Commented Sep 10, 2010 at 16:23
  • 7
    @Walter, but you can have 9 babies in 9 months and a little-league baseball team in 7 years. Commented Oct 19, 2010 at 9:27
132
votes

That writing software is easy.

How else do you explain all these projects that run over time and over budget and people (politicians, the media etc.) are still surprised, and customers complain when you tell them that their "small website" (or whatever) will actually take 6 months to develop and cost several thousand dollars (pounds, Euros, [insert currency of choice])

With fuzzy and ever changing requirements I sometimes think that it's amazing that any software ever gets finished!

I know it's a bit more complicated than that ;)

5
  • 11
    And this is when they attempt to take the development to cheaper off-shore alternatives. Only to find out much later that it turned out to be even more expensive. And less of what they really needed, because of the physical separation and communication challenges between the development team and customer.
    – 7wp
    Commented Sep 9, 2010 at 18:19
  • 1
    This isn't just a problem amongst managers, but also programmers themselves. The real problem tends to be that time that isn't spent actively writing code is often missed (possibly due to the widespread LOC = productivity quantification myth).
    – Alan Plum
    Commented Sep 19, 2010 at 17:02
  • 3
    It's not that the requirements changed, it's just not what they thought they wanted.
    – JeffO
    Commented Sep 27, 2010 at 19:55
  • 1
    I had someone dismiss programming as "just a bunch of 'if' statements". OK, maybe it is... in that case, poetry is "just a bunch of words"... movie production is "just a bunch of scenes", etc.
    – JoelFan
    Commented Dec 13, 2010 at 1:45
  • 2
    I've worked for the type of manager who thought the programming bit was the easy part of the job. And no, he didn't have any programming experience himself. Commented Jun 24, 2011 at 20:01
114
votes

The complexity of the app is directly proportional to the complexity of the UI. By this reasoning, you should be able to build Google or Twitter over a weekend.

5
  • 2
    this is true, I could build Twitter and Google over a single weekend. It isn't their software that is complex; for Google, it is their search algorithm (which is more comparable to a code library, or database driver), and Twitter (up until the last 1.5 years) was extraordinarily simple, with only scalability and database issues being complex. Now that it is more complex (requiring more employees), it also has a much more complex UI, and many more UIs.
    – orokusaki
    Commented Sep 9, 2010 at 18:11
  • 3
    I think I read it on Joel Spolsky's blog but the article mentioned only showing as GUI progress in relation to the back-end progress. That way you can give a realistic estimate of progress to the pointy haired guys who are too dumb to understand that most programs consist of a lot more than eye candy. Commented Sep 11, 2010 at 8:45
  • 3
    1+ There was a time when I demo'd a SharePoint related project (a multi-lingual addon) to my former boss, having spent hours working on the complex backend code. The end result was not much was done on the UI, which led my boss to believe that not much has been done on the project. That pissed me off. He wasn't the one sitting at the keyboard for hours trying to get around SharePoint's oddities, as well as the text replacement logic. Commented Sep 26, 2010 at 17:29
  • 1
    Don't you hate when some huge, almost-impossible, request is phrased as "can you add a button to do..."
    – JoelFan
    Commented Dec 13, 2010 at 1:42
  • I wonder what I have been doing the last few years. All those projects I worked full-time on should have been finished in no time, because they did not have any UI at all. :-) Commented Jan 17, 2011 at 11:25
95
votes

All programmers are good at math. :-)

3
  • Commenters: comments are meant for seeking clarification, not for extended discussion. If you have a solution, leave an answer. If your solution is already posted, please upvote it. If you'd like to discuss this question with others, please use chat. See the FAQ for more information.
    – user8
    Commented Apr 29, 2011 at 18:48
  • I think the capabilities in math are somehow related with programming skills.
    – Diego
    Commented Aug 3, 2011 at 14:27
  • @Diego: Although such doesn't necessarily mean all programmers are good at math nonetheless.
    – Saturn
    Commented Jan 24, 2012 at 16:21
95
votes

Any teenage kid who hacks with computers is equivalent (or superior) in skill to a veteran working programmer.

My 14 year old nephew is good with computers and I'm paying him $10/hr to mow my lawn. Why should I pay you six figures to write the next FaceBook?

7
  • 5
    They probably are in their own environment i.e. working on their own to their own standards. Put them in a team where they have to communicate and that's where they suffer. Commented Sep 9, 2010 at 18:11
  • 36
    Counter question could be: "What would you pay him to build your house?"
    – user1249
    Commented Sep 11, 2010 at 7:38
  • 7
    A kid with no qualifications but writes neat code can beat Mr. Spaghetti any day.
    – Zaz
    Commented Sep 12, 2010 at 15:31
  • 13
    I blame hollywood for that
    – MAK
    Commented Sep 12, 2010 at 22:26
  • 6
    When I started out, I expected that what I'd been teaching myself and picked up at uni would be only the beginning, and I'd be working with more experienced people that were better programmers and more knowledgeable developers, and I'd learn lots from them. Experience taught me otherwise. It's absolutely important, but without skill and passion, experience is just wasted time. Commented Sep 13, 2010 at 12:10
69
votes

That real-time means fast.

Stating "The packets need to be processed in real-time." is worthless and the evil twin...answering "How fast does X need to happen ?" with "Real-time" is possibly less than worthless...bordering on stupid rather than ignorant.

Real-time means that, simply put, that function Y will always take X amount of time and that any deviation indicates a serious error. The duration of X does not define "real-time" it could be six microseconds or six days. That you can determine function Y will take X time defines "real-time". Real-time systems are deterministic by this definition.

So knock it off..

11
  • real-time=near-time Commented Sep 9, 2010 at 13:40
  • 4
    I always thought real-time meant whatever was happening was happening as you require it, not a reference to time taken.
    – Dan
    Commented Sep 9, 2010 at 16:18
  • 14
    This is probably just one of those cases where a badly named concept contributes to confusion.
    – JohnFx
    Commented Sep 10, 2010 at 14:30
  • 2
    @JohnFx Well put. Concepts need Context.
    – Rusty
    Commented Sep 10, 2010 at 22:02
  • 2
    @Richard: Indeed, iTunes always takes a few minutes before playing anything. Oh, that's not what you meant? Commented Sep 19, 2010 at 2:32
69
votes

Why don't you guys simply write it right the first time, rather than spending so much time typing in buggy code and then later reading the code trying to find the bugs?

:-) :-) :-) :-)

9
  • 34
    Frankly, that's a good question. The easiest time to make code good is when it is being written for the first time. Commented Sep 9, 2010 at 14:55
  • 10
    We have a setting in the app config: <add Key="Bugs" Value="true" />
    – Dan
    Commented Sep 23, 2010 at 7:09
  • 1
    @DJClayworth - that doesn't always work. In some cases, the problem is so large, ill-defined or just plain hard that getting even close to "right" the first time is too much to expect. In such a case, it is better to write a "first cut" that is not totally wrong, than it is to spend days / weeks / months endlessly designing and redesigning in an attempt to get it right first time.
    – Stephen C
    Commented Sep 30, 2010 at 5:24
  • This could be the layman's version of "Why aren't you guys doing TDD?" Which, to be fair, is a darn good question, if over-simple for real world development.
    – Dan Ray
    Commented Sep 30, 2010 at 12:44
  • 1
    @Stephen C: yes, but there is a difference in getting it mostly right (instead of perfectly right) vs doing mostly anything left and right to just make it work. I know this is not what you said but I still think it need to be said.
    – n1ckp
    Commented Oct 24, 2010 at 15:49
64
votes

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

21
  • 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).
    – Alan Plum
    Commented Sep 19, 2010 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
    Commented Sep 30, 2010 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
    – Tarka
    Commented Oct 1, 2010 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.
    – Adam Lear
    Commented Oct 1, 2010 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
    Commented Dec 2, 2010 at 12:00
61
votes

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.

6
  • +1 in particular for the comments around database integrity checks. Commented Sep 11, 2010 at 20:21
  • +1 Especially for last paragraph. I've beaten that drum more than once. Commented Sep 16, 2010 at 7:00
  • 5
    +1 for the first paragraph. Premature optimization is the root of all evil; writing bad code for no bloody reason is even worse. Commented Sep 19, 2010 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. Commented Nov 26, 2010 at 20:13
  • @HLGEM I'd also be interested in the examples @Tom is wondering about...
    – Armand
    Commented Mar 13, 2011 at 0:21
53
votes

That there is some mythical source of absolute best practices.

No deviation can ever be justified.

No document claiming to define something as a best-practice can ever be questioned.

8
  • 1
    better a team member than your managers...
    – Bill
    Commented Sep 9, 2010 at 21:06
  • 5
    Can you forward that doc to me?
    – AShelly
    Commented Sep 11, 2010 at 19:29
  • 1
    Totally agree. Who cares if you mix tabs and spaces in Python code?
    – Zaz
    Commented Sep 12, 2010 at 15:02
  • 4
    @Josh - someone who has to view your source code using a tool chain that has a different idea of where the tab positions are.
    – Stephen C
    Commented Sep 30, 2010 at 5:30
  • 1
    I interpret "it's best practice" as "i can't justify this". I certainly use it that way myself. Commented Nov 26, 2010 at 20:14
51
votes

The fact that marketing seems to think that adding a ton of small features is less work than adding a single, but rather heavy, feature. Which probably is a more specific case of the misconception that "task-switching has no overhead".

2
  • 12
    And the even more fun thing of marketing not having any idea which features are easy and which are damned near impossible.
    – derobert
    Commented Sep 10, 2010 at 17:41
  • 4
    @derobert Exactly, I have often had the experience that some of the more considerate marketing folks are in fact afraid to even ask about some simple/easy feature which they thought was very difficult to implement. Though I experience the opposite much more oftenly: here's a batch of X "easy" features we've already sold to the customer, please get it done by yesterday....
    – Giel
    Commented Sep 11, 2010 at 11:29
50
votes

That commenting code is unnecessary, or that "good code doesn't need comments". Sometimes you need to explain what a complex bit of code is doing. Furthermore, commenting sections of code helps you skim read much more effectively.

8
  • 14
    @DisgruntledGoad - It's true though. The misunderstanding in this "myth" comes from the fact that too many programmers consider their monolithic confusing code to be "good". if user.is_logged_in: print('Welcome') doesn't need a comment.
    – orokusaki
    Commented Sep 9, 2010 at 18:13
  • 3
    @orokusaki Not every algorithm is that simple. Commented Sep 9, 2010 at 20:19
  • 25
    @orokusaki you are mistaking "good code doesn't need comments" with "simple code doesn't need comments". Good code isn't always simple. Commented Sep 10, 2010 at 13:48
  • 3
    @Jouke van der Mass: of course. But it does not matter how complex the algorithm, the goal is to express the algorithm simply. i.e. good code expresses complex algorithms, rules, optimisations, in a simple and unambigiously understandable way. Expressing simple things simply is comparatively easy. Expressing complex things simply is where the skill lies. Commented Dec 24, 2010 at 11:13
  • 2
    @orokuskai: good code is simple. The things it is doing may be complex but the simplicity (elegance) of the code is what makes it good in my opinion! Of course, code does lots of other things, and rubbish code can make you lots of money. But my goal is to write simple code even in complex situations. Commented Dec 24, 2010 at 11:15
50
votes

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.

6
  • 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. Commented Sep 11, 2010 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
    Commented Sep 11, 2010 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.
    – Alan Plum
    Commented Sep 19, 2010 at 17:22
  • 1
    Also known as Peter Principle. en.wikipedia.org/wiki/Peter_Principle
    – Spoike
    Commented Nov 22, 2010 at 18:24
  • well said indeed Commented Mar 24, 2011 at 17:33
50
votes

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

6
  • I never had heard about that, but it's valid. Of course if you use a an obscure language it would happen.
    – Maniero
    Commented Sep 9, 2010 at 12:06
  • 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.
    – P Shved
    Commented Sep 9, 2010 at 14:12
  • 5
    @bigown: oh, you mean obscure like COBOL? :p
    – AnonJr
    Commented Sep 10, 2010 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
    Commented Oct 24, 2010 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! Commented Nov 26, 2010 at 20:11
42
votes

Java is just C++ with different classes.

8
  • 57
    +1 I once had an interviewer ask me, "what's the difference between C++ and Java?" So I listed some differences. Native compiler vs. JVM, ANSI standard vs. proprietary, garbage collection, classloaders, etc. He roared, "WRONG! There's no difference! They're identical!" He wasn't a student, he was the engineering manager. Commented Sep 9, 2010 at 23:24
  • 11
    @Bill, my response would then be, "then why refer to them with utterly different names?" Commented Sep 10, 2010 at 14:17
  • 2
    @Bill, so you failed the test and got hired?
    – user1249
    Commented Sep 11, 2010 at 7:36
  • 20
    My response would be "Goodbye."
    – Foole
    Commented Oct 2, 2010 at 2:35
  • 6
    @Foole Don't you mean System.exit(1) ? Commented Oct 3, 2010 at 21:49
33
votes

Java is slow.

12
  • 18
    But, to be fair, it did used to be...
    – Dan Diplo
    Commented Sep 9, 2010 at 11:43
  • 70
    It still is....
    – Fosco
    Commented Sep 9, 2010 at 12:21
  • 16
    How can coffee be slow ?
    – Rusty
    Commented Sep 9, 2010 at 13:04
  • 6
    @Rusty Decaf? . Commented Sep 9, 2010 at 15:59
  • 29
    “Knock, knock.” — “Who’s there?” — very long pause… “Java.” (Courtesy of stackoverflow.com/questions/234075/…)
    – RegDwight
    Commented Sep 9, 2010 at 21:44
33
votes

Probably the most dangerous one I've seen, because it gets accepted so readily, is that being able to write code quickly is good, and therefore the more quickly you can code [insert feature here] in a given language, the better the language is.

This is a serious example of premature optimization, since far more work goes into maintaining code than creating it. This means that it's much more important to write code that's easy to read, comprehend and debug than code that's easy to write quickly, and facilitating easy-to-read code is a much more useful measurement of language quality.

11
  • 14
    this is precisely what happened to one of the products the company I work for; rushed development was seen as brilliant. The product LOOKED ok and the developer was highly praised by upper management. Another junior developer was then tasked with fixing a "small" bug, and after a week of trying to understand the code, gave up and sought guidance from a senior.. who couldn't believe how rubbish the code was. Upper management refused to accept is as a major issue for two years, after which the eventually agreed it was a pile of junk and needed to be coded again from scratch - and right this time
    – Sk93
    Commented Sep 10, 2010 at 8:06
  • 4
    There's a well-established myth among technical managers that your skilled developers are ten times more productive than unskilled developers. The direct result of this myth is that any developer who can produce code quickly -- regardless how buggy or hard to maintain -- gets praise and promotion.
    – rtperson
    Commented Sep 10, 2010 at 18:17
  • 3
    You NEED a powerful language. See Paul Grahams discussion of languages and what ti enables you to do: paulgraham.com/power.html
    – user1249
    Commented Sep 11, 2010 at 7:43
  • 4
    @Thorbjørn: I've read that article, and Paul Graham has it wrong. He's a Lisp advocate, so he twists the facts into self-serving arguments to make Lisp look good. Maybe not even conciously, since it really doesn't take much twisting. There's a lot of overlap between readability and succinctness, as he points out towards the end of the article. But the conclusions he draws are completely out of sync with the state of software development in the real world. Yes, you need a powerful language, but he's measuring power by the wrong criteria, and it's harmful to believe what he says. Commented Sep 11, 2010 at 11:42
  • 3
    @rtperson: That productivity can vary by a factor of ten is no myth. That people who finish fast are necessarily more productive is. Commented Sep 22, 2010 at 17:35
31
votes

Manufacturing lessons can be applied to the software development process.

8
  • 6
    Depends on the lessons. When I worked at a mattress factory, we learned that task-switching was harmful to our production. Kinda important since we were paid by the number of mattresses made and not by the hour... and a lesson that applies here too for a lot of the same reasons.
    – AnonJr
    Commented Sep 10, 2010 at 11:12
  • This is such a persistent myth when you work in a place that mostly makes hardware. The hoops we jump through to fit our software 'build' into the same model as a hardware 'part' are amazing...
    – AShelly
    Commented Sep 11, 2010 at 19:32
  • 5
    Thing is, manufacturing software is trivial. It's easy to make copies, and doesn't cost all that much to make millions of copies. This leads people to ignore the manufacturing part altogether, and try to apply manufacturing to the design process. Commented Sep 22, 2010 at 17:33
  • +100 for this, especially people that studied economics think this
    – Kugel
    Commented Oct 11, 2010 at 17:22
  • 1
    Everyone should read Jack Reeves: developerdotstar.com/mag/articles/reeves_design_main.html - this is the origin (or at least an early and powerful statement) of the idea that source code is a design not a product. Programmers are like the designers in the drafting room, not the machinists on the factory floor, and the management of programming must be like the management of other kinds of engineering design, not manufacturing. Commented Nov 26, 2010 at 20:25
31
votes

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.

4
  • 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.
    – Alan Plum
    Commented Sep 19, 2010 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! Commented Sep 22, 2010 at 9:16
  • Laugh, there's a PM assistant at work who has some god-almighty gaming rig at home, always rolls over to the Dev area to ask if he should buy (Product A) or (Product B) ... in an unrelated note, he also assumes the dev team all hang out on 4Chan, (which he actually does.) - sigh
    – ocodo
    Commented Jan 17, 2011 at 6:02
  • +1 Word. This is spot on. I'm a software developer and I've been asked to configure someone's internet for so many times and basically all I do is trial and error plus Google searches. I like it best when something completely unrelated breaks after you've done someone a favour and then it's your fault. Commented Jan 17, 2011 at 18:03
30
votes

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

3
  • 2
    Include management too
    – Prasham
    Commented Jan 4, 2011 at 12:21
  • When you say no they think you're simply a difficult person to work with. Commented Jun 24, 2011 at 20:15
  • +100, and that with enough "motivation", they can change your answer. Or go to another [less experienced] developer and purposefully leave out half the details to get him to say yes, only to end up halfway thru development and bump into the exact problem you warned them about.
    – wildpeaks
    Commented Jul 2, 2011 at 0:08
28
votes

There must be an open source program for my business. Can't you just download it and tweak to my requirements.

5
  • 2
    +1. Oh, yes, whatever we need to do must already be in open source.
    – sharptooth
    Commented Sep 10, 2010 at 5:58
  • 7
    a lot of the time there is... at least thats true for web development.
    – WalterJ89
    Commented Sep 10, 2010 at 6:37
  • @WalterJ89: It may be there, but that doesn't mean it's a good idea to use it. Open source doesn't automatically mean good code.
    – Alan Plum
    Commented Sep 19, 2010 at 17:14
  • true.. but in the case of Wordpress, Drupal, jQuery, ... there may be areas where free is not great, like e-Commerce but more often than not the web is very open, and I find I enjoy working with an open source community far more than a propietory help desk.
    – WalterJ89
    Commented Sep 19, 2010 at 19:24
  • 7
    The opposite is a myth too. That you cannot use FOSS to satisfy your business needs.
    – terminus
    Commented Dec 18, 2010 at 16:07
27
votes

I've had more than one person ask me about what it is like to program only to realize midway through the conversation that they actually think we program directly in binary or using mathematical symbols.

I don't know if I want to dispel that myth, it makes me look really smart!

9
  • 6
    It doesn't help that most people don't even know what programming really is... they have this vague idea that it's creating software... but they don't really have a clear idea what software is...
    – Spudd86
    Commented Sep 9, 2010 at 18:01
  • 7
    "We write knitting recipes". Grandmothers tend to understand that.
    – user1249
    Commented Sep 11, 2010 at 7:41
  • I know people who will write a program in C, then redo the most performance-critical parts in Assembly.
    – Zaz
    Commented Sep 12, 2010 at 15:37
  • 1
    @Josh - unless there is a performance problem, that seems like a waste of time.
    – JohnFx
    Commented Sep 12, 2010 at 20:08
  • 1
    @oosterwal - Assembly is not binary, nor does it use mathematical symbols.
    – JohnFx
    Commented Mar 12, 2011 at 20:48
26
votes

I think the biggest misconception is that it's more important being able to write the code down easily than being able to read and understand the code.

3
  • 5
    *v(int)(void)++
    – Rusty
    Commented Sep 9, 2010 at 13:02
  • 1
    @Rusty: I can come up with much, much worse examples if I don't even have to be syntactically correct.
    – Roger Pate
    Commented Sep 9, 2010 at 15:42
  • 4
    Ahh, yes, "Write only" code... Commented Sep 9, 2010 at 21:05
24
votes

Programming is just like assembly line work. You are working on a product for a certain time (maybe with coworkers) and finally you ship it. Just like building a house of bricks.

Contra: Programming contains a lot creativity and planning. It is art. Like the mason, also a programmer knows the difference between shaping a brick and planning a whole cathedral.

1
  • 6
    Agree about difference from assembly line work -- but in many ways I don't think it's much different from building a house. Commented Oct 2, 2010 at 0:00
24
votes

Porting a program to C++ will automatically make it run faster.

8
  • I would extend to another low level languages. It's possible get the opposite when the programmer doesn't know what it is doing.
    – Maniero
    Commented Sep 10, 2010 at 13:16
  • 2
    Another common variant is switching to a client-server architecture. "Upgrading to SQL will make my app much faster!" Not necessarily.
    – JohnFx
    Commented Sep 10, 2010 at 14:29
  • Yes, it's quite the opposite many times. SQL kind databases are good to be ACID or almost that, it comes with price. And could be worst, the wrong thinking about SQL techniques could be harmful about performance.
    – Maniero
    Commented Sep 11, 2010 at 8:06
  • 6
    Porting to C++/C for those written in Python/Perl/Ruby/etc. Porting to asm for those written in C/C++ :P. I wonder what you'd port asm to? designing it into the hardware?
    – MAK
    Commented Sep 12, 2010 at 22:30
  • 1
    @MAK - check out en.wikipedia.org/wiki/Handel-C Commented Dec 24, 2010 at 14:03
21
votes

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.

3
  • 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.
    – Alan Plum
    Commented Sep 19, 2010 at 17:26
  • HA HA HA HA HA HAAA HA +1 :) Commented Oct 2, 2010 at 0:00
  • Cobol already tried that :)
    – Carra
    Commented Mar 12, 2011 at 11:17
20
votes

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

2
  • 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?
    – user2348
    Commented Oct 2, 2010 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
    Commented Nov 2, 2010 at 22:52

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