tags:

views:

12729

answers:

195

What is the one "thing" (physical object, tool, software package, person, etc.) that is most indispensable to you as a programmer?

I will get the ball rolling by stating that I have long considered a whiteboard to be a programmer's best friend.

+531  A: 

Google

Andy White
Hence, Google Is Your Friend :P I third that!
alex
And then, for annoying your coworkers... lmgtfy.com :)
Arafangion
Thanks for the link - I'll check this out!
Aardvark
Google? What is it? :P
artknish
No contest. The first page of the internet
Dinah
I've started taking the term "Googlian Monk" a little too literally when I start looking for code help. See http://comics.com/get_fuzzy/2006-10-12/ for the details.
Dillie-O
+1 for lmgtfy.com... love it
Andrew
hey thanks for the link ... didn't know where to find it :P
hasen j
Sure. If the link doesn't work, try going to yahoo.com and search for google. Or maybe altavista.com
Andy White
Amen to that ... for others who do not see where the truth lies -> http://tinyurl.com/denxvd
Newtopian
That's funny here's the first result for that search: http://ozatheist.wordpress.com/2009/02/13/you-cant-find-all-the-answers-in-google/
Andy White
+1: Google has never ever let me down.
Anthony Cuozzo
Link is broken !!
Nrj
I want to mark as offensive, as posting a link to google suggests the reader is an idiot!
hasen j
@hasen j- lol..you cant be serious
TStamper
That's why all the interviews are broken.
Peteris Krumins
It aggravated me to see google again -- until I realized you linked it! great - +1
MostlyLucid
enjoy your thousands of points for a one word (correct) answer
Hardwareguy
+1 lmgtfy.com FTW! :)
pageman
foimb.com is excellent.
Jonno_FTW
http://lmgtfy.com/?q=google ...........................> special thanks to Arafangion
Xinus
Hey - I'm going to check out this "Google" website thing - sounds really amazing!
Vidar
nice question and greater responsible..
Venkats
+7  A: 

It's my 13-inch MacBook that I carry with me everywhere I go

Maurice Perry
My best friend is also my 13-inch macbook :)
bigmonachus
+131  A: 

Coffee. .....

danbystrom
Diet Coke but whats the difference?
ojblass
Temperature is the difference; unless you enjoy piping hot coke ;)
Nick Josevski
One tastes yuck, whilst the other is just tasteless?
Peter Boughton
which one is which? =) i guess it depends on your age...
Chii
Diet coke has aspartame which causes cancer. Coffee has antioxidants, which helps to fight against cancer.
Kibbee
+1: Coffee is my vice @_@
Anthony Cuozzo
+1 for the Coffee. I couldn't live without it! :)
CraigTP
I never drink coffee, I can't stand it!
hasen j
coffe's bad for your health
Newtopian
ok, I'm starting to drink coffee .. I see now why so many programmers drink it all the time :) I drink it with milk and cacao though ... otherwise it sucks
hasen j
I disagree on coffee - while it /may/ give temporary boost, you can't expect it to work every single day for years.
Peteris Krumins
Has worked every single day for me for 25+ years now. When do you recon it will stop working?
danbystrom
after using coffe for a while, you need the coffee boost just to get up to the normal level of boostieness. kind of how you get hooked on it... personally I prefer to stay naturally at the normal level. and drink lots of water to keep the system clean and ready to work :) End up with some toilet breaks if you drink a lot of it, but you are really supposed to take a 5 min break from the screen every hour anyways right? =)
Svish
Using caffeine to "energize" you is not a very good habit. A healthy lifestyle is much more conducive to longterm quality mental function.
Alex Baranosky
+88  A: 

Regular Expressions. I have no idea what I would do if I didn't know them (since Google is no help here).

Tomalak
I agree, they should teach regular expressions in elementary school right after teaching how to read and write.
DrJokepu
...so now you have two problems...
JesperE
Regular expressions haunt me in my sleep. -1
ojblass
Me too, they are great for what they do, but I rarely need to use them.
Ed Swangren
For all the cases where regular expressions are useless, give me irregular expressions.
outis
The only problem with regex is that it takes so much time to learn than the language you're using !!
Arno
now you have _only_ two problems (instead of three -- the problem, the problem of not using regex, the problem of having to write a 200 line program in java/c++):)
alvin
+39  A: 

Google , my programming related books and recently Stackoverflow became my best buddy!

Prabhu. S
+1 for stackoverflow
Jonno_FTW
+75  A: 

Visual Studio.

jeffamaphone
almost clicked the offensive button here. hahahah! nothing like a bit of M$ bashing. [[joke!!]]
mieze
Especially Intellisense!
TJB
Intellisense make me feel like I do pair programming all the time:)
dr. evil
And if you get a big enough monitor, all those little debug windows and tool windows VS likes to open actually start to feel useful instead of just in the way of the code.
jeffamaphone
Argh. If visual studio wasn't so slow and bloated and crashy, I'd have upvoted it, but it's bad enough to make me want to manually create msbuild files and just code in E :-(
Orion Edwards
@Orion: Slow? You need to upgrade your 512MB RAM machine...
Jader Dias
@Jader I have a quad core machine with 4Gb of RAM, and guess what, Visual Studio can still be very very slow (without taking any CPU) and hangs at least twice a day.
Alex B
Never heard of it :)
crosenblum
+4  A: 

A good IDE with decent refactoring and debugging capabilities.

CMS
+46  A: 

The yellow rubber ducky that sits next to my monitor

Peter
Yes, I need to get one of those. ;)
macbirdie
Yeah! A Pink pig here.
David Santamaria
I have a collection of dragons. Go figure.
Kaz Dragon
Hmmm... good idea.
Matt Refghi
I have a rubber spider on my monitor as a "scarebug".
T.E.D.
I have a Bender action figure!
bigmonachus
Mr. Sheep and Mr. Woodchuck. Very important.
sheepsimulator
I have a blue "trouble" duck on my desk. It gets past around to whichever person last broke our automated build.
Ryan Taylor
I hav little cars parked on my desk :P
Prashant
@Ryan: does that mean you're currently in trouble?
outis
And nothing beats a plush Cthulhu when you find you're too insignificant for the task and need the help of an intelligence that is as indifferent as it is old.
outis
I have a jade Buddha and Einstein action figure on my desk.
Jonno_FTW
A hammer. It helps you threaten the computer; also it can hammer out code.
dlamblin
+53  A: 

