General programming
DON'T LIVE WITH A BROKEN IDE
Integrated Development Environments are all the rage these days, with Eclipse being the sort-of break-out winner. I don't use an IDE, exactly, I use that ancient rustbucket of a text editor, Emacs, and while Emacs isn't exactly an IDE, this rule applies: don't live with a broken IDE.
For the past six months, I've been working with Emacs 21 on my desktop at work. I do development in a number of different languages that require syntax highlighting and proper indentation: C, Python, HTML, CSS, and Javascript. The Javascript highlighting engine did not work correctly: the indentation interpereter was almost alway wrong, leaving me with poorly-indented code that was hard to read. I ended up wasting, I'm sure, hours hand-indenting the code so that I could see what I was doing.
I finally got tired of this rigamorale and asked if I could please update the Emacs install by hand. We're discouraged from putting into the base OS anything that's not approved by Red Hat, but he said sure, if I needed it and could build it by hand, if they ever had to restore my OS I obviously could do it again. So I quickly built Emacs from scratch and installed it in /usr/local, which I then immediately backed up to the virtualization drive to make sure it would be there if I needed it in the future.
It has made all the difference in the world. Emacs 22's javascript-mode just works, and it does indentation at four spaces per closure properly. Not only was I able to actually see the syntactical error I was making in a javascript configuration pass in Ext-JS, but I could see how the entire dialog manager could be abstracted out further into a metahandler and reduced my code duplication by half. Now that's programmer efficiency.
Just a simple reminder: if your IDE doesn't work exactly the way you want it to, it is slowing you down. It's worse than having no IDE and no smart editor, because a broken IDE distracts your from the task at hand, drains time and will you have allocated to the programming task at hand, and introduces errors into your attention. Managing your attention span is the number one skill for the Internet age, and a tool that comes between you and that successful management is a disaster.