Jeff Atwood, co-founder of question-and-answer site Stack Exchange, has a huge list of 30 new pieces of programming jargon that have emerged on the question-and-answer site.

Some of them are a bit obscure, but most of them are hilarious.

We've included some of the best ones below. You can check out the full list on his blog, Coding Horror.

Yoda Conditions: When a programmer writes the conditions for a piece of code in the opposite order for which you would expect to normally read them. (Instead of saying if(variable == constant), the code says if(constant == variable).)

Smug Report: A bug report submitted by a user who thinks he or she knows everything about a system, when he or she does not.

A duck: A feature added for the sole purpose of drawing attention to itself from management to be removed, avoiding unnecessary other changes in a product.

Refuctoring: Taking a well-designed piece of code and, through a small series of changes, making it completely unmaintainable for anyone other than yourself.

Heisenbug: A play on "Heisenberg," a principle in quantum mechanics, a Heisenbug is a bug that disappears or alters its characteristics when an attempt is made to study it.

Jimmy: A generalized name for a clueless or new developer.

Higgs Bugson: Another bug based on a physics phenomenon, a Higgs Bugson is a bug that's hypothetically predicted to exist based on other conditions, but is difficult to produce.

Unicorny: A feature so early in its planning stages that it might as well be imaginary.

Oh, the humanity! Hindenbug: A catastrophic, data-destroying bug.

Fear-driven development: When project management adds more pressure, such as by firing engineers.

Hydra: A bug that, when an attempt to fix is made, introduces two new bugs. It's a bug that cannot be fixed.

Common Law Feature: A bug that has existed for so long that it is considered a feature.

Loch Ness Monster bug: A bug that has only been spotted by one person.

Rubberducking: Talking with other engineers to solve a problem.

Banana banana banana: Placeholder text in code that hasn't been implemented yet.

Reality 101 failure: Creating a program that does exactly what was asked, but the problem it's trying to solve was misunderstood and the program is basically useless.

Mad girlfriend bug: When you see something strange is happening, but the software is telling you everything is fine.

Hooker code: Code that is problematic and causes application instability.