112

I've been tasked with creating a fun and relaxing environment, one thing I know that I want is ergonomic mice and keyboards, others have suggested exercise balls and bands.

What is it that every programmer needs while working? What might not be necessary but would be nice to have anyway?

Note: this question was asked previously, but has been recommended to be posted here. See this link for the previous responses: https://stackoverflow.com/questions/3911911/stuff-every-programmer-needs-while-working-closed

  • 3
    Wow what company is that, treat there employees so well! :) Wish I am able to join such a company too! – Jiew Meng Oct 13 '10 at 08:04
  • 38
    Why don't you ask your developers what they want? – Thomas Stock Oct 13 '10 at 11:54
  • 7
    Conjugal visits – Greg Nov 04 '10 at 00:29
  • 1
    Nice salary!!!! – Amir Rezaei Nov 18 '10 at 10:50
  • hmmm, a keyboard? – haylem Dec 12 '10 at 13:46
  • 1
    Something that may not have been mentioned - good temperature/humidity/air quality control and nice bathrooms. I, for instance, get more hungry while working during hot summers than cold winters, because the temperature inside is negatively correlated to that of outside. Ideally the correlation should be slightly positive, but still be close to zero. – Job Dec 12 '10 at 15:49
  • 1
    @Greg, that requires someone who is willing to show up :) – riwalk Dec 13 '10 at 04:43
  • Keyboard? Keyboard? I want a Minority Report interface dammit! – LRE Jan 16 '11 at 04:54
  • Being allowed to wear casuals to work. Some companies got the "casuals allowed only on Friday" rule. Sure, if you're meeting a client, formals may be necessary. But everyday!? – Nav May 28 '11 at 10:31
  • One point on ergonomic mice / keyboards. For heavy users the important thing is to vary position / usage reguarly so as not to overstress particular muscle groups, joints etc. For this reason I use one kind of mouse at home and another at work. Hence, if you're providing ergonomic mice / keyboards, provide a variety in order to allow people to swap between them. – James Youngman Feb 26 '12 at 11:10

90 Answers90

280

The Internet

As Joel Spolsky said, "The internet should be as freely available as air."

