views:

847

answers:

20

Possible Duplicate:
As a programmer what single discovery has given you the greatest boost in productivity?

This is a community wiki to get a list of resources, that you consider helped you, to do faster programming, such as macros, intellisense, autotext replacer etc...

I will start the list with the following:

  • using two monitors (one for specs the other for coding)
  • using PhaseExpress to autocomplete short recognized tags like .cfori into C for cycle using variable i
  • Sticky notes on Windows
  • using stackoverflow.com to get my questions answered

When you enumerate your resources specific for a programming language mention the programming languages you used for.
If you find this or answers helpful, vote it.

+1  A: 

Visual form designers. I specifically use the one in Visual Studio, but generally speaking, I find that creating UIs in pure code is slow and painful.

Adam Crossland
i too used to love UI designers; but on Qt i find it's faster to code and compile than to drag things around.
Javier
Except for the ASP.Net form designer... I hate it with a passion and always just go straight for markup rather than trying to do WYSIWYG on HTML (which is commonly the first thing to stop working when you do anything "advanced")
Earlz
Earlz, yeah, definitely. I do more desktop application development, but on the occasions that I have done web apps, I always create the markup as text. There's an IDE called Komodo Edit that -- among many other great features -- does a spectacular job of balancing HTML tags and doing code-completion on CSS. That is a HUGE time saver for me.
Adam Crossland
I third the Form Designed in ASP.Net being horrible. It completely worthless. I don't even get why Microsoft included it. Even beginners should not use it. Msft needs to figure out how to make it work correctly or remove it.
RandomBen
+14  A: 

Simple: A paper notebook that has the plan, objects and methods written down. I find it easer to reference paper and make annotations than to fumble around in software.

kruczkowski
Excellent for small-scale design. You don't have to get up from your computer, but you don't have so much drawing/writing estate.
Lucas Lindström
I'm always drawing some random version of my algorithm to get it right in my head.
Robert Davis
+2  A: 
  • Lisp macros: once you get know them, you'll wish all languages had them.
  • Parrot VM: so I can write a text parsing module in Perl and have it run with my Python app.
  • Emacs (or any other advanced editor)
MeDiCS
+14  A: 

A whiteboard to use in thinking about what it is that I actually want to program. I always program faster when I know what I'm doing.

tvanfosson
Excellent for medium-to-large scale design. You will have to get up from your computer to go to your whiteboard, but you have a lot of drawing/writing estate.
Lucas Lindström
Whiteboards are better for working in tandem with other developers.
Steven Sudit
I have a whiteboard right next to my chair. Use it all the time just for my own stuff and I don't have to get up to use it.
tster
+2  A: 

Smart pointers ! :-) [1]

[1] When I was coding in C++

missingfaktor
+1  A: 

Like kruczowski, I also find Paper and Pen quite valuable. When I'm in meetings, giving demos, walking through prototypes or just using the applications I work on, I jot down notes about pain points, things to fix, etc... Then, as I'm working, I go through that list. I would do this in text files or whatever, but I often find myself with 15 TODO files. Obviously, after the application is released, many of those things go into a bug tracking tool (like FogBugz, which I found quite valuable at my last company.)

Jacob G
A: 
  • Visual Assist X (for C++)
  • A decent VCS
  • Music :)
f4
+1  A: 

An office room without telephone.

And a working plus-sign (brainfuck).

initall
A: 

Currently, I have 2 24" monitors that I use for development. An addition of an 17" monitor, to see what the end user will see is something I have requested. This will give me the ability to develop on the large displays & actually see what the end users will see on the 17".....just a suggestion.

larryr
+14  A: 
  • Colleagues that understand what are they doing
  • Manager that isn't eager to "help" you

On a serious note:

  • Whiteboard or two
  • IDE that fits your needs the best
  • Versioning system (CVS, SVN, Git)
  • Notepad
  • Total Commander
  • Books! (Code Complete is on my desk all the time)

And generally a friendly environment. The worst thing is to have someone behind you asking "when is it going to be finished?".

