85

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 accepted

Google

254

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.

183

Source Control System

137

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

131

Coffee. .....

125

Ctrl + Z.

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

NOOOOOOOOOOOOOOOOOOOOOOOOOOOO!

109

My headphones, to create a quiet place.

88

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

75

Visual Studio.

70

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.

70

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

59

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.

53

A good diff tool, like Beyond Compare

51

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. :-)

50

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

49

jQuery .. finally i can do magic on web pages

Oh and Firebug too .. of course..

46

The yellow rubber ducky that sits next to my monitor

43

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.

43

Since I need all the help I can get... I have an extra braincell brain cell

42

Redgate's .NET Reflector

39

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

35

intellisense

34

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 !

26

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.

25

My peanut sized brain.

25

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)

24

Ergonomic keyboard and chair.

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

17

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.

15

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

15

alt text

It's improved my social life significantly.

11

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 :)

11

Supportive Wife

10

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. :-)

9

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

9

A good version control system.

9

The solid door to my office.

9

Resharper

8

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

7

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

7

IDE(vim)

version control system(Git)

Google

7

my laziness.

6

Caffeine, a debugger, and google.

6

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

6

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)

6

In no particular order:

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

And without a doubt my wife.

6

CTRL-C, CTRL-V :-)

6

A bathroom with a fan

5

English is the best tool ever

4

A good IDE with decent refactoring and debugging capabilities.

4

My Visual Studio action figure :)

Some pic

4

A good text editor.

4
  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.

4

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.

4

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.

3

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

3

google, IDE with good intellisense and stackoverflow community

3

valgrind

3

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.

3

The compile error, since I am dyslectic.

3

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

3

Ctrl + Space

Autocomplete FTW.

3

stackoverflow.com

2

Source control

2

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.

2

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

2

My programming playlist on my ipod.

2

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

2

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).

2

Soma.fm - Groove salad channel

Wonderful distraction free music to code by.

2

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.

2

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!

2

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

2

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.

2

Textmate definitely.

2

a calm and quiet working environment :)

2

caffeine

Caffeine, doesn't mater if it's generic 0xC0FFEE, caffè latte, Red Bull or your favorite cola.

2

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

2

A bottle of beer.

2

Pink Floyd's progressive music :)

1

Stackoverflow, to remind me why I do what I do

1

Time, Google and a good debugger

1

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.

1

The nearby couch where I can stretch out and think.

1

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).

1

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
1

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

1

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...)
1

code completion

1

Problems to solve!

1

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.

1

Backspace, the key that I type the most.

1

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

1

LINQPad :D

1

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).

1

Alt + Tab

Window + D

Window + R

Google

1

Redgate SQL Compare. Sort of DiffMerge for MS SQL databases

1

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.

1

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.

1

By all means its Electricity,

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

1

Visual studio + Resharper

1

Resharper. Makes my coding time so much more productive.

1

Note, Pen, Mind, and Google.

1

White erase board.

1

Fiddler followed by Firebug

1

Digitally Imported of course ;p

1

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

1

Your mind

1

My punching bag.

1

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

1

My Pair at PairProgramming sessions.

1

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
1

Visual studio with MSDN

1

Visual Studio and Resharper

1

The . key -- Intellisense is your friend.

1

cygwin

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

1

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)

1

Here are the tools I can't live without

  1. Textmate
  2. Firebug
  3. CSS Edit
  4. git
  5. Terminal
  6. Google
1

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,

1

CTRL-C CTRL-V

CRTL-Y CRTL-K

1

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

1

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

1

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.

1

Emacs!!! :)

1

Just a Terminal:

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

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

0

My self.

For always trying to help by judging my code.

0

StackOverflow

I like making other people do my thinking for me.

0

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...

0

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

0

Polymorphic inheritance.

0

coffee, VS, google

0

Task tracking system - I use OnTime.

0

Google C++ Mocking Framework.

Unit testing is no fun without it.

0

The internet

0

1)IDE - VS2008

2)web search - Google

3)noteKeeping - Evernote

4)backup,sync - BeyondCompare

5)textsearch - Agent Ransack

6)notepad2

0

Visual Studio

QFT

0

stackoverflow.com

0

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 :)

0

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

0

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.

0

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

0

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.

0

flat assembler, an Open source assembly language compiler.

0

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

in addition to Carl Vondrick (Keyboard)

0

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

0

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

0

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.

0

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

0

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

0

Overtime salary

0

Silence is wat i need.

0

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

0

O'Reilly Safari

0

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

0

a sense of perspective

0

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

0
  1. Visual Studio
  2. Regionerate
  3. GhostDoc
  4. Reflector
  5. FireBug
  6. The Proxomitron
0

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 :-)

0

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.

0

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

0

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

0

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

0

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

0

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.

0

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.

0

One one only... Google

0

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.

0

stackoverflow

0

Google - All i need

0

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

0

My brain is the best friend I have.

0

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.

0

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

0

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

0

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

0
  • Open Source
  • Google
  • Caffeine
0

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!

0

my computer and google

0
  • Google
  • StackOverflow
  • Visibone
0

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)

0

Cigar and tea.

0

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

0

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.

0

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

0

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

0

Game and music

0

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.

0

TextPad.

0

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

0

Coca Cola

I must finish off about 7 cans a day

0

Notepad++

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

0

Coffee and green tea.

-1

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

-1

All the childs friend

www.google.com

-1

Classical rock songs.... green day 3 doors down guns and roses scorpions deff lappard nirvana pink floyd timberlake metallica puddle of mud beatles queen eagles u2 led zapplein aerosmith dire straits deep purple audioslave corrs rollin stones poets of fall Avril Lavigne Bon Jovi A.R rahman Poets Of fall Bryan adams The corrs creed Eminem Irom Maiden Kiss New radicals jackson Pink Floyd

And lots more......

-2

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

-3

ruby, weed and adderall