riwalk
  • 7,680
  • These days I'd think this was a given for just about any type of employee. – JohnFx Oct 12 '10 at 18:06
  • 10
    @JohnFx, sadly no. In many places, the internet is severely limited under some false notion that it will increase productivity. For programmers however, it is simply a necessity. – riwalk Oct 12 '10 at 20:24
  • @Stargazer712: increase? :) – dr Hannibal Lecter Oct 12 '10 at 20:50
  • 45
    I have a friend where every site that is identified as a "blog" is blocked, even if it's a programming blog. My friend described cases where he searched a problem on google, saw a page that looked like it offered a solution, but was unable to access that page – JoelFan Oct 12 '10 at 20:56
  • 4
    @SpashHit - I would quit so fast it wouldn't even be funny :) My condolences to your "friend" ;) – riwalk Oct 12 '10 at 21:04
  • @SpashHit, there were a few hours here that WebSense decided to block Google, so we couldn't even get as far as your friend. – Kevin Oct 12 '10 at 21:17
  • 14
    @SpashHit: I work in the biggest Italian industry, and there the firewall policy is very dumb. Most of the blogs are blocked, however I can often rely on Google's cache. Also any URL with "sex" is blocked. Luckily I don't have to use expertsexchange :-) – Wizard79 Oct 12 '10 at 21:46
  • 1
    @SpashHit expert sex change.. sounds about right. you reminded me of this: http://www.i-am-bored.com/bored_link.cfm?link_id=23864 – WalterJ89 Oct 12 '10 at 21:56
  • 7
    This should be the number one answer in my opinion. Dual monitors and so forth are certainly a productivity boost, but if our Internet connection goes down I'm better off taking my 14 inch laptop and heading to the nearest coffee shop with free Wi-Fi. – Tim Goodman Oct 13 '10 at 09:08
  • This is probably the one that you really must have. Great observation by the way, I didn't even think of it because it's so obvious. – Daniel Oct 15 '10 at 09:20
  • 1
    Not just the internet, but IRC too. There are great IRC groups for Ruby, Perl, Python, MySQL, Postgres and vim, just to name my favorites, and those can save hours of searching. Plus in-house IRC with groups for various areas of expertise/speciality can work wonders getting away from the knowledge silos and spreading the tribal knowledge. – the Tin Man Oct 17 '10 at 07:36
  • I can't write more than 10 lines of code without google – AndreasN Oct 22 '10 at 20:23
  • @Lorenzo: A friend of mine had to visit the IT department in his first week at a new job because the computer was simply blocked the moment he had googled for LaTeX related stuff. Never mind he actually was supposed to be working on LaTeX things. – Christopher Creutzig Oct 25 '10 at 07:28
  • Huh. You guys should take a look at some of the Indian companies. It is as good as No Internet. Scott Gu's site will not work. Jeff Atwood's Coding Horror is blocked with this message "Classified as Entertainment/Movies" presumably because of the word "Horror". There were days when I used to save Coding Horror's pages as Archive Single Page MHT files and email them to myself so that I can read them at office. So, Jeff if you are need of backup, I am always there :-) – Kanini Oct 28 '10 at 17:37
  • 2
    @AndreasN: Really? That's not actually a good thing. – quentin-starin Nov 18 '10 at 16:01
  • @qstarin, when the number of languages you know exceeds 10, you start having to Google stuff to remember specific details. Saying that using Google is bad is equivalent to saying that using code completion is bad. – riwalk Nov 18 '10 at 16:40
  • @Stargazer: I didn't say Google was bad. I said not being able to write 10 lines of code without google is bad. What does # of languages have to do with it? Do you work in 10 languages in a given week (actually, depending on what we call a "language" that's not even a stretch)? Does a language you worked in last year impede your ability to remember the important parts of the language you're working in this week? – quentin-starin Nov 18 '10 at 17:21
  • And I think any programmer would benefit with some quality time spent coding with nothing more than a notepad and pen. Yes, pen. – quentin-starin Nov 18 '10 at 17:22
  • @qstarin, I wonder what kind of job you have where you only use 1 language in a given week. I use C#, VB, Python, HTML/CSS/Javascript, and SQL in any given week. Google is my friend. I agree that you can't be completely dependent on Google, but memorizing whether a language uses substr() or substring() is worthless and has no bearing on your skill as a programmer. Just Google it. – riwalk Nov 18 '10 at 22:01
  • @Stargazer712: I'm sorry, but I still have to disagree with you. Not to mention you seem to be looking for an argument (where did I say I use 1 language?). I use as many as you, it seems. And very honestly, if you have to google to remember the sub-string syntax for any language you use day to day that is flat out inefficient. 10 lines of code is a pittance, and googling basic functions like substr would be like a woodworker who couldn't remember how to set the blade depth on his own table saw without pulling out the manual. – quentin-starin Nov 18 '10 at 22:21
  • 2
    @qstarin, When I am trying to determine the worth of a programmer, I look for a concrete knowledge of OO programming, an understanding of design principles, and the ability to write clean & easy to understand code (among other things). Based on what I have heard you say, you value a knowledge of programming trivia (lets see, .NET based languages use Substring(), python uses splicing notation, javascript is substring(), php is substr() with 3 params, and MSSQL has SUBSTRING() with 3 params. Doing that without Google must mean I'm a brilliant programmer, right?). – riwalk Nov 19 '10 at 00:49
  • And yes, using 3 versions of substring() yesterday impedes my memory of what the syntax is for a 4th version is today. Maybe that means I'm a bad programmer. – riwalk Nov 19 '10 at 00:50
  • 1
    At least in the US, there can be legal problems with unfiltered internet, and some sort of porn filter can be necessary to avoid legal liability. – David Thornley Feb 08 '11 at 17:58
266

Dual monitors

ysolik
  • 6,330
  • 6
    I don't think one would need dual monitors to program. – Daniel Oct 12 '10 at 16:00
  • 67
    @this.Daniel: "Need" and "Really really helpful" are two similar things. I'm sure you could mow a lawn with scissors, but a mower is really helpful. – Josh K Oct 12 '10 at 16:02
  • 22
    @ this.Daniel: I'm almost willing to say it is a must if you want to be productive. – ysolik Oct 12 '10 at 16:02
  • 15
    I've never understood the push for multiple monitors for programmers. Maybe it's just me, or maybe it is because I have a nice large primary monitor, who knows? I'd suggest that the monitor setup is very important though and perhaps a better answer would be to provide some flexibility in display options to the preference of the developer. – JohnFx Oct 12 '10 at 16:10
  • 25
    I'm trying to get my company to go to 3. – Kevin D Oct 12 '10 at 16:10
  • 2
    @ysolik Actually it's not a must to be productive, I can be productive on my 15" notebook monitor as well. – Daniel Oct 12 '10 at 16:11
  • 2
    +1 It would not be vital to have dual monitors, but it would be highly productive – Jhonny D. Cano -Leftware- Oct 12 '10 at 16:11
  • 6
    Having another monitor definitely brings up productivity. I usually open my IDE on one screen while documentation and other related (but not that important) stuff are opened in the other. Switching between windows can be really time consuming if you think about it. – Terence Ponce Oct 12 '10 at 16:30
  • 3
    I agree with @JohnFx.. it's not set in stone that dual monitors are better. In a lot of cases I'd pick a larger single monitor over the dual monitor. In other cases I'd pick dual. Plus, there's something nice about having a monitor front and center. I think ideally there would be a very large center monitor and 2 smaller ones on each side. Bonus points if you have monitor arms and can move them around when needed. – TM. Oct 12 '10 at 16:42
  • 2
    I read an article that discussed this and said its not the # of monitors but the amount of pixels that matters. Which pixels really translates to screen real estate and a single monitor with large enough pixel count is as productive as 2 monitors with a combined equal pixel count. I want to vote it up but think it should be changed from "Dual monitors" to "Enough pixels or screen real estate, Dual monitors or at least a single monitor with 2560 x 1600 or something" – Chris Oct 12 '10 at 16:54
  • 2
    @Chris: Two monitors give the flexibility that one, no matter how large, can't, especially if you use swing arms. You can move monitors around and rotate widescreens vertically. – ysolik Oct 12 '10 at 17:12
  • I love my dual and tri monitor setups as much as the rest I am just pointing out a conclusion from an article I read I believe from codinghorror. Wish I could find the link again. – Chris Oct 12 '10 at 18:04
  • 14
    One advantage (for most Windows programmers at least) of dual monitors over big singles is the lack of really excellent window managers. On *Nix, you can break all your toolbars and windows up and scatter them, letting the manager put it together pleasingly for you. On Windows, having an extra monitor is like having a neatly segregate design space so you can have two "full screen" apps running at once and get full use from both. – CodexArcanum Oct 12 '10 at 19:00
  • 5
    For the debate Dual vs Large: Dual offer a natural boundary, you can use "maximise" on two apps concurrently, which is very handy. Of course Dual & Large is even better :) – Matthieu M. Oct 12 '10 at 19:13
  • 2
    I have been trying to get myself used to dual-monitor setups multiple times over the last ten years, and every time returned to single monitor after a week. I have one big screen, ALT+TAB handy, and I'm very happy. It's not for me. – Pekka Oct 12 '10 at 21:39
  • 2
    Dual monitors are just awesome when you have reams of code to go through all the while using the other monitor for looking at your e-mail and multiple ssh sessions, each scrolling the output of something (a build, syslog, you name it.) Yeah, it's not a must, but for productivy (at the hand of a good programmer), there is just no comparison. This is the default setup we have at work for every single engineer. It simply kick ass when it comes to productivity. – luis.espinal Oct 12 '10 at 22:40
  • 1
    @Matthieu: Windows 7's Aero Snap feature diminishes that quite a bit though. Okay, sure, now it's possible to have 4 distinct display locations, but I'm not usually thinking of using the keyboard to move windows around. – Billy ONeal Oct 12 '10 at 23:21
  • Aren't dual monitors bad for ergonomics? – Andrew Grimm Oct 13 '10 at 06:00
  • 1
    There have been studies, I believe, that show that dual monitors really do increase programmer efficiency by about 10%. I can't cite any without searching for them, but I believe that's why so many businesses are fine with the additional expense of extra monitors. – rtperson Oct 13 '10 at 11:37
  • Yeah, we have a guy here whose monitor is so big (don't know the dimensions exactly) that everyone that walks by it says, "wow, dude that is huge!" He doesn't use dual monitors. – JoelFan Oct 13 '10 at 14:31
  • 2
    I really recommend three monitors for programmers, no matter the size. One for coding, one for documentation and one for testing. Of course it depends on your workflow: carefully configured window managers, IDEs and keyboard shortcuts can decrease the need for more screen space. A huge monitor with a proper WM could eliminate the need for more than one screen. – Sorpigal Oct 13 '10 at 14:53
  • 1
    And WinSplit Revolution - http://www.winsplit-revolution.com/ – Pat Oct 13 '10 at 15:07
  • 1
    I love having a 1920 x 1200 monitor because I can fit two related code files side by side in Visual Studio, with room for the solution explorer to spare. I have a second monitor, 1600 x 1200, but I think it's mostly a nice to have. When looking at docs or whatever I'm also not looking at my code. Alt-tabbing away from Visual Studio or looking at the other monitor are mostly equivalent. – Joren Oct 13 '10 at 17:09
  • 6
    @this.Daniel If you want to talk about needs, then all u really need is a computer with some sort of screen. Everything else is a want. Next thing you know, someone will argue an ergonomic chair is luxury, that they can program on two pieces of wood crossed against each other. Same goes for mice, keyboard etc. – codinguser Oct 13 '10 at 17:25
  • 1
    I wonder if the people who feel that they need dual monitors use desktop environments (e.g. OS/X, most/all linux DEs, maybe windows with some add-on?) that support workspaces. I have 24 workspaces, and just have to hit CTRL-ALT-{arrow} to switch between them. I find this plenty of real estate on my 14" laptop. On the other hand, I think I'd be totally lost with only 2 effective workspaces. Are people who consider dual monitors essential also using workspaces? – intuited Oct 13 '10 at 19:27
  • @intuited: I do, but for separate purposes. I use workspaces for separate tasks (development work on one, support work on other products on another), but dual monitors so I can have my IDE on one and documentation on the other. If they still printed decent documentation I'd just have one monitor and a manual, but... – TMN Oct 13 '10 at 19:46
  • 1
    @TMN: Save the Trees, Don't Print. – Matthieu M. Oct 13 '10 at 20:10
  • 1
    I'd rather have a 27" iMac than two monitors. – johnsyweb Oct 14 '10 at 11:59
  • 1
    Two monitors is an absolute must. Skip the exercise balls if you have to. – Jason Oct 14 '10 at 22:17
  • @Johnsyweb: I'd rather have two 27" monitors than one. – Dean Harding Oct 15 '10 at 00:13
  • Dual monitors? damn i can't live without three now. ;-) – icelava Oct 15 '10 at 03:55
  • I run 5 monitors at home. A little overkill, but 3 I find is a good number. 1x24 main code screen, 2x19 either side. Use VS2010 multimonitor support to put some other code on one of the screens (ie, aspx file on one, code behind in another, or unit test on one, class in test on the other), and then on the 3rd one is either web page I'm coding, or unit test runner. – RodH257 Oct 15 '10 at 11:08
  • I'd rather have 3+. I can always think of something else to put on them. – Ryan Ternier Oct 15 '10 at 21:22
  • @TMN: interesting.. yeah, it gives you another "axis". I've found myself wishing that my workspace layout was a 4x4x4 cube, or a hypercube, or some kind of interlinked tree structure, rather than a 2D array. – intuited Oct 17 '10 at 03:28
  • Even dual monitors with multiple workspaces don't cut it often times. I juggle documentation in PDFs and in the browser, company calendar and email and in-house chat/conferencing, remote and local terminal and ssh sessions with debugging and editing, plus occasional editing locally. I have two more monitors on order to help me not have to switch workspaces every minute. – the Tin Man Oct 17 '10 at 07:40
  • I have 2, and I constantly run out of room. I like to spread out my Eclipse views so I have more room in the main window/monitor for code. That way, I can see more than one code file at once. – Michael K Nov 01 '10 at 19:41
  • Dual? I feel cramped and know I work slower on anything less then three 1920 pixel wide monitors. I just wish it was easier to find 1920x1200 vs. 1920x1080. Love the extra vertical for those extra few lines of code. – quentin-starin Nov 18 '10 at 15:58
  • Two monitors is not an absolute must. The lawn mower/scissors example is creative, but what we're talking about here is the difference between having one pair of scissors or having two. – riwalk Dec 01 '10 at 22:20
230

Smart Colleagues Who Enjoy Debating Solutions

For me, the one thing that makes a fun and relaxing environment is the people you work with. Surrounded with smart people who are passionate about software craftsmanship is a great way to do that. Everything else is like dual monitors, helpful, but not vital.

I find it interesting that most answers (up to this point) are physical things no one has mentioned the benefits of collaboration.

You can develop in a cave, but its easy to lose sight of the big picture.

168

A large Whiteboard
Very handy for brainstorming and communicating ideas when working with other developers. Don't know if I could live without mine.

BTW: Those tiny velcro attached CUBE white-boards don't cut it.

JohnFx
  • 19,070
  • The last company I worked for put me in a large lab. All the walls had hooks for 1m * .6m white boards. It was whiteboard heaven. – sixtyfootersdude Oct 12 '10 at 23:03
  • 3
    I dunno, I never really got into white boarding. For collaborative stuff that can't be managed over IM, iPads seem to do the trick just fine. But I couldn't write something legibly on a whiteboad to save my life :p –  Oct 13 '10 at 00:40
  • 2
    We have a 4'x8' chalkboard in the room we work in (we're 3 in this particular space, which is maybe 10'x20') We'd much rather have chalkboards, as they're less messy, and the guys from the cubicles outside don't steal your markers :) – Mark Oct 13 '10 at 19:21
  • I LOVE whiteboards... You don't even need to write! you can draw frenetically as well to show your points :-D – Khelben Oct 14 '10 at 08:16
  • Personally I'd like all the walls in my office to be painted to be whiteboards. Unfortunately my co-worker doesn't agree. –  Oct 18 '10 at 20:56
  • I have a little one I keep at my desk - it's great for design problems. The big one we use for discussions. "A picture is worth a thousand words." – Michael K Nov 01 '10 at 19:43
  • Whiteboards? In my previous place we just drew on the windows! (with wipe-clean whiteboard pens of course :)) – ChrisAnnODell Nov 18 '10 at 21:27
