Tuesday, October 19, 2010

How to Tell if You’re a Programmer Geek

Let’s face it: computer programmers became cool with the dot-com wave.  It wasn’t just the Artist-Formerly-Known-as-Prince who was partying in 1999, it was all those pimple-faced anonymous geeks who built the Netscapes, Googles and other.coms of the world.

Thanks to these successful entrepreneur coders, there’s no longer shame in admitting that you are a programmer geek.  In fact, it means that you are a member of an exclusive club of brilliant logicians who are all just one killer app away from retiring rich and living large.

As a result, the image of geeks in movies, TV and pop culture has shifted away from the dorky “Revenge of the Nerds” virgins with thick glasses.  Now the geeks start dot-coms, stop bad guys, save the world, make millions, and get the (real live, not virtual) girl.

This short quiz will help you see if you’ve got what it takes.  The more questions you answer “yes”, the more you are programmed to be a geek.

I am a programmer geek if:

I consider 256 to be a nice, round number.
I become annoyed when 10K means 10,000.
I start counting from 0 and end up with one less than everyone else.
I end my sentences with a semi-colon.
I write equals as == and not equals as !=.
I know where to find the {braces} keys without looking.
I call text phrases “strings.”
I frequently use words like iteration, contiguous, trivial, version, array, polymorphic, parse and WTF in casual conversations.
When someone asks me what languages I speak, I reply: “C#, Java, PHP and Python.”
I hear the word “Scuzzy” and don’t think it’s a bad thing.
My favorite f-word is fdisk.
<rant>I include XML in regular correspondence.</rant>
I use camelCase for names.
I take things too literally.  For example, my wife gets upset when she asks “Do you want to take out the garbage?” (no) instead of “Will you take out the garbage?” (yes).
I respond to questions too logically.  For example, when a waitress asks me, “Would you like coffee or tea?”  I respond, “Yes.”
I answer negative questions in the technically-correct but awkward way.  When my mom asks me, “Wouldn’t you like a glass of milk?”  I respond, “Yes, I wouldn’t like a glass of milk.”
When I make a mistake or say something I shouldn’t have, I wish I could press Ctrl+Z.
When searching a paper book, I get frustrated that I cannot simply press Ctrl+F to find the text I’m looking for.
When a store cashier asks me for my zip code, I demand to see the store’s privacy policy.



I get sudden attacks of bittersweet nostalgia when thinking about my long-lost Commodore 64, Sinclair ZX-81, TRS-80, or Amiga 1000.
It’s hard for me to make an absolute statement because I always consider there may be an edge case.
I unit-test my wife, expecting deterministic, solid outputs for a certain input with boundary conditions.
I tell my wife to “stop throwing exceptions that I’m not willing to catch.”
I hold a mouse more than my wife’s hand.
I assume that most people love their jobs like I do.
I’d rather text the guy in the next cubicle than talk to him.
Nighttime and sleep are no longer irrevocably linked.
I understand (0×2b||!0×2b) and find it funny.
I think these programming jokes are hilarious.
I think xkcd is the funniest webcomic ever.
I believe these laws to be self-evident and true.
I think the three primary colors are red, green and blue.
I have more than one monitor.
I have more email addresses than pairs of shoes.
The number of computers in my house exceeds the number of romantic relationships I’ve had in my lifetime.
I run a Web server at home.
Instead of playing games on my Xbox, I install Linux and use it as a server.
I carry a USB flash drive in my pocket wherever I go.
I know what a router is, and I know what a bit is, but I don’t know what’s a router bit.
I helped my grandma create her own blog.
Whenever I use another person’s computer, I complain that they are not using Firefox and attempt to switch them.
I email myself to remind me to do something.
I rig up elaborate mechanisms to perform basic tasks.
I’ve written a useless program “just for the fun of it.”

(http://www.devtopics.com/how-to-tell-if-youre-a-programmer-geek/)

21 Laws of Computer Programming

As any experienced computer programmer knows, there are unwritten laws that govern software development. However there are no penalties for breaking these laws; rather, there is often a reward. Following are 21 Laws of Computer Programming:


  1. Any given program, once deployed, is already obsolete.
  2. It is easier to change the specification to fit the program than vice versa.
  3. If a program is useful, it will have to be changed.
  4. If a program is useless, it will have to be documented.
  5. Only ten percent of the code in any given program will ever execute.
  6. Software expands to consume all available resources.
  7. Any non-trivial program contains at least one error.
  8. The probability of a flawless demo is inversely proportional to the number of people watching, raised to the power of the amount of money involved.
  9. Not until a program has been in production for at least six months will its most harmful error be discovered.
  10. Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
  11. The effort required to correct an error increases exponentially with time.
  12. Program complexity grows until it exceeds the capabilities of the programmer who must maintain it.
  13. Any code of your own that you haven’t looked at in months might as well have been written by someone else.
  14. Inside every small program is a large program struggling to get out.
  15. The sooner you start coding a program, the longer it will take.
  16. A carelessly planned project takes three times longer to complete than expected; a carefully planned project takes only twice as long.
  17. Adding programmers to a late project makes it later.
  18. A program is never less than 90% complete, and never more than 95% complete.
  19. If you automate a mess, you get an automated mess.
  20. Build a program that even a fool can use, and only a fool will want to use it.
  21. Users truly don’t know what they want in a program until they use it.
(http://www.devtopics.com/21-laws-of-computer-programming)