A good diff tool, like Beyond Compare

Nick Josevski
Yup, kdiff3. Better, and Free.
T.E.D.
Woot for diffzilla
ojblass
Beyond Compare rocks.
Jim McKeeth
WinMerge works well too and it is OSS!
Ryan Taylor
+1 for Beyond Compare!
jrista
Agreed. Although Araxis Merge is my favorite. http://www.araxis.com/merge/
Dan Esparza
Meld (http://meld.sourceforge.net/) is quite excellent as well.
Matthew
Total Commander File compare
Peter Gfader
+1 I miss a smoothly functioning Beyond Compare so much on OS X.
Jon-Eric
+49  A: 

jQuery .. finally i can do magic on web pages

Oh and Firebug too .. of course..

Scott Evernden
+1 for Firebug! Has helped me solve SO many css and javascript issues...
Svish
Yeah, the "web" development platform is so incredibly primitive that some of jQuery's tricks look like magic. The same features are obvious and straightforward to implement on a desktop application platform.
Dimitri C.
+17  A: 

Perl.

Even when I'm working in another language, I like to automate tasks, and I haven't bothered to learn all the intricacies of bash syntax to use a real shell script. So I turn to Perl, and it's always there for me. It lets me call out to shell commands when I need to, but still allows me to process variables like a real programming language.

It has tons of nice syntactic sugar, like regular expressions, that make some things so much easier (even if it's a little bit dense to read the first time). I use it for any moderately-complicated task that I need (or want) to automate, and since it was my first programming language, it's much more natural to me than using shell scripts.

Plus, I can usually get things done very quickly.

Who needs to update a Makefile every time you add an important new file to a rapidly growing project when you can just glob("*.c") to get a list of all your C files, no matter what you've added or taken out?

It has some of the most useful parts of shell syntax, but in a real, actual programming language.

Chris Lutz
Sorry for the long-windedness. I know Perl has a bad rep around here, so I felt I should at least justify why I use it so much, even if you may not agree with my answer, lest people downvote me for the "unreadable" syntax (which is so much BS anyway).
Chris Lutz
Tried to break things apart to make it more readable so the author wouldn't be downvoted.
George Stocker
+1 for perl, but not as a replacement for make! A Makefile with the right dependencies will compile only the files that *need* to be recompiled. With your "*.c" you'll always compile everything. Very bad style and often a waste of time!
@dehmann - You can use glob to get all the files, and then check them before you recompile them to see if they need to be recompiled. (I don't, but that's because my project is really simple right now, and I'm the only one working on it. I'll add that feature when it becomes a major issue.)
Chris Lutz
Plugins for maven2 to support C/C++ would be great - .exe's and .dlls (or unix equivs) are commonplace now - our make tools should support them. Make is great, but it's showing it's age, and perl is no replacement for it.
Chris Kaminski
+1: Perl is wonderful :-)
Anthony Cuozzo
+11  A: 

A very close second for me is an IDE with good intellisense. There is no better starting point for understanding existing code than to type a dot :)

JoshJordan
+9  A: 

Stackoverflow and IRC chats any day . Google helps you find these appropriate places.

Arkid
+137  A: 

My keyboard. For without my keyboard, I am speechless.

carl
So True! The other day someone spilled water on my laptop and my keyboard got a bit messed up -- I was handicapped for a while!!
hasen j
ever tried to code with Dragon Naturally speaking ?
Newtopian
+1: I have the clickiest keyboard. I can't live without it!
Anthony Cuozzo
@Newtopian - I tried it with the Office speech recognition (dictation). Yikes! "Undo, that!" became "undue hat"...
Lucas Jones
This is my keyboard!There are many like it but this one is mine!My keyboard is my best friend! It is my life!I must master it as I must master my life!My keyboard without me is useless! Without my keyboard, I am useless!
Kevin Panko
+51  A: 

Emacs.

I'm impressed with some of the magic that IDEs can do now but for pure text manipulation Emacs always come out on top.

And I'd be lying if I said I didn't like the fact that most people are scared of it. :-)

Dave Webb
++ Installing Emacs is always my first task at a new job whether on Linux, Mac, or Windows. Eventually, I get around to Outlook for checking mail.
Harvey
That's something I've always wondered about. Why are all the new IDEs, that have these cool features, just plain bad at editing text? Why can't anyone get this right but emacs and vim?
docgnome
Because the people that know how to edit text are writing emacs and vim, not Super Shiny IDE 4.0.
jrockway
I don't know what I would do without Meta+Shift+, Ctrl-Space, Meta+Shift+., Alt-Shift-\
bowenl2
+25  A: 

My peanut sized brain.

artknish
+6  A: 

Caffeine, a debugger, and google.

John T
+34  A: 

Eclipse .^_^.