151

Ergonomic chair

I think one would definitely need an ergonomic chair since most of your time is spent in front of the PC. If you are using a notebook then a notebook stand would be nice as well.

Sufficient light, not too much noise and coffee :)

Daniel
  • 1,150
113

Time Allocated To Research

Be it tooling around with a potentially usable new tool/technology or reading up on a methodology, time to research is critical.

Anecdote:

When I started my current job, Fridays were terrible because all of the evening telemarketing staff worked the day shift on Fridays. I started working at home on Fridays and took 50% of that time at home and devoted it directly to researching. I got up to speed on the codebase, the vendor tools, methodologies that we used in no time and discovered some new techniques/processes that I ended up putting in place to great effect.

Steven Evers
  • 28,180
104

Headphones

alt text

grokus
  • 7,528
  • +1: I'm wearing the 595s right now. Well worth the extra cost over the 555s. The audio quality and comfort are astonishing. – Sam Dolan Oct 12 '10 at 18:18
  • 23
    Can I prefix "noise-cancelling" to that? Many times I don't want music -- I want peace and quiet. – Christian Mann Oct 12 '10 at 19:18
  • 5
    I would think that the ideal workplace being designed would negate the need for headphones. – Steven Evers Oct 12 '10 at 21:29
  • Do noise-cancelling headphones still cancel outside noise if you're not playing music on them? – Kyralessa Oct 13 '10 at 04:12
  • @Kyralessa probably yes but a cheaper alternative will be noise suppressing earplugs! – Autodidact Oct 13 '10 at 04:26
  • 3
    Good isolating in-ear headphones/earbuds not just for the listener's sake but also for the ones near him. Cheap earbuds tend to "leak" noise so the others hear it too. – Fanis Hatzidakis Oct 13 '10 at 13:27
  • @SDX2000, with earplugs I find the sound of my own head (swallowing, breathing, etc) more annoying than outside noise. – David Murdoch Oct 13 '10 at 14:20
  • @sdolan: You can get 595 quality by removing the foam dampeners from the 555. ;) Other then that they are the same cans and completely comfortable. I could die in these headphones. – Josh K Oct 13 '10 at 14:29
  • @Christian Mann - One of those new Bose headphones have a feature where harsher/more mechanical sounds like the airplane engine and the rumble of the car are cancelled out, but you would still be able to hear other people talking. Would this be the type of noise-cancelling you're talking about, or noise-cancelling other conversations? – JFW Oct 13 '10 at 15:57
  • 3
    @JFW: Actually, I find that I'm quite able to remove mechanical noise from the background. Conversations are what push me out of the zone. They're also more difficult to remove mechanically, so meh. – Christian Mann Oct 13 '10 at 17:26
  • it doesn't work for musicians I think. – setzamora Oct 13 '10 at 18:22
  • I use Ultimate Ears ear-buds: they totally blot out conversation in our open-plan office. Works a treat. – Jeremy McGee Oct 13 '10 at 20:05
  • I couldn't agree more on this one. Without headphones I just cannot get in the groove the same way. Plus it cuts distractions. Many times I've realized after a few hours with my headphones on that I didn't turn on the music! Just the noise-killing was enough. And perhaps the "thinking cap" autosuggestion of wearing them helping me get into working mode... – ErikE Oct 14 '10 at 00:25
  • www.rainymood.com plays the sound of rain, great white noise to work, and sleep to! – invert Oct 15 '10 at 12:51
  • I think headphones should be the only way people can listen to music. I've worked in offices where people played music through their speakers loudly, under the mistaken impression that the rest of us wanted to hear their tastes in music all day long. I am a musician, I love all sorts of music, but when I am concentrating I want to pick my own music to listen to. I should be able to put on my own headphones and not hear what they are listening to. If I can hear what they are playing it's too loud. Sennheisers are great but the Bose over-the-ear noise reduction are awesome. Extremely quiet! – the Tin Man Oct 17 '10 at 07:30
  • 1
    I think headphones can actually be detrimental because of the isolation from the team that it encourages. The best teams I've been a part of were one that had a good amount of technical cross talk. – snakehiss Dec 19 '10 at 06:11