Ondrej Slinták
+1 code complete
Ric Tokyo
Code Complete is the best, no doubt about it.
Adam Crossland
+1 for Total Commander and a versioning system.
Auguste
A: 

@Ondrej Slinták answer plus what I have been lacking lately: a quiet working environment..

Ric Tokyo
+3  A: 
  • A fast computer. Your mind drifts when you are compiling so the less you have to wait the better.
  • More than 1 monitor. I like 4. 1 for my web browser, 1 for my IDE, 1 for my database, 1 for Skype, Email, and the overrun of toolbars from my IDE and database
  • A quiet distraction free area to code.
  • A couple of good book for referencing. Code Complete is a great choice.
  • Good tools like Firebug, YSlow, anything for Firefox that helps you find issues quickly in your code.
  • A notebook to write goals in. Without goals and specific time lines that are in minutes and hours I find I wander. I need to set goals every day. Without them I fail big time. Read 4 Hour Work Week for a good understanding why. There are a ton of books that basically say the same thing. The Mythical Man Month and Peopleware are awesome at helping you get it.
RandomBen
+1 fast computer
tster
Are you sure having Skype and your Email going is the best way to focus? ;)
Earlz
Very true! I use them ask questions that is about it but for some people yes it is a distraction.
RandomBen
+ 1 fast computer, I also apply a very thin layer of margarine to the main keys on my keyboard to enable easier moving around.
I don't think margarine is a good idea. I might eat my keyboard! DAS Keyboards are pretty amazing if you like the clicky kind.
RandomBen
A: 

Google!! Can't imagine working without Google.

SO now for getting the trouble causing issues answered within minutes.

Good IDE with a good compiler.

Tools like PC-Lint, KLOC for finding static issues quickly.

Above all the mood to program which really perks up one's speed.

Though many may not agree, a good playlist of my favourite songs playing helps me to ignore the outside noise and concentrate on my coding.

Jay
A: 

I think the thing that makes me code faster more than anything is code ownership. The ability to do whatever you want to your section of code w/o worrying that your going to break your cube-mates code definitely makes me faster.

Robert Davis
+3  A: 

I think you are searching for answers and this book Productive Programmer can answer your queries. Its really nice book it has exactly what you are looking for and that too with examples.

alt text

Before everything else in the list i think Freeze Requirements before development is most important thing :).

Beside this there are few good things one should have,

  1. Have some hold on technology you are working on (at least basics using books by reading good authors and some practice)
  2. Should be well aware how to Google
  3. Should have some stress busters whether cup of coffee, music or sports ..
  4. Have nice tools which includes IDE and all stuff.
  5. Have milestones where progress can be measured by looking back and estimates can be corrected by looking forward.
  6. And yes place where experts can answer queries like stackoverflow as you have mentioned.

I think with all this programming is fun

Anil Namde
A: 

If prefer a text editor to an IDE, ctags is superb. It effectively 'hyperlinks' all your function calls to their definitions. You can jump between function and method calls and their definitions in 41 languages.

It's simple to use, and very lightweight (creates a single index file for your text editor to read). Most serious programming editors support it.

ire_and_curses
A: 

Just plain being left alone and being able to listen to music(softly) helps me focus. My mind can focus better when listening to music.. not quite sure why.

Having all the caffeine you want.

Having 2 monitors.

Earlz
A: 
  • I keep a text file "info.txt" of all the little bits of information that I infrequently use again and again, but seem to somehow forget every time (like the names of the registry keys that fusion logger uses, as well as a couple of magic numbers used in your app)
  • I've also set up a symbol store which makes things easier no-end when debugging the many many different builds that we have.
  • Launchy
  • Notepad++
  • Having an index assisted search of the source code is also very handy for any source code bases of any reasonable size.
Kragen
A: 

When it comes to .NET coding, particularly C#, you can't leave out ReSharper.

Kevin McKelvin
A: 

Editor/IDE based keyboard shortcuts would be a handy resource to be banked upon once mastered.

cheers

Andriyev