Cause it makes me as productive as it makes me unproductive. It is where I zip by some tasks in a jiffy without taking any of it`s procrastinatic capability "there gotta be a plugin that does that" and boom... where did that sunny friday afternoon go !!

thoug on the serious side

+1 for google +1 for rubber ducky (gotta get me a new one) and +1 for Stack overflow with much the same reasonign as eclipse though !

Newtopian
I love Eclipse and it makes me wonder how crazy I was to "develop" in Notepad during college.
Greg Noe
+3  A: 

Visual Studio, Google, CodeProject.com, people smarter than myself (not too rare, sadly :P ) and recently StackOverflow.

SirDemon
+15  A: 

Of course my notebook(both paper based and electronic circuits based)

linjunhalida
Also needed for patents.
Brian Carlton
+24  A: 

Ergonomic keyboard and chair.

I don't care how good the software is, if I'm uncomfortable, I can't concentrate.

Chris
+6  A: 

Eclipse, GVIM and visio. And now-a-days collabnet Subversion.

Shamik
dude, visio sucks
hasen j
+3  A: 

google, IDE with good intellisense and stackoverflow community

Dmitris
+9  A: 

A good version control system.

Andy
+59  A: 

GVIM.

The feature that I use most frequently is its default auto-completion and splitting the windows to view the source and the header file side by-side.

Canopus
I make heavy use of the tags functionality as well as the auto-complete. There's also this (not my blog): http://dailyvim.blogspot.com/2009/03/out-of-box-autocompletion.html
rmeador
+1 for gvim - must defeat emacs!!! (just kidding)
Andy White
i use viEmu for visual studio, then you have vi like editing in visual studio (and use visual assist for the best autocompletion ive ever seen)
Emile Vrijdags
Can't live without it.
Taurus Olson
+1 but the leading G is superfluous - Vim is awesome!
Paul Ivanov
+109  A: 

My headphones, to create a quiet place.

Canavar
In flames - A Quiet place. Very good song.
Nailer
One of my favourites
Pondidum
Daniel
Heh: a device whose only purpose is to make noise. :-) See "Peopleware" for why headphones are no match for a naturally quiet environment.
Ken
who said headphones were there to provide quiet place... still +1 to that
Newtopian
I meaned a place that you can easily concentrate in a different way :)
Canavar
yeah totally second that. i use those with the noise cancellation.
Reno
was just kidding here Scarlet :-) however... not to underestimate the deterrent power of huge ear circling headphones.. this yields the Sennheizer inverse law where the likelyness of someone asking you a question is inversly proportionnal to the size of the earphones
Newtopian
They're more socially acceptable than earplugs.
Kim Reece
agreed on quiet place. i wear headphones just to isolate sound. it also looks cool.
Peteris Krumins
Do you recommend a certain brand of sound isolating/canceling?
Chet
@Chet: Philips has a model with 99.9% sound isolation.
Alix Axel
+1 for the gold
Mike Robinson
+6  A: 

Total Commander is indispensable for all the file system stuff needed when programming (creating/browsing directory structures, copying, moving and deleting files, launching/opening/finding files)

Tom Arleth
wooohoooo.... +1 for this. I love TC as well!
Peter Gfader
+4  A: 

My Visual Studio action figure :)

Some pic

Ninjacoder
Whaaaat? Please elaborate :)
JoshJordan
hehe, look here: http://www.rustylime.com/media/image/source_fource_large.jpgYAY!
Ninjacoder
+7  A: 

IDE(vim)

version control system(Git)

Google

BianJiang
Long life to vim :-)
Luc M
vim is not an IDE :P I second git though, it's awesome
hasen j
+183  A: 

Source Control System

Dhana
+1 All the other answers are wrong.
Dan Dyer
Can also be an enemy if it's not working...
Jeremy Cron
git .. or .. *distributed* source control system.
hasen j
Only if it's not SourceSafe...!
Mehrdad Afshari
@Mehrdad - SourceSafe is a pain but it's still way better than nothing
AZ
+42  A: 

Redgate's .NET Reflector

rism
Reflector is useful a lot!
Victor Rodrigues
+4  A: 

A good text editor.

dan gibson
+25  A: 

My Internet connection

This gives me all the goodies I need

  • Google
  • Reflector and other downloads
  • Msdn
  • Codeproject
  • StackOverflow
  • etc

Without it I'm helpless & useless.

(How did I do that in pre 1998?? Oh yes: the magic MSDN library on CD)

GvS
I don't know how my life would be without my internet ... (on a second thought, I don't have a life :P)
hasen j
But wait, what did they do before CD's ?
Liran Orevi
@Liran: floppies, because 1.4 MB has *got* to be enough for everything
hasen j
+6  A: 

In no particular order:

  • Visual Studio 2008
  • Resharper
  • VirtualBox
  • Subversion
  • TortoiseSVN and AnkSVN
  • The Internet

And without a doubt my wife.

Diago
Why do you prefer VirtualBox over (say) MS Virtual PC (which is also free) ?
Peter Wone
+50  A: 

Notepad++

I wish the shortcuts and extra text editing functions were available in text fields across the whole operating system! In fact, they would make a great addition to IDEs such as Visual Studio, Eclipse and Netbeans.

Duplicate Current Line

Ctrl + D

Delete Current Line

Ctrl + L

Move Current Line Up

Ctrl + Shift + Up

Move Current Line Down

Ctrl + Shift + Down

Jon Winstanley
I second Notepad++ as my best friend, as a "just dump" clipboard for later use.
Martin
Do you know how to extend the text selection to the nearest blank line? That's what ctrl+shift+up/down are for in TextPad, and I find that I'm missing those on a daily basis.
recursive
Nice shortcuts...didn't know them...
Daud
Notepad++ is one of the best editor! It's full of usefull features. Note there's a portable version on the Internet! It's always with me on my USB key...
RVeur23
At least in eclipse, those 4 features are available.In emacs, just the first two by default, but I have like 10 lines of elisp code that replicate the others =)
bigmonachus
This is where I'm tempted to abuse the edit system to remove his "++" :-)
T.E.D.
Those features are all available in NetBeans - Ctrl+Shift+Up/Down to replicate lines, Ctrl+E to delete current line and Ctrl+Alt+Up/Down to move lines.
Dave Webb
I use AutoHotKey to do what you're suggesting, but with the basic emacs keybindings. It's nice to write in gmail without leaving the home row!
Barry Fandango
Visual Studio has Delete Current Line and move Line Down, but strangely not the others. I've written a macro for Duplicate Line (blog.orionedwards.com) but not the move-line-up (yet)
Orion Edwards
It's so freaking fast too!
AaronLS
Eclipse: Duplicate - Ctrl+Alt+Up/Down. Delete current line: Ctrl+D. Move Line Up: Alt+Up. Move line down: Alt+Down.
Epaga
CTRL-L is compile in Sybase Powerbuilder. makes it a pain to move to VS or N++
Colin Pickard
WTF notepad above emacs and vim?
Paco
@Paco hahaha, yeah, guess the UI matters alot.
hasen j
@bigmonachus - what's wrong with M-x transpose-lines? I assume move current line up/down means switch this line with the one above/below respectively.
Dominic Rodger
I use N++ daily but it always annoys me with its horrible usability.
DisgruntledGoat
[eclipse] insert new line above: Ctr+Shift+Enter; insert new line below: Shift+Enter; delete line: Ctrl+D; duplicate selected lines below: Ctrl+Alt+Down; duplicate selected lines above: Ctrl+Alt+Up; move selected lines down: Ctrl+Down; move selected lines up: Ctrl+Up
kRON
The ability to make custom keyboard shortcuts is amazing for when you want to compile without opening command prompt every time and remembering flags
Jonno_FTW
Jet Brains' PhpStorm http://www.jetbrains.com/webide/ has those shortcuts and is otherwise a great IDE (albeit still BETA)
Raveren
+70  A: 

my girlfriend.

because she doesn't know anything about programming, so i have every evening to explain to her what i did the day in a way she understands my work.

chburd
I personally believe that to be a very useful process - not so much for her, as for me (you).
ldigas
A rubber duck works just as well. And doesn't get bored either... ;-)
JesperE
I do this also, I have a lot of eureka moments when explaining my work in... dare I say, simple terms. Ironic.
nbolton
I never talk to my wife about computers. She's not interested.
Jack BeNimble
+1: I do this all the time with mine too!
Anthony Cuozzo
-1 cause that painfully reminds me why I am now single ;-)
Newtopian
I hope my husband doesn't mind me understanding his work, at least I make myself useful blogging about his project!
MissT
Actually, this is really good. Its an odd experience and probably a good activity to having to explain your work in plain words.
Chet
There are better uses for a girlfriend.
dlamblin
There are better uses for a rubber duck too!
Stephen C
+7  A: 

my laziness.

Andreas Petersson
+4  A: 
  1. Google
  2. Stackoverflow (a lot of times via Google)
  3. Caffeine
  4. the confession "Hello, my name is Norbert. I'm a programmer and I writer buggy code"

The last one keeps you with the feet on the ground... and write good code.

norbertB
+5  A: 

English is the best tool ever

Andrei Serdeliuc
This comment is retarded
belgariontheking
How come? Without it you wouldn't be able to use any of the other tools.
Andrei Serdeliuc
Apikot, are you suggesting that people who don't speak English can't program?
eyelidlessness
agreeeeeeeeeed :)
nCdy
I'm not saying that, I'm sure they very well can. But considering most of the tools are written in English (even though they are translated to other languages), it would be much harder to program without speaking English. As I said, it's a tool, it's supposed to make life easier :)
Andrei Serdeliuc
+10  A: 

The flying pig that hangs from a bit of fishing wire from the ceiling. Whenever someone comes in and asks something unreasonable, you just turn it on and it starts flapping around in a circle. :-)

Evan
+43  A: 

My dog.

I take her for a walk when I need to clear my head, or get a fresh view on things. She takes me for a walk when I've been sitting too long in front of the computer.

I wish I could upvote you twice... once for Cayenne and once for Basil :) (they were littermates)
harpo
-100 .. um, I hate dogs.
hasen j
+100 I love dogs
dotjoe
+70  A: 

Colleagues because talking with them always gives me a chance at better understanding what I'm doing.

Manrico Corazzi
+4  A: 

Microsoft Trackball Optical Mouse

WHY WHY WHY did they cease manufacturing them?

I bought 4 when they started to get scarce as I cannot take using a regular mouse for more than an hour or two before getting aches in my hand...and I have several machines.

Simply couldn't work without one.

Gordon Mackie JoanMiro
I also have RSI problems with traditional mouses, so I was forced to look for a solution. I now use my Logitech Marble Mouse for almost 3 years, and I'm very happy with it. And because it is built symmetrically, I can use it alternatingly with both hands.
Dimitri C.
+26  A: 

vim, my vim configuration file, google, stackoverflow, my laptop and all my previous code. You cannot imagine how many times you have to solve the same problem again and again.

Stefano Borini
+1: Vim is amazing.
Anthony Cuozzo
I totally agree with you.
Taurus Olson
+11  A: 

Supportive Wife

Przemek
I miss my wife ... oh wait, I don't have one!
hasen j
+2  A: 

Source control

James Hall
+1  A: 

Stackoverflow, to remind me why I do what I do

Michael
+1  A: 

Time, Google and a good debugger

JonoW
+1  A: 

When I used to write code C on Linux, I lived in the man pages. Both of LIBC and system call documentation are pretty solid.

mustpax
A: 

My self.

For always trying to help by judging my code.

Konstantinos
+9  A: 

The solid door to my office.

Stewart
In my first job I had one of those. How I miss it.
Peter Wone
A: 

StackOverflow

I like making other people do my thinking for me.

directedition
+254  A: 

A second monitor.

Really, I can't stress how useful it is to be able to google for help or read documentation on one screen while simultaneously being able to see your code on the other.

Kaz Dragon
+10 ... Well.. i tried to click ten times, it's the intention that counts I guess ! wow... how did I not think of that... as it stares me juste there in front of me. It's when it's missing that one realize how much it is usefull
Newtopian
I'd rather have 1 large monitor actually. 24" at least, but I do use Virtual Desktops.
willcodejavaforfood
My preference: 1 large monitor with a nice tiling window manager
Kalmi
Widescreen, tiled... Only way to fly. I never could understand not putting two panes of information next to eachother.
Kim Reece
personally I find virtual desktops even more annoying than having to alt+tab between windows. cause then you have to switch between desktopts in addition to the windows. Two (Maybe even 3, but at least 2) widescreen monitors is the way to go in my opinion.
Svish
@Newt: +10 = +0
GalacticCowboy
@svish... ahh too much glare..
waqasahmed
@Svish If there were a way to alt+tab between "sets" of windows (from a bunch of different applications), then I'd be sold. Virtual desktops let me do that with minimal clutter.
Rob Howard
You're not one of those people who keep all their applications maximized all the time, are you? Newegg has a 24" monitor for $174 right now, and the second most expensive is $250. -- Of course TWO 24" monitors would also be awesome, but a single widescreen monitor is enough for two applications side by side.
Chad Okere
A: 

Google Talk.. as when I am fed up with some cranky code/logic that's not coming my way, i just talk to my frnds online and get relaxed and start again..

earphones too, just to keep away the sound of that bothering discussions of colleagues away from my ears...

Kunal S
+1  A: 

The nearby couch where I can stretch out and think.

Mike Dunlavey
you mean "think"?
Brian Postow
@Brian: actually a little snooze helps a lot.
Mike Dunlavey
A: 

The obvious answer is the system on which you develop, for without it, there would be no development.

A: 

Polymorphic inheritance.

chaos
+1  A: 

My "best friends" as a programmer

  • Safari books online for quick reference books
  • Google
  • Brain (try coding without it)
  • As stated in my previous comments, Notepad++ as a paste bin for later use and as a nice editor.

Would also like a second monitor, but my computer at work can't take two, and they don't want to invest in a video adapter (go figure out why).

Martin
A: 

coffee, VS, google

+1  A: 

The Internet

Without internet getting all my IDE's, libraries, documentation, help, ideas etc. would be major pain and often impossible.

The rest of my setup would be:

  • Good IDE
  • Second screen
  • Comfortable chair and desk
  • My Apple keyboard (regardless of operating system)
  • Good speakers/headphones with the right music
  • Coffee
Raf
+3  A: 

valgrind

dicroce
+2  A: 

SLIME.

The idea of restarting the process just to recompile some code seems downright archaic now. Or having to recreate a situation in my program just because an exception got raised.

Ken
+1  A: 

Stackoverflow, others who will answer my questions here within minutes - go on!! and lately firebug with yslow

undefined
A: 

Task tracking system - I use OnTime.

+8  A: 

A person, who you could ask a question whenever you have a problem and nothing else helps.

dalizard
this person is indispensible
Jason
Especially when he's got an answer to your question :)
dalizard
+1  A: 

In no particular order:

  • Google
  • Visual Studio
  • My books (or Amazon when missing one)
  • Stackoverflow is getting more useful everyday (but not for extremely boring and mind numbing office programming job...)
Oxymoron
+2  A: 

Twin 23" widescreen LCD monitors. Nothing, but nothing can substitute for screen real estate.

Shaul
Except the ability to narrow down your task to the one task at a time and only the relevant information... Screen real estate is good, but most of the time people just fill it with distractions and nothing useful because (as it turns out) you don't often need that much useful stuff open!
Adam Hawes
Adam - depends on what kind of work you do. Even if you just have your dev IDE on one screen and the spec on the other, it's worth it. Add to that the vast array of other tools your typical developer will need to do his job properly, and screen real estate becomes a very valuable commodity.
Shaul
+2  A: 

My programming playlist on my ipod.

Jen Smith
I have one of these too
Carson Myers
+3  A: 

Top Gear. Every time I can't focus, I throw an old episode in the background, and for some reason it provides just enough distraction/entertainment to occupy that bit of my mind that is stopping me from coding.

Don Werve
+6  A: 

CTRL-C, CTRL-V :-)

Rauhotz
oh. my. god....
Carson Myers
but not as a code reuse practice, right?!
Andrei Rinea
A: 

Google C++ Mocking Framework.

Unit testing is no fun without it.

Runcible
A: 

The internet

Galilyou
A: 

1)IDE - VS2008

2)web search - Google

3)noteKeeping - Evernote

4)backup,sync - BeyondCompare

5)textsearch - Agent Ransack

6)notepad2

Brad
+1  A: 

code completion

Milhous
A: 

At the risk of being a suck up, as of the last month, Stack Overflow.

nbolton
+1  A: 

Problems to solve!

jerebear
+1  A: 

Syntax Highlighting / Coloring

Good syntax highlighting can speed up the learning of a language, visually filter content, and also gives code a kind of beauty.

JadeMason
+125  A: 

Ctrl + Z.

Dear GOD. CTRL + Z! CTRL + Z! CTRL + Z!

NOOOOOOOOOOOOOOOOOOOOOOOOOOOO!

Mike Robinson
Yeah. Ctrl+Z is very handy to drop to a shell without actually having to start one. But sometimes I just forget that vim is still sleeping in the background. :) But I think you refer to this combination in another context, don't you?
pi
or as i like to call it....the OH $hit key.....
Mark
I think you mean C-_
Adam Rosenfield
I use this in crazy ways. Like undoing dozens of steps to find some code that I deleted, copying it, then redoing all those steps again and pasting it back. Though it sometimes backfires if I accidentally hit a key and insert text :(
DisgruntledGoat
Hah, right there with you
Mike Robinson
@DisgruntledGoat We definitely need "History palette" in our IDE, like one in Photoshop :)
Kuroki Kaze
I vaguely recall seeing one in Eclipse... or was that just revision history..?
scraimer
Textpad has such a History palette. As does emacs; than again emacs has everything.
James Brooks
Kuroki Kaze: Eclipse has a 'local history' view that lets you do diffs against every version you've saved. Hundreds of versions. Right click a file, go to 'compare with' and then 'local history'.
Chad Okere
I use it for placing the cursor and view back to my last modification, by doing a single undo-redo operation.
Dimitri C.
I love how textpad, can do or undo massively...It makes for a funny cartoon, after working for hours on a file.
crosenblum
+9  A: 

Resharper

XOR
It's a shame not everyone doing C# has this as a best friend.
Kit
@XOR: Not only your best friend. You can't live without it. +1
Kb
+1  A: 

Backspace, the key that I type the most.

Chris Noe
+2  A: 

juggling balls for thinking... and a chair for when compiling.

TofuBeer
+35  A: 

intellisense

Nicolas Dorier
Who needs to learn programming when your editor can do it for you!
jrockway
@jrockway: Sure, only an idiot would use a tool that enhances his productivity by relieving his mind of the tedious mechanical details of building a program.
j_random_hacker
+1  A: 

for , next and repeat , until loops are my favourite...

Jimbo8098
+1  A: 

LINQPad :D

Gabriel Isenberg
+3  A: 

The compile error, since I am dyslectic.

Paul
+4  A: 

I have to second the whiteboard. I realised when I saw this Dilbert cartoon how much I've come to rely on drawing on a whiteboard as a supplement to the essential hand-waving that characterizes the design discussions we have on our team.

Hamish Smith
+1  A: 

That supercomputer inside my head...

It is: Faster, more powerful and more reliable than any silicone based computer or, any array of silicone based computers.

Prove It? Vast neural network with 200 trillion trillion nodes. Mutiliple (in the thousands at least) parallel processes in real time. Superior image recognition. Superior cognitive ability. Superior speech recognition (English, Basic, Sql, C++, C#, VB and some assembler). Excellent motor controller. Multiple years of service (50+). Low maintenance. It does require downtime every day and a subsequent re-boot in the morning. Analog design (superior to digital, we just never figured out how to do it in silicone).

Mac
Unfortunately, it's SO feature rich and powerful, few people know how to effectively use it. ;)
jlembke
Yeah, most of us use less than 10% of it's capacity.But there are some people I know that are probably below the 1% usage catagory...
Mac
+1  A: 

Alt + Tab

Window + D

Window + R

Google

eppdog
+3  A: 

The floor. I like to do push-ups throughout the day to keep my blood flowing.

Eric Ryan Harrison
Ha ha! So do I, ever since moving to Oklahoma. It gets cold here!
harpo
A: 

Visual Studio

QFT

John Gietzen
A: 

All the childs friend

www.google.com

MRFerocius
A: 

stackoverflow.com

Lipis
+43  A: 
SomeMiscGuy
cute - where did you get that?
willcodejavaforfood
http://www.giantmicrobes.com/ they have an entire series of things that are guarenteed to make your coworkers just stop and shake their heads :)
SomeMiscGuy
I think many of us would like to buy tons when they have problems with some code.
Taurus Olson
Ordering now...
jrista
Oh giantmicrobes.com - probably the only time someone will be happy to get herpes from my wife and I. No, seriously, our friend was a (herpes) drug rep - so it seemed like a good idea.And no, none of the people in aforementioned story have herpes....not that there is anything wrong w/that.
malonso
If you have Google you do not require braincell
Xinus
+1 We have a Common Cold in our office. He keeps the seat warm when someone's ill, and he serves as a reminder that X person is indeed away, and we should stop yelling for them ^_^
glasnt
A: 

MSN Messenger - Boy people must hate me by now :D

-- ofc, when that doesn't help Ill go seach SO, then google, and if I still haven't found my answer, Ill ask on SO :)

cwap
+2  A: 

My non-programming partner for giving me something other than work to talk about when I get home. (damn I'm single, better get back in the partner game).

Adam Hawes
+1  A: 

Redgate SQL Compare. Sort of DiffMerge for MS SQL databases

A: 

System.out.println (or whatever the print statement in your language of choice)

Jack BeNimble
A: 

Again, whiteboard.

But here's the thing... I work from home. And I rent. So every time we have a property inspection (about once every 3 months) I have to take it down, plug up the holes with Spackling paste, and then very carefully mix various shades of tester paint to decieve the property inspector in to being none the wiser. Muhaha!

So worth it.

nbolton
Ouch. The whiteboard can be a labor of love, but it is definitely worth it.
JoshJordan
A: 

Redbull in non-stop coding nights, and Coffee in regular days ;)

A: 

Internet is probably easily one of the best tool though it can be a double-edged sword as you shouldn't refer to it for every problem. Sleep (bed?) is also pretty useful or any time (?) away from the computer really helps in seeing a new perspective.

nevets1219
A: 

flat assembler, an Open source assembly language compiler.

A: 

Shortcuts on my Keyboard
Don't use the mouse --> makes you slow :-)

in addition to Carl Vondrick (Keyboard)

Peter Gfader
A: 

KomodoEdit
Google
VirtuaWin (virtual desktop, just like in Linux)

A: 

Unlocker. Why Windows chooses to lock random files I will never understand. Nor do I need to care anymore with Unlocker.

Marcus
+1  A: 

Vim

For shear text processing it cant' be beat. If only I could vim style modal editing with an IDE.

Perl

Because automating repetitive tasks is something all programmers have to do.

Google

Because for 99.9% of your problems someone else has already experienced it and has useful advice.

Jeremy Wall
Have you seen http://www.viemu.com ?
jonbho
+3  A: 

Ctrl + Space

Autocomplete FTW.

Vineet Reynolds
A: 

A notepad and pen. Before coding any non-trivial part of a project I tend to write down my thoughts on the particular pros and cons of any solutions that come to mind.

I just find it easier than typing it out in a project management app or something similar.

+6  A: 

A bathroom with a fan

jlembke
Whatever you eat...
RSolberg
RSolberg, it's also good for keeping your bathroom visit more private.
eyelidlessness
A: 

Guess I'm the first one to mention REFLECTOR :-)

Abhijeet Patel
A: 

Interesting Blogs(CodingHorror...) , WIKI , Google and Visual Studio

AvidProgrammer
A: 

Overtime salary

A: 

Silence is wat i need.

+2  A: 

Soma.fm - Groove salad channel

Wonderful distraction free music to code by.

Sidmitra
+1  A: 

The technical support people.

They do most (and most times all) of the hand-holding with the customers so that I can develop software instead of researching how "it's just not working" for some dumb reason like they haven't turned thir computer on.

sharptooth
A: 

Being able to type fast and knowing crap-loads of keyboard shortcuts.

George Mandis
A: 

O'Reilly Safari

Andrew
A: 

Python. Even if I'm working on something in C, I always try
how things will work in Python, and then build from there.

Josip
A: 

a sense of perspective

A: 

IDE (i'm not picky... :P) + Goggle + confy keyboard and I'm ready to go! :D

Silgaer22
+1  A: 

By all means its Electricity,

Its a computers best friend and without it computers won't exist and no computer means no programmer.

Anand
+2  A: 

Well, I've seen an answer stating that a second screen is a programmer.

In fact, I'm currently using four 1920*1080 24" displays. That cost me under $1000, and I guess the screens repay for themselves every other week.

I think extra-screens are by far the most effective use for your money if you want to improve your productivity.

At my previous job position, I insisted that every programmer should have at least 3 screens if he wants to, and I eventually got my point accepted by the management.

Brann
A: 
  1. Visual Studio
  2. Regionerate
  3. GhostDoc
  4. Reflector
  5. FireBug
  6. The Proxomitron
Blatfrig
A: 

Whiteboard, yes. But back at my desk there's the following:

  • Text searching: good old command-line grep often comes in handy when searching files my IDE won't search.

  • Google: It's hard to imagine the time when we didn't have Google for seaching the body of knowledge and Q&A out there (but I do remember back, in the mists of time...). It's not indispensable but it's a magic wand from time to time. And it's how I found Stackoverflow. (And solved a problem I was having with my application icon.)

  • Outlook Folders: More than most people I know, my .PST file in Outlook is a hierarchical archive of ever-accumulating emails. Keeping this archive organised and using the Advanced Find are of daily use to me.

  • Miscellaneous: a couple of large monitors on my desk, a well-run source control tool and a consistent versioning scheme, IDE with intellisense, the Alt-TAB in Windows, and mstsc (Terminal Services) are a few others...

Thanks for the opportunity to think of the things I sometimes take for granted :-)

+2  A: 

My Teddy Bear.

If ever I have a problem I can't solve, I go and explain it to the teddy bear. 90% of the time, by the time I've explained the problem to the bear, I have found the solution.

If that does'nt work, I resort to talking to my colleagues. Talking to the bear first though, saves loads of their time!

Hugh Mullally
A: 

My most important three tools for programming:

  1. Pen
  2. Paper
  3. My mouth

Pen & paper will always kick ass. No software will replace scribbled notes on an innocent piece of paper. It's fast, cheap, easy and you can use it as a valve to your aggressions.

To communicate is highly important. I like emails and bug tracking software. But there is an enormous problem: It's fixed. If you write one false word in an email, you're doomed. In a normal conversation, you can discuss and clarify your opinion.
The combinated use of email (for appointments etc) and normal conversation is perfect.

furtelwart
+1  A: 

Visual studio + Resharper

Yassir
+2  A: 

My copy of "The Mythical Man Month" whenever a manager starts to get an idea

Colin Cassidy
A: 

Dojo and firebug for webdev and STL/Loki-lib for C++.
Also google and wiki know just about everything :D

the_drow
+1  A: 

Resharper. Makes my coding time so much more productive.

b_richardson
+1  A: 

Note, Pen, Mind, and Google.

Mutant
+1  A: 

White erase board.

Christopher W. Allen-Poole
A: 

ctrl + C and Ctrl + V keeps me going forward :)

+2  A: 

A plain old text editor and a good knowledge of unix commands. I can't tell you how many times I've been saved by something like Emacs "find-grep" or the ability to run a simple search and replace with a command like:

find . -name "*.xml" -type f | xargs perl -pi.bak -e "s/TEST/BLAH/g"

Despite the proliferation of capable IDEs (which I use every single day) like Eclipse and Visual Studio, there is something to be said for introducing every programmer to the simple text manipulation tools that have served us well for a few decades. At the core of what we do: text manipulation, and the programmer that is best friends with his or her text editor (vi or emacs) is a programmer that can do just about anything.

tobrien
+1  A: 

Fiddler followed by Firebug

A: 

A large supply of chilled water, healthy and helps force you take breaks.

A: 

Probably a walk around the block. There's nothing better when I start thrashing, especially during crunch times.

CharlieG
A: 

OpenGrok found here: http://opensolaris.org/os/project/opengrok/

I set up an OpenGrok server a few months ago hosting the rather large code-base I work with. Symbol and definition look-up are damn fast and being able to click through function calls helps to get my head around unfamiliar code quickly.

veefu
A: 

goole google google... It has everything a programer need :)

Java Guy
A: 

I'd say the most important thing for me is Google - being able to lookup API's and find other peoples solutiones to problems I'm having is by far the most productive part of my toolchain.

After that, I'd say a good IDE is important (I use KDevelop).

Finally I think a good SCM tool such as Git or Mercurial is a lifesaver.

Zoomzoom83
+2  A: 

Textmate definitely.

danhere
+1  A: 

Digitally Imported of course ;p

James
+2  A: 

a calm and quiet working environment :)

A: 

One one only... Google

Think Floyd
A: 

Paper and pen. I fix most of my coding problems (as opposed to implementation tedium) while on the bus, away from any computer larger than my phone.

Backups, and by extension version control. The freedom to revert has made me a lot less cautious about trying new ideas.

Google code search. Rather than slogging through the source for something common-but-undocumented, I can just find out how everyone else is using it. This often gets me the jist of its style much faster, after which figuring out the details is easier.

Kim Reece
+1  A: 

LOGIC... LOGIC .... LOGIC all the way To find things you need logic and to use what you found you need logic so it is definitely logic friends... it is Logic. Regards, Andy

Andy
+1  A: 

Your mind

euphoria83
+2  A: 
vartec
+1  A: 

My punching bag.

BloodySmartie
A: 

stackoverflow

Shree
+1  A: 

The swedish bikini team that walks through or office once every hour to wake us from our programming stupor.

willcodejavaforfood
A: 

Google - All i need

Aashay
+1  A: 

My Pair at PairProgramming sessions.

crauscher
A: 

Mac, TextMate and Google! It's the key for success ;)

collimarco
+1  A: 

My father, he introduced me to programming, if not I would never put my hand on that thing.

  • Google and forums (like SOF) are my best friends to develop code
  • Books and Videos are the best friends to learn
  • Blogs and articles help me brush my skills
Omar Abid
+1  A: 

Visual studio with MSDN

+1  A: 

Visual Studio and Resharper

Vinay Pandey
+1  A: 

The . key -- Intellisense is your friend.

Ragoczy
+1  A: 

cygwin

I need those Unix-style tools to be productive on Windows even with IDEA as my IDE.

A: 

My brain is the best friend I have.

Jim Blizard
A: 

Maybe not best - but most recent "cool" one:

www.linqpad.net

Supports both C# and VB

Lets you enter linq code directly against a live database - great for testing/learning.

Also has some great snippets and built in leasons.

I learned quite a bit just from playing around with it several months back.

MostlyLucid
I am confused -- Why was this voted down?This site gets frustrating at times...Two of my posts have been voted down for what I see as no really good reason.{confused}
MostlyLucid
Just scrolling up I see beer, caffine and soda listed with no down votes -- interesting... OK I'll shut up and move along now...these droids are not what I am looking for.
MostlyLucid
+1  A: 

A sign by my desk that reads "If headphones are on, send an email".

(and below that "Except if the fire alarm is going off", because I can't hear it with my headphones on)

geofftnz
A: 

Soda to keep me awake and Beer to keep me calm.

corymathews
A: 

www.di.fm --> Trance channel. Keeps me focusing and in a good mood

ChrisAD
A: 

A door I can close and a phone with a ringer-off switch.

ProKiner
A: 
  • Open Source
  • Google
  • Caffeine
A: 

Code auto-formatting.
They're absolutely fabulous in Netbeans and Visual Studio. When your code formatting is just a little out and your braces don't line up it becomes agony to try and make sense of something that should read as quickly as an English sentence.

Align my code for me and I'm a happy guy!

Stefan Mohr
A: 

my computer and google

Virat Kadaru
A: 
  • Google
  • StackOverflow
  • Visibone
GameFreak
+15  A: 
The Dissonant
A: 

Apache Chainsaw, as a log viewer, but you should run it with the extra switches to allocate more memory than the default (say, -Xms32m -Xmx1024m)

Ron Klein
A: 

Cigar and tea.

A: 

Araxis Merge... it's by far the best diff tool available. Indispensable when merging code, comparing my own changes and debugging.

Chris Tek
A: 

Books by Thomas Erl, Martin Fowler, and Eric Evans...

I would be totally lost without their excellent insight and approach to our most common and difficult problems.

Microsoft...

For creating an amazing computing environment and development ecosystem that has provided me with the career I have today...without them....well, not many of us would be here today, I figure.

jrista
+1  A: 

Here are the tools I can't live without

  1. Textmate
  2. Firebug
  3. CSS Edit
  4. git
  5. Terminal
  6. Google
philhq
+3  A: 

stackoverflow.com

Shawn Miller
+1  A: 

G'day,

I totally, Totally, TOTALLY, TOTALLY (is there a pattern here?) agree with having

  1. a whiteboard,
  2. a quiet space, and
  3. the project time allocated

to:

  • discuss, and
  • argue, and
  • negotiate, and
  • postulate, and
  • evaluate, and
  • ...

So that, in the end, you can have someone senior, e.g. an architect or senior developer, with relevant experience, who was also a party to the discussions, just say

"Bugger it!" This, is what we'll do!

But, seriously, having that space to:

  • discuss
  • and write
  • and talk
  • and digest

is a big jump on other companies who just expect you to "discuss these things using email or ICM"

Just my AUD0.02!

HTH

cheers,

Rob Wells
+1! More if I could.
JoshJordan
+1  A: 

CTRL-C CTRL-V

CRTL-Y CRTL-K

anish
A: 

My fingers. I don't know what I'd do without them :)

victor hugo
+1  A: 

XM Real Jazz playing on my PC. The only music I can code to without getting disctracted.

PaulG
+2  A: 

Trance music is almost an absolute must, and a Ti-83+ close.

Paxinum
I use both of these, except a Ti-84 :)
Carson Myers
A: 

Divine Intervention (Google), vim, rxvt, zsh, gcc, gdb and valgrind :)

kakon
+1  A: 

Notepad++ , haven't had a development machine without it since I first downloaded it years ago.

SilentBobSC
A: 

Game and music

R.Vijayakumar
+2  A: 

A bottle of beer.

Pawka
+1  A: 

EXECUTOR

This is a multi purpose launcher and a more advanced and customizable version of windows run. The program originated as I was sick of spending too much time searching for programs through my ever growing windows start-menu, and also I missed a tool that could ease and optimize my daily work flow.

KEYNOTE

Tree structured note program.

ebattulga
A: 

A good VPN connection or other remote access tool. Knowing that I can get to my stuff and be productive whenever and whereever I need to - home, office, the company's other office across town, Panera, when I'm waiting for my car to get serviced - is invaluable.

Marc
A: 

TextPad.

Cape Cod Gunny
+1  A: 

Emacs!!! :)

Buggieboy
A: 

Firebug, Aptana, Netbeans, Eclipse and ArgoUML are my best friends

P.M
A: 

Coca Cola

I must finish off about 7 cans a day

zeocrash
A: 

Notepad++

The only thing I haven't done with it is compile code.

kalengi
+1  A: 

Just a Terminal:

  1. Windows: DOS Shell with the unix command in my path
  2. Linux and Mac: The Terminal
Thierry Lam
+2  A: 

Pink Floyd's progressive music :)

NetSide
+1  A: 

Caffeine. It's no fun when you're the sober observer.

Ben Gotow
A: 

Coffee and green tea.

fastcodejava