97

A Do Not Disturb option

I actually like working in a place where I am not isolated all day long, where I am in tune with what else is going on in the office. But sometimes the thing I need most is the ability to shut out all the noise, and to send a strong " do not interrupt me unless there's a fire" signal.

AShelly
  • 5,793
  • 3
    Same here. Headphones all day. – Ternary Oct 12 '10 at 19:25
  • I suppose the "unless there's a fire" bit should be understood both literally and figuratively ? – Matthieu M. Oct 16 '10 at 14:29
  • I was going to answer "Quiet" but this works even better. – AnonJr Oct 16 '10 at 17:40
  • @Matthiew - I once worked in a place where the one area where you couldn't hear a fire alarm was where all the test equipment was. Also, I have Aspergers - and one of the symptoms is that when I'm "hyperfocussed" (can be much the same as "in the zone", though not always) people can literally shout into my ear and I won't hear. I have failed to notice a smoke alarm going off fifteen feet away before. And that's without my ear defenders for my (really, no joke) sensitivity to some quiet sounds. Neurological wiring issues can be a bit paradoxical. –  Dec 07 '10 at 13:49
  • I used to have a little sign that said "Piss Off, I'm Busy". For some reason other people didn't like it. – LRE Jan 16 '11 at 04:57
75

Proper Lighting

Either Natural, incandescent or indirect/diffused lighting is a big plus for me. Flourescent lighting makes me feel like I'm in a sweatshop and gives me a headache.

JohnFx
  • 19,070
  • Depends on the fixture too. For example, florescent in one of those "Mirrored Squares" (i.e. http://www.hitecsystems.co.uk/lights1.JPG ) fixtures is fine.... – Billy ONeal Oct 12 '10 at 21:18
  • 5
    Hey I love fluorescent lighting. Yellow light gives me a headache. – Autodidact Oct 13 '10 at 04:28
  • @SDX2000: IMO the problem is not in fluorescent lighting by itself but in it almost always being done wrong. It is usually too bright and of wrong color temperature. And since it's almost always done wrong I have to not like it. – sharptooth Oct 14 '10 at 11:51
  • 2
    @sharptooth - Not to mention the inevitable crappy ballast that makes it flicker. – JohnFx Oct 14 '10 at 13:41
  • @JohnFx: That's true, but the situation improves fast with electronic ballasts bcoming more widespread. It happens electronic ballasts are more energy-efficient and so companies are happy to employ them. However this doesn't do anything to brightness or color temperature. – sharptooth Oct 14 '10 at 13:46
  • My company replaced all of the fluorescent lighting in the building (All 5 floors) with sunlight balanced (D-50) lighting. It was a bit odd during the transition, but I like it much better than the cheap lights. – Mark Thalman Nov 18 '10 at 14:16
  • 1
    I hate incandescent lightning. It's too dark and doesn't blend well with the light from the screen. Fluorescent all the way. – EpsilonVector Dec 13 '10 at 13:53
  • I don't see "Mirrored Squares" reducing flickering. Not sure what causes flickering, but even magnetic ballasts alternate fast enough (100 Hz) for that to be absolutely not the problem. 6-10 Hz is the problem frequency. I suspect that it is more to do with dirty power supply (merely exasperated by absurdly high intensity). I've seen LED mood lighting in an A380 flicker. – Tom Hawtin - tackline Dec 13 '10 at 16:51
  • That's why I prefer coding outside during summer. –  Oct 11 '11 at 19:16
  • @WTP Obviously you don't live in Texas. =) – JohnFx Oct 11 '11 at 19:31
  • @JohnFx does "Holland" say enough? :) –  Oct 11 '11 at 19:32
74
  1. Silence.
  2. Silence.
  3. Silence.
  4. A flat keyboard + any number of gadgets wanted by the programmer (and this varies).
  5. Own office.
  6. Freedom from ridiculous inquiries by non-tech staff, including some clueless (technology-wise) CEOs.
  7. Access to educational resources, like books.
  8. Headphones and a large share with selection of great music.
  9. Free food is appreciated, though not necessarily a major plus.
  10. Ability to work with cool technologies, whether it's just the cutting edge release of a framework, or implementing a fuzzy controller for sorting numbers (I know this is a very dumb example, it's here for illustration purposes).
  11. Silence.
  12. A no-noise environment
  13. Coworkers who do not speak
  14. Call-out-only phone
  15. Quiet working environment.
Vlad Gudim
  • 1,215
  • 2
  • 13
  • 16
Jas
  • 6,323
  • 51
    You forgot to mention silence, but +1 anyway. ;) – Adam Lear Oct 12 '10 at 19:33
  • 3
    @Ann - right, let me stress the importance of silence :D – Jas Oct 12 '10 at 19:47
  • 6
    How about a trap door that is keyed to activate by voice recognition of the words "Do you have a sec?" – JohnFx Oct 13 '10 at 04:32
  • 6
    @JohnFx, how about a trap door activated by human voice alone? :D – Jas Oct 13 '10 at 10:18
  • In a pinch, the headphones alone will work in lieu of silence. – ErikE Oct 14 '10 at 00:28
  • 1
    I have 10 sales agents on the phone 8 hours a day behind me. No level of headphone will save me. – Incognito Oct 14 '10 at 15:35
  • If the political winds coming out of the PHBs prevent "mere programmers" from having solitary quiet offices, then Cubes with the tallest possible walls is the next-best thing. – BryanH Oct 14 '10 at 23:35
  • 2
    Add in "No phone" or "Call-out-only phone" - I use it to participate in conference calls, but if someone needs to call me, they're wasting my time. – BryanH Oct 14 '10 at 23:36
  • @BryanH - added. – Jas Oct 15 '10 at 00:48
  • 5
    I like a noisy chaotic environment. Silence makes me want to kill myself I know I'm on my own on this one. – rerun Oct 16 '10 at 02:09
  • Definately the books. and a shelf to keep them on. – Michael K Nov 01 '10 at 19:46
  • What is a "flat keyboard"? – Ricket Dec 17 '10 at 01:35
  • @Ricket - it's a keyboard whose hight of keys resembles the one on a notebook, and for me as a programmer it's much easier to get things done on flat keyb rather than the one with "high" keys. – Jas Dec 17 '10 at 08:18
  • Oh gotcha, hmm I also don't know a better name for it than that. The keys use the scissor-switch mechanism but I don't think it would be called a scissor keyboard. :) In any case I agree with you, I like laptop keyboards better too. – Ricket Dec 17 '10 at 15:08
  • @Jas and I am in the opposing camp. Flat keyboards aren't healthy for my fingers. I thought I loved flatties until I tried a mechanical "high" profile kb. – mike3996 Jan 09 '11 at 12:55
66

Latest generation hardware, such as solid-state drives.

  • Make sure you buy a good one... it's easy for budgetary concerns to lead to cheapo SSDs which have worse write performance than a regular hard drive. – TM. Oct 12 '10 at 16:44
  • Current/latest hardware is a plus but I do not see the justification in an SSD. Most of my work is done in development environments on servers in the racks so my PC sees more network usage that local IO. Care to elaborate on what an SSD yields ? – Chris Oct 12 '10 at 16:52
  • 50
  • Borrow an SSD to a friend. 2. Install it in your current computer. 3. Open the current project you are working on. 4. Build it. 5. Tell your friend you are sorry but someone stole your the SSD in the street.
  • –  Oct 12 '10 at 16:56
  • For development work is it such a good deal? I know for high IO stuff yes but development? But its nice to have – Jiew Meng Oct 13 '10 at 08:56
  • 1
    Yes, it will change your life. Believe me. I was suspiscious myself before I saw the results. –  Oct 13 '10 at 09:02
  • @Pierre 303 : What's the difference between normal HDs and SSDs if you're not just looking at the performance? What results did you get? – JFW Oct 13 '10 at 15:58
  • 4
    From 2 times to 4 times faster for disk intensive operations such as building a project. –  Oct 13 '10 at 16:18
  • 1
    An alternative is a very fast Raptor drive. – invert Oct 15 '10 at 12:59
  • @JFW: If you leave the (awesome) performance aside, then you still have no moving parts in a SSD (less error-prone) and a lower overall temperature. – Bobby Nov 15 '10 at 14:10
  • No. If a developer has latest generation hardware, he will not sufficiently consider use cases with previous generation hardware. The result will be really slow software. – Rob Perkins Jan 15 '11 at 00:19
  • +1 for the hardware bit. Not so sure about SSDs just yet - how's their longevity so far? – LRE Jan 16 '11 at 04:58
  • 2
    Rob Perkins: Your argument hardly makes any sense. Only developers of desktop machines could ever fall for the "fast enough" fallacy, but even if you just consider this special case, it depends on the skills of the developer to get it right. I might argue that a faster machine allows the developer to work faster, so he has more time to tinker with optimizations. – user281377 Mar 10 '11 at 19:10
  • @Pierre: Building a project is not disk insensitive. Maybe you noticed that your CPU spikes at 100%; this means it's CPU intensive. – Andreas Bonini May 25 '11 at 14:50
  • @Kop: not on my system –  May 25 '11 at 14:58
  • @Pierre: out of curiosity, what language? I program in C++. – Andreas Bonini May 25 '11 at 15:08
  • @Kop: Visual Studio C# and the hard drive was clearly the bottle neck. I understand this may not be the solution to all building problem. –  May 25 '11 at 15:18