share
Stack OverflowPerks for new programmers
[+247] [138] Autobyte
[2008-09-18 20:24:23]
[ management hiring work-environment junior-programmer ]
[ http://stackoverflow.com/questions/96501] [DELETED]

I intend on hiring 2-3 junior programmers right out of college. Aside from cash, what is the most important perk for a young programmer? Is it games at work? I want to be creative... I want some good ideas

It seems that nobody atachs to what you asked "junior programmers", they all talk about what they want. - Lucas S.
Why would you hire junior programmers when you can get programmers with real world experience for the same price and perks? - Sparr
Junior Programmers a less fussy and more hungry - besides why not? Also the town where I want to do this has a good college but no good jobs for the excellent graduates that want to stay in the area. - Autobyte
(2) "what be creative", I was going to edit that, but I have no idea whet you were going for there. - James McMahon
(2) Shouldn't this be tagged subjective? I'd personally do away with "perks". What purpose would a "perks" tag have? - Daniel C. Sobral
This really isn't anything different for young or older programmers, or even non-programmers. Having a nice work environment with good benefits is a must have for anyone. What you are really asking is "How can I make my employees happy and want to come to work every day?" - Chris Pietschmann
(1) Why would this be tagged subjective? There are techniques that work and some that don't backed by research and measured against strict criteria. That's objective. - Anthony Mastrean
(3) This is about PROGRAMMERS, not PROGRAMMING. Thus, off-topic altogether. - bmargulies
[+520] [2008-09-18 20:41:49] Max Cantor

In my experience, good programmers want to program with as few distractions as possible. Some of these are more relevant to big companies, and I'm not sure where you work, but here are some examples:

  • Casual dress code: Young programmers in particular will have a tough time avoiding resentment of a strict dress code. "I'm just going to sit at my desk all day--why do I need to wear slacks/polos/other uncomfortable business clothes?" In my opinion, this is half rebellion and half honest productivity-seeking: It really is much easier to program in jeans and a t-shirt than slacks and a formal button-down. The question you probably need to ask yourself is if the potential productivity gain and morale boost is worth the potential loss of "professional" atmosphere. It all depends on your situation... there are startups and Fortune 500 companies out there which allow jeans & t-shirts.
  • Few meetings: Almost nothing is more distracting than a constant stream of meetings. Try to avoid team-wide "status meetings" that could be carried out via individual e-mails or conversations. Programmers like it when their employer lets them program.
  • Experienced coworkers: Good programmers want to improve. If any of your other employees have contributed to big open source projects, or have worked individually on some particularly successful internal projects, let your prospectives know!
  • Private offices: This is rarely practical anywhere but venture-capitalized startups, but if you can offer candidates their own offices, they'll leave the interview with hearts in their eyes. Programming is so much easier when you aren't distracted by foot traffic and people singing happy-birthday one cube over.
  • Cool stuff: If you can afford it, subsidize games for lunch breaks and post-work hang out sessions.
  • Best practices: This will ensnare good programmers and intimidate less experienced ones: Show that your candidates will be working with reliable, sane version control, and that there are coding standards about unit tests or inheritance or anything. Organization is important.
  • Don't nickel-and-dime: If you can be flexible with hours, do it! No one likes having to clock out every time they go to the restroom; it feels like you're not being valued as an employee.
  • Dual monitors: Instant win for almost any programmer who's worked with dual monitors before.

+1 for that. I started in my current job a year ago straight out of University. It ticks all those boxes except the "Private Offices" one, and that's actually my biggest gripe; open plan offices are really distracting! Oh, and give them plenty of opportunities for further training. - alastairs
The job I got just 6 months after graduating ticks every box but private offices, too. I was really worried about getting a crappy tech job, but I've been blessed with a pretty good one. Lucky! - Max Cantor
Most of these points generally go down well with experienced programmers too. - Dan Harper
(5) I'd say mentoring would be right up there, though that goes with the experienced programmers bit. - Daemin
Yeah man - you hit it right on the mark. - user13276
(5) A good PC, ideally with fast hard disks. No point having them watching a spinning cursor and letting their attention wander. For a small cost you'll be keeping them working without them even knowing you did it! Besides, most of us like shiny new toys! - Ray Hayes
(7) A good PC makes a big difference. Nobody likes to work with only 1GB of RAM... :( - apandit
VC funded start-ups are the worst in terms of individual offices. The typical mode of operation is to cram as many programmers as they can hire into one room, and let them fight it out. - hoyhoy
(1) "There are startups and Fortune 500 companies out there which allow jeans & t-shirts." Too true. Microsoft's dress code is beyond casual: most developers wear shorts during the summer, and Seattle is very much a sandals culture, too. - Brad Wilson
(1) Disagree with private offices. I work in a dev pod with 8 developers in an open concept and I love it! I love the freedom to turn just ask and be asked as we go instead of emailing or getting up. - singpolyma
(1) +1 Excellent list. The best things are perhaps "Experienced Coworkers" and "Casual Dress Code". I would know, I fell for at least 3 positions for just those reasons. Man I miss wearing jeans to work everyday and free lunch Tuesday's! - Abyss Knight
(40) +1 for dual monitors - alex
(38) +1 for casual dress code - Tanmoy
(1) I can think of a time where I would've +1'd a comment for dual monitors, but I have 3 on my desk and I struggle with only 2 now... - BenAlabaster
(2) I must have been really lucky with my first job right out of university. I got every single one of those perks plus a quad-core PC. I'm a web developer, why do I need a quad-core PC? Who cares...? Good benefits were also important to me. I've been out of college for 8 months. - KyleFarris
+1 on all but the dual-wielding-monitors. I used to have 2 24" widescreen monitors, + a 15" laptop screen. I've found its much more productive to have one large (30") display instead; that big line between the displays bothered me :). - Elliot Kroo
(1) I'm only finished my first year of University and after a couple of months working at a job where I've had 2 widescreen monitors plus a 3rd hooked up to a laptop, I really can't work with 1 screen anymore. It's just a lot easier to do stuff when you can have your code in one screen and have your results + Error logs etc. in another. - Sector Corrupt
(1) +1 for dual screens. Even better three screens. Good quality too and at least 22". - Cruachan
An awesome machine to drive the dual monitors. - Mark Thalman
You only need one screen to look at SO - Egg
(1) Definitely the "few meetings" thing. Two jobs ago I worked at the meetingest company I'd ever seen; people seemed to think that meetings counted as work. Knowing your programmers' status is important, so (a) give them an easy way to update it, and (b) don't EVER punish them for it. If people are going slowly, see if they need help or have questions; don't make them stay late to finish, and don't berate them, whether publicly or privately. If we programmers get punished for giving an honest status, what we learn is not to be honest anymore. - Kyralessa
(1) +1 for dress code as well and dual monitors! And no clock in/out BS! Great list :) I'm glad I could come into work with flip flops, a Hawaiian t-shirt and a blue Mohawk if I wanted too ;) - Leon
I don't agree with the few meetings point. Too many pointless meetings are a pain, but I've worked at a company that existed on the minimum possible number of meetings. These we're mainly ad-hock, and it just didn't work. Regular team meetings are important in my opinion. - UpTheCreek
nice! +1 for everything! The meetings can bee good though, perhaps on a weekly basis - Kenny Cason
1
[+182] [2008-09-19 03:23:44] minty

A quality chair aeron chair


My company had a building constructed recently. We moved in several months ago. One of the features was smaller cubicals. I didn't mind too much because they gave me one of these chairs. - CrashCodes
I need a better chair... - Brian Kim
(22) Has anyone out there noticed how it's next to impossible to crack off a silent one when sitting on an Aeron? - ConcernedOfTunbridgeWells
@NXC, it's ok, nothing matters when you're sitting in an Aeron.. that's one part of my job I'm looking forward to when I go home for winter break. - dancavallaro
(4) @NXC: +1 dietary fiber. - John Dunagan
(2) I have one of these chairs at home, and it was worth every penny. (Which is a good thing, because it cost about 100,000 pennies.) - Kyralessa
Never tried those... Seems one would want padding... - tsilb
That's the exact chair I have :D It's very comfortable. - Alex
One more extremely happy aeron owner here :) - Ali
I find that I slide down those chairs and next thing I know my shoulder blades are resting on the seat. The fabric is really slick. - Cj Anderson
@Alex - looks exactly like my chair as well !!! extremely comfortable and adjustable in many ways ! love it - Scott Vercuski
My exact chair, i just googled Aeron, good god these are expensive, there must be several million pounds worth of Aeron where i work, :O - Paul Creasey
Agree a good chair is important, but man, Aerons are completely overpriced and overated. - UpTheCreek
(1) A good chair is vital for health. Maybe it doesn't need to be an Aeron, but a bad chair will put you in pain and destroy your life. It's also quite possible that an employer not providing a decent chair would face future lawsuits for harming their workers. - Donal Fellows
Aren't arm rests bad for ergonomics, because they don't allow you to sit close to your desk? Assuming you can afford a desk once you've bought the chair ... - Andrew Grimm
2
[+162] [2008-09-18 20:50:30] CrashCodes
  • Admin rights to their PCs
  • An internet connection that's not gimped by bizzaro proxy rules
  • Dual Monitors
  • Work from home privileges
  • A soda fountain (not a drinking fountain that dispenses soda instead of water ala Brawndo [1], but like you'd use at the Taco Bell to refill your drink)

    soda fountain

[1] http://www.brawndo.com/

(10) What's wrong with Brawndo? It's got what plants crave. - toast
(1) Yeah, but not a soda fountain with a price tag on it, for crying out loud! - skiphoppy
(1) ELECTROLYTES!!!!! - Jeff Atwood
(13) Great point on Admin rights - would have never thought of that! Nothing more crippling than not being able to install productivity tools... - agartzke
Yes...Admin rights... its like...water...we need admin rights... and a local login... heck...we want a toolset if we ever have to rip our desktops/laptops apart... - anbanm
Admin rights. It's got what developers crave. - Ryan Thames
I looked into a postmix machine for our developers once. It was expensive and required regular cleaning; you needed to be mixing thousands of drinks per week to justify the cost. :-( No sale. - Oddthinking
(48) Free Coke might seem like a good perk - but it's not doing your staff any favours in the health department. Healthy brains are more productive brains! - slim
(11) admin rights - this seems so basic that I'd question the sense of companies that deny it - I'd assume that either the staff was mostly incompetent or that the management was paranoid - But this is like demanding that chairs be clean - if you've got to ask for this you've got bigger problems. - Steve B.
+1 good internet connection - user45947
(6) I'd agree with free healthy drinks, like orange juice, and a selection of herbal teas, but not easily accessible junk. - Andrei Taranchenko
I once worked at a place with free fountain sodas, candy, and granola bars. I'm not sure they were sending the right message. Sugar lows and weight gain don't help, either. - spoulson
(2) Bah, free drinks is great. If the health nuts don't want soda, nobody's making them drink it. - tsilb
(1) @Andrei: Orange Juice is basically Coke with vitamins. The only healthy drink is water. - Bartek Tatkowski
Admin rights are essential. I didn't have admin rights on my desktop for the last two months but it was largely a moot point since when I needed them, I had root access to a netbook (.. though this meant I was running apache off a netbook.. sort of slowed down my CGI), but my work gave me access to Sudo the second I mentioned it anyway.. - Sector Corrupt
Why a soda fountain? Just find out what drinks they like and buy cans. They're easily recyclable, and a decent amount to drink, and people can choose diet or sugary sodas as they like. Also buy some of those 12-can holders where you put lukewarm sodas at the top and get chilled ones from the bottom. - Kyralessa
@toast: Now with more MOLECULES! - DR
3
[+146] [2008-09-18 20:25:50] schwerwolf

The opportunity to work alongside experienced programmers.


Having a good mentor is very important for jr developers. - Forgotten Semicolon
+1 Definitely - I wouldn't say it's just important for jr devs either. I find it invaluable being able to bounce ideas off other experienced programmers - even of the same callibre. Even if it's just so they can tell me I'm being retarded. - BenAlabaster
+1 - This is useful for getting a feel for the environment. How do other developers work here so that I can fit in well? - JB King
4
[+123] [2008-09-18 20:26:39] Ryan Farley

I always love going to conferences and training and consider that a perk. Not all companies pay to have their devs continue to learn. There's always more to learn. You benefit because they are learning more. They benefit from that too, but also have fun and get away from things for a couple of days and get to mingle with other devs.


To be honest, I consider it more of a right. - TraumaPony
You're both right, and I could not agree more with either of you. - John Dunagan
5
[+79] [2008-09-18 20:33:44] shadit
  • Give them each a budget and let them configure their own computer setup. Make them submit a plan for what they intend to purchase. Talk over the plan with them. It will be a great way to kick things off.

  • Give them a budget for a cell phone and unlimited plan that the company will pay for.

  • Pay for their home Internet service.

Little things like these they will show their friends to the response of, "Cool - I wish my company did that!"


Too bad I never convinced anyone to go for point one.... ;-) - Bob Cross
Cell phone is pointless if they don't have t ouse it for the job. But work @ home privileges with internet paid would be nice. - pmlarocque
(49) I don't want Internet paid for. Then they could claim everything I did anywhere on the Internet was company property. Screw that. - jmucchiello
(10) I also wouldn't want a company to pay for my internet access. They might feel like they have a right to decide what company/plan I subscribe to, and what I can do with it. - Joshua Carmody
+1 - I used to get my internet paid for by one employer many moons ago. Now my static IP costs me a fortune. In this economy I'd never get my employer to go for it... - BenAlabaster
Some people see the downside to anything... I think paying for home internet service is one of the coolest ideas ever. If my company did that, I wold probably tell everyone I met. - Daniel Straight
(6) Just pay me more and let me choose. Then I can decide the provider and services I want as well as not risk the company trying to claim rights to code I wrote on my own hardware, at home, on my own time. - Matthew Whited
6
[+74] [2008-09-19 04:51:28] Matt J

The type of people you'd like to hire tends to be a first-order concern when deciding what sort of perks to offer. For the programmer who's thinking about or in the process of raising a family, paternity leave, company matching of adoption funds up to $X/year, flexible vacation and working hours, and a sense of job security may be much more attractive than a soda machine and free Segways for all. You mention that you're looking for "junior" or "young" programmers, but many young folks do still fall into this category.

I sense, however, that by "young", you might mean "too young to be into that whole 'work-life balance' thing". Let's call this 'The Google Strategy'. The idea here is to make it so it just doesn't make sense to their analytical minds to ever leave work. Have on-site services like free food, drink, and laundry, provide gathering places for informal conversations. Make them feel like they're the rock stars of the company, and they'll repay you with long hours and hard work. The good news for you is that these types of perks don't cost you much at all relative to the increased hours they'll be willing to put in. The bad news is that this model tends not to be sustainable, and this dot-com era "irrational exuberance" no longer satisfies your programmers when they start to want to take vacations, get married and go on a long honeymoon, have kids, and so forth. At that point, they want flexibility, more vacation time, a 401k, etc. Besides the first one, these all cost significant coin.

Here's the most important point though: if you'd like to hire the absolute brightest people you can find, don't try to outsmart them. Odds are, the really sharp ones will be a little less interested in the size of the Free Red Bull Fridge and the number of air hockey tables at their disposal, than whether you'll value them as an asset to the company and as an individual (both in terms of compensation and employer/employee relations in general), whether you have a sustainable business model/plan, whether your work really excites them, and whether your work really excites you. I'd suggest reading a couple essays on Joel On Software [1], he treats the subject of hiring good programmers in a fair amount of detail ("Smart, and Gets Things Done", I think, is the name of one of the essays).

While your question certainly isn't without merit, and providing a work environment with some of the same perks as your competitors will make your sales pitch somewhat easier, the only people that will be truly swayed by these kinds of things are not the people you want the success of your small company to depend on. Good developers want to feel like they're making a contribution to something that matters, like their skills are valued and put to good use, like they are responsible to their peers and to themselves. Focus on having a truly great, dynamic company that does great work, and that treats its technical people with respect (things like private offices help here, too), and you'll really attract the type of people you're looking for.

(Thanks to Thomas Kammeyer for a tip on the last paragraph!)

[1] http://www.joelonsoftware.com

@Matt J - this is spot on. The me generation mentality of "what can you give me because I deserve it" really needs to go away. Those of the me generation that you describe in your last paragraph will the successful ones in the long term. - Metro Smurf
Paternity leave? Not all programmers are male, young or otherwise. - kajaco
(1) You're absolutely right. However, for what I consider to be at least a slight majority at this time (unfortunately), it's a nontraditional benefit worth looking into. I advocate treating people of any gender, race, age, etc. equitably, and this is one way to do that. - Matt J
(5) This is the best answer I've seen here... one thing possibly to add: making them feel as if they are making a definite, positive contribution to the work that's got everyone so excited. People don't want to feel important so much as needed. Lean into intrinsic motivators. - Thomas Kammeyer
Actually, Joel expanded the Smart, and Gets Things Done essay into an entire book: amazon.com/Smart-Gets-Things-Done-Technical/dp/1590598385 - John C
7
[+67] [2008-09-18 20:26:56] moffdub

Two flat-screen monitors, an optical mouse -- two things I don't currently have -- and each their own whiteboard with a few markers.


(17) You're using a ball mouse? What is this? 1998? - shoosh
(14) Jeff Atwood suggests that a keyboard and mouse are basic tools you should own yourself: codinghorror.com/blog/archives/000666.html (see point three) - Aydsman
Yes Aydsman, it would be nice if they provided me with an optical mouse, but I should probably bring my own. But, I did bring in my own whiteboard markers. :) - moffdub
yeah all workplace lack of whiteboard. - pmlarocque
(1) I brought in my own mouse because the supplied one only had two buttons and a wheel. I cant believe youre using a ball! - Karl
My workplace had the crappy ball-mouse that dell ships. I honestly thought laser mouses were cheaper to manufacture, but I guess I was wrong. Either that, or Dell is masochistic. I don't mind purchasing a mouse, so I bought one at Fry's - FryGuy
two is no wheres near enough, 4 minimum - Greg Dean
I can not work with 2 monitors, hurts my neck always looking left, right, left, right. I use virtual desktops (Linux). - pi
+1 I wish I had a whiteboard, I've got a cordless laser mouse which is great - even if it is my own. - BenAlabaster
Yeah, the whiteboard in my office is completely filled with notes and tasks I need to complete. Very useful. - KyleFarris
(4) +1 for whiteboards - My Alter Ego
(1) Well integrated virtual desktops on a 24" (or 30") monitor (Linux, Mac OS X) beat dual monitors of a slightly smaller size and no virtual desktop (Windows). I am only ever looking at one monitor at a time, it's just that switching applications in Windows sucks, and XP at work isn't getting upgraded soon. - JeeBee
+1 for the whiteboard suggestion. This is especially useful if you're doing things that face users like UI. - Alex
(1) Our agile coach told us about GE and Apple, who went one step further and painted ALL the walls in the dev space with whiteboard paint! - whybird
8
[+54] [2008-09-18 20:38:41] MarlonRibunal

Being able to work remotely + flexible hours, Tech books give-a-way, and lots of love!


Ditto on the Books - BCS
(1) Ditto on working remotely, but you need to make sure they are "in it".. Prob after a 6-12 month probation period perhaps? I REALLY wish I could work from home, I actually get a lot more done. - Rob Cooper
+1 for the books, I love my books. I probably spend more on books than on my utility bills... - BenAlabaster
@balabaster Books are training materials. So it's a win-win if companies give them away to employees :-) - MarlonRibunal
Books? What century are you living in? - tsilb
@tsilb I don't really get your comment. You may probably want to paraphrase it ;-) - MarlonRibunal
It's 21st century, Doctor. The age of information. - frbry
9
[+50] [2008-09-18 20:29:02] Peter Hilton

Philip Greenspun wrote about this once [1]. He suggested making the office a better place to be than home, which is easier for young programmers. For example, domestic hardware that someone living alone cannot justify: expensive coffee machine, pool table, huge TV with DVDs to watch.

Make the office more sociable: put beer in the fridge and have a drink together at the end of the day. Provide better food (easy for people who can't cook): get deli deliveries or a caterer.

[1] http://philip.greenspun.com/ancient-history/managing-software-engineers

Are you sure beer is safe for any employee? I mean I won't drink my mind and do nasty stuff but how about lil' Joe that you not even know? - Andrei Rinea
(1) We only have 15 employees, and we have tested the beer on nearly all of them. - Peter Hilton
Not being able to justify an expensive coffee machine is a case of flawed priorities. - Arafangion
(6) Isn't beer an insurance liability? I'm from the UK originally, so I'll drink at any opportunity. I can't believe it's frowned upon over here in North America to have a beer over lunch. +1 for the beer! - BenAlabaster
(3) My team meets for a beer (regular or root) in the office once or twice a week for the past eight years, usually for a half hour to an hour. It's always the leaf nodes in the organization - mostly dev and test - and while it's totally informal and relaxed we get a lot of problems hashed out. It helps the new people get comfortable with us. Somebody just has to take the corporate amex card to costco once a month to restock the fridge, and it is well worth it. - fatcat1111
We've got a pub next door to the office, for those after-work beers. Oddly enough people prefer to go home to their partners, playstations and comfy sofas still! - JeeBee
JeeBee - that's because pubs need sofas too - hilton.org.uk/why_sofas.phtml - Peter Hilton
Here in Australia almost every company supplies beer (among other drinks) for free after 4pm on a Friday, common in Japan too. - Matthew Lock
Oh the joys of continental Europe - any excuse for an aperitif 8) Makes the whole week better when you can have a few drinks and a laugh with your colleagues. - Reuben Mallaby
10
[+45] [2008-09-19 19:20:43] JohnMcG

A boss who would ask this question.


11
[+43] [2008-09-18 20:36:53] ugasoft

give them responsibilities and some degree of freedom.

make them feel like they are developing something for themselves, with passion


I second this, some feeling of excitement and getting personal benefit from the work goes a long way towards keeping new people within the company. - jjrv
12
[+41] [2008-09-18 20:44:03] pdavis

Casual dress (for voting)


13
[+39] [2008-09-18 20:43:26] pdavis

Work from home. (for voting)


14
[+38] [2008-09-18 20:44:58] pdavis

Private offices (for voting)


for voting make it community please - John Nolan
downvote: good development needs teamwork. Private offices counter teamwork. Hell, even tall cube partitions counter teamwork. - slim
Developers need to communicate their work. Should sit together not privately. Downvoted for that reason. - Hace
(3) You can communicate even if you're in different rooms. - Sasha
(2) I find that an office full of developers is great, but being one of just a couple of developers in an office full of other random people is a constantly distracting pain in the a$$. So +1 for private offices, and +1 for open plan offices dedicated to developers. -1 for general open plan offices. - BenAlabaster
(2) @slim: Disagree. You can collaborate via umpteen desktop sharing and conferencing tools. Add video if you really want to. Devs only benefit from proximity when working on the same work unit; and are often tasked to things too small for two people, so they become a distraction. - tsilb
Being able to turn around to chat to another developer is priceless, and you can see if they're busy and not disturb them. I think large team offices are better (3 - 5 people per room). Open plan offices do suck, too much noise from too many people. - JeeBee
15
[+32] [2008-09-18 20:26:48] Aaron

be flexible about the starting hour.


(8) I can't count the amount of clients that have complained at me that I don't get in early enough when I stroll in at 10am instead of 7:30am like other departments. Why don't they understand that programmers are nocturnal? - BenAlabaster
(4) Yeah, this is priceless for me. I can avoid the rush hour commute, which on London's tube system is quite painful, especially in summer. - JeeBee
Another vote from me, as with JeeBee this is very useful for working in London but it does rely on a certain amount of trust. - Chris Cameron-Mills
I cannot upvote this enough.. - Andrei Rinea
16
[+29] [2008-09-18 20:40:02] Nazadus

I'm currently slightly experienced but I still call myself junior. Here is what I appreciate of my employer:

  • Buys me books. I have a diverse taste from C# to perl to C to Asm to database design to tsql etc. Book prices vary from $20 to $50. This usually requires a PO and approval and such.
  • Allows me to critique current projects. I've re-written a few project to be MUCH cleaner through the experience I gain. Each time I document why I made those changes. Every now and then I re-write my re-writes. It's amazing to see how much you change. I do this one on my own. I initiated it.
  • A fast computer and a 24" monitor. This actually helps a lot, but for any developer. Less frustration and more code on the screen. Monitor also rotates for those kinds of days.

I think 24" monitors are waste unless you have to edit large images; for development work its more cost-effective to get lots of cheap 19" monitors. I have 4x19"s in portrait mode, gives me a 4096x1280 desktop. - Matt Howells
I'm not sure if you are right Matt because you will end up buying more or more expensive video cards as a result. - minty
Why have multiple monitors when you can just have one huge one with multiple windows on it. Editing large images? I can fit 3 browser windows on my monitor... Or 2 browsers and a text editor. Or... more commonly. A terminal, a browser, a text editor and an email client. - rfunduk
(1) I have to admit, even though I have 3 x 19" monitors on my desk which I love, my last client gave me 2 x 30" monitors. I do miss being able to have my solution explorer, properties window and toolbox windows open and still be able to read my code without having to scroll right... - BenAlabaster
(2) Totally agree. Editing code on a vertically tilted monitor is addictive, even though weird at first. - Andrei Taranchenko
17
[+25] [2008-09-18 21:44:16] Dipak Patel

I'm surprised the cynics amongst us haven't said 'non brain-dead leadership'!

Attracting young people with toys is a bit patronising, better to say:

"Yeah so we could offer you lots of new shiny toys, but how about we guarantee you no PHBs instead?"

;-)


Does 'non brain-dead leadership' actually exist?? :-) - Jonathan Webb
Yeah. Let's keep this realistic! :) - Zack Peterson
(4) If you actually tell them at the interview that you don't have brain dead leadership, they'd probably not believe you - if they do they're insufficiently cyncical to survive and you don't want them ;) Better to demonstrate your quality leadership by not having stupid policies like dress codes. - Mark Baker
(4) Attracting programmers with toys might be patronizing, but when you've got all the toys sitting on your desk, who cares? :P - BenAlabaster
18
[+24] [2008-12-18 02:19:46] WOPR

Matthew 7:12

Therefore all things whatsoever ye would that men should do to you, do ye even so to them: for this is the law and the prophets.

Mohammed

The most righteous of men is the one who is glad that men should have what is pleasing to himself, and who dislikes for them what is for him disagreeable

Confucius - Analects XV.24

Never impose on others what you would not choose for yourself.


(9) Scripture in StackOverflow? I'm impressed! +1 - MrValdez
(1) Romanian proverb : Ce tie nu-ti place, altuia nu-i face (What you don't like don't do to another) - Andrei Rinea
(3) Golden Rule: Do unto others as you would have others do unto you. - Sixty4Bit
19
[+23] [2008-09-18 21:16:10] Gilles

Invite your whole team to the restaurant of their choice every Friday for lunch. A former boss of mine used to do just that and it really helped team bonding.

If budget doesn't allow it, you can do it once every two weeks or once a month. But think of the value of having closer team members.


We doe Thursday at my work. - BCS
Then you're missing the very catchy name "free food friday" :) - Gilles
(7) Twelve o'clock Tuesday Tasty Tacos 'n Team Talk? - Zack Peterson
@Gilles "Free food fursday" works - Matthew Lock
20
[+22] [2008-09-19 14:13:45] Dana

A career path. Not that they necessarily have to follow it, but give them the thought that they don't have to be a junior forever, and show them that there are opportunities in the company. Give them an idea of what it takes to advance.


Its very motivating to have examples of the kind of developer you want to become, and some guidance/structure on how to get there. - Nader Shirazie
Wouldn't attract a starting junior; they tend to consider having a job at all to be their career path. OTOH, for anyone after their first job, career path is definitely the big attractor (or they'll be someone that you can't retain anyway.) - Donal Fellows
21
[+21] [2008-09-19 12:49:05] Dana

Programmers need vacation. Lots of it. Four weeks a year to start. Minimum.


In Norway most programmers have 5, and some even 6 weeks. 4 is the minimum required by law. - Espo
In Australia, 4 weeks is the minumum. After 10 years (!) you get 13 weeks 'long service' leave - paid. - CAD bloke
Sweden you usually have 5 weeks and paid overtime or 6 weeks and no paid overtime - superwiren
Similar in Germany - DR
(1) 4 weeks - 20 days, that's the bare minimum required by law in the UK (bank holidays are extra, so 28 days of holiday for a 5 day week). Most professionals get more holidays - 25 days + bank holidays is typical, 30 days quite common once you've got experience. The productivity benefits are high, with well rested, non-resentful employees. - JeeBee
(5) This is the #1 thing I hate about being an American. :( Companies here think they're insanely generous if they give you three weeks. - Kyralessa
@Kyraleesa I hear that. I used to work at a place that gave you 2 and acted like you were lazy if you used it all. They wouldn't roll it over to the following year, and they would even have 'blackout' dates in november and december because they knew IN ADVANCE that they would mismanage things to the point of being way behind. I'm constantly tempted to move to Europe. - LoveMeSomeCode
22
[+21] [2008-09-18 20:30:05] BCS

Good hardware: I'd be very interested if I was told that I would get a desktop system (WinXP is still my system of choice) and a Linux server box. Something I have root on and can run services on (local at a minimum, world visible would be nice.) A Virtual private server [1] in the company data center instead of dedicated hardware would also work.

Another thing that would be nice would be access to good references: "We will buy you any books that are apropos to your job!" same with software to some point, "if it's under $60, we will just get it."

Edit: large screenS on pivot stands, good chairs, white boards, etc.

[1] http://en.wikipedia.org/wiki/Virtual%5Fprivate%5Fserver

You can use Virtual Box or similar for running a test server system. This gives you the option to have lots of differently-configured (in terms of software) test systems, but only need one physical system. - rjmunro
The XP box is because I like the XP GUI (and lots of XP GUI apps) and the linux box because I like the *nux command line and environment. I'd go for a VM slice as long as it's big enough to do real processing on (like run my own MySQL server on). - BCS
clarification; nether the Linux nor the XP box would be a test system. They would both be dev systems. - BCS
23
[+20] [2008-09-18 20:39:13] BCS

Lets them, on company time, do some private projects (things that could be useful for the company, but things they get to pick)


(1) I write software all the time that assists me to get my job done rather than directly writing the actual apps... is this what you're talking about? For instance, I'm frequently asked to do things that would take me hours if I didn't spend time automating it. - BenAlabaster
(1) No, I'm thinking of "hobby" projects. - BCS
(2) Google does this IIRC - Alex Bagnolini
24
[+19] [2008-09-18 21:05:02] Brian MacKay

Actually, Joel Spolsky has a really good article on this subject that I refer to from time to time:

Joel on Attracting Developers [1]

EDIT: I read Joel's book on hiring devs, Smart and Gets Things Done. In the book, he says that this article is an embarassing bubble-era relic and he has learned a lot since then. I don't think the blog post is all bad, but it's true that the book is a lot more sophisticated.

[1] http://www.joelonsoftware.com/articles/fog0000000050.html

you didn't notice most of this advice so far stems directly from Joel's blog? - Mark Lubin
It needed saying, though. Asked and answered, if you will. - John Dunagan
25
[+18] [2008-09-18 23:49:49] Zan Lynx

This is a sort of negative answer.

Don't give the office more entertainment than home. No TV, video games or beer. The office is for work and that is why I go to the office. I go home for video games and TV.

Don't bother with team outings. It's not relaxing. It's just more work. If I wanted to go somewhere to have fun, I'd go there with my own family or friends. Or I would stay home and sleep late. No doubt some people believe everyone else in the office wants to be friends and spend all their time hanging out. It isn't true. Sorry.

The same is true about company meals. I like to go out and away from the office for lunch and dinner. If there is a lunch meeting at the office, I will be making plans to leave work an hour early (with exceptions for crunch time, which had better not last more than a month or two out of each year.)


Its not negative. - Optimal Solutions
Yeah, this answer is very good. :| - Andrei Rinea
You didn't go as far as saying a certain level of smart dress is better than totally casual and scruffy, as it's a mental reminder that you're not at home dozing on the sofa. But yes, +1 for injecting some reality. - JeeBee
Agree with you on organised team-outings, I find those draining. But having good amenities at work (even if it's just a decent kitchen/lounge are with no games) does provide a better environment for you to at least get to know your co-workers a bit better. - Esti
Schedule outings that are manditory. Those are fun: i.e. whitewater rafting - monksy
"No doubt some people believe everyone else in the office wants to be friends and spend all their time hanging out. It isn't true. Sorry." +1 for this. Colleagues are colleagues. Managers exaggerate on "corporate frienships". "I really think he is a geek. We work together, however then we part ways. I don't want to hang out with him." - Kawu
26
[+17] [2008-09-18 20:34:00] brian

Treat them as peers


I cant stand the "well hes just a level one" comments. If my ideas are wrong or dont work tell me why and educate me, dont belittle me - Adam Lerman
27
[+14] [2008-09-18 20:32:10] Charles Graham

The access to training and mentors. The things that Junior developers want is pretty much what every programmer that I know wants. They want to work in a relaxed and flexible environment with people who are at least as smart as them if not smarter. They want to feel like they are a part of something. They want to constantly be learning.

Make sure that you have a training/book budget. Make sure that they are always learning and always have something interesting to work on. Make sure that you do team building or some kind of thing like that on a fairly regular bases. Lunch and learns are an increasingly popular tool these days.

One thing that Junior Developers might like more than more Senior developers is the use of cutting edge or even bleeding edge technology. Be careful about this one, cause it can byte you in the butt, but it always helps.


28
[+14] [2008-09-18 21:24:57] Brian Kim
  • Casual dress code and office environment
  • Flexible hours
  • Allow listening to music while working (earphones allowed)
  • Multi-monitor/powerful workstations
  • Skilled/experienced co-workers/bosses
  • Code reviews done by those co-workers/bosses
  • Being able to work on creative projects that they come up with, and having them reviewed by those skilled co-workers/bosses (Most valuable perk!)

(1) What? There are places that don't allow listening to music? Woah. - Ted Percival
Oh yes, there sure are. Spent 3 days in one, never again! - pzycoman
Ouch, 3 days without my music... if someone had said "no music/headphones to me", I'd have been out the door. You hire me for my talent, education, insight etc. As long as I'm meeting/beating my goals/objectives/deadlines/budgets, how I get there is not up for debate. - BenAlabaster
That's indeed shocking. What company was that? There should be a blacklist. - Frank
29
[+11] [2008-09-18 21:06:23] benPearce

My company has purchased an O'Reilly Safari [1] Online account for each of our developers. I have access to thousands of books online at any time.

We also have training videos available at online from CBT Nuggets [2] but I find their content limited.

Also, some productivity tools, for Visual Studio, such as CodeRush/Refactor Pro [3] or Resharper [4]

Quality Coffee in-house.

[1] http://safari.oreilly.com/
[2] http://www.cbtnuggets.com/
[3] http://www.devexpress.com/
[4] http://www.jetbrains.com/resharper/

my company has recently purchased all the devs pluralsight subscriptions. the content is excellent - benPearce
30
[+11] [2008-09-19 20:57:29] community_owned

Perks?

  1. Mentors: Single greatest asset i was given. Someone who showed me the ropes, listened to me, took me aside when i messed up, explain why (not how) things were done. Someone who had knowledge of the product (not a HR/PR person), or could distill something in ten minutes or less. Sometimes new people are afraid to ask questions.

  2. Goals & Salary: When your programmers start, have them write down three goals they'd like to achieve in three months. They don't need to be "climb mount Everest", "write a compiler" type goals. But They must measurable. It's a great tool to find motivated people.

  3. Fitness Bonus Where i work, if you can accumulate 500+ km in one year biking to work, the company will write you a check for $500, just like that. It's great way to encourage this whole "being green" thing and helps relieve stress and saves money.

  4. The Best Tools Provide programmers with the best tools. I can't tell you how much resentment I felt was I was told that VS2003 was too expensive, but all the sales staff had blackberries. It made me feel undervalued and i eventually quit.

  5. Perk time Allow your coders 20% of there time to work on their own projects. It's a great way to spur ideas, and helps keep people motivated.


31
[+9] [2008-09-18 20:28:46] Lucas S.

The opportunity to work alongside experienced programmers.

And also the possibility of learn from them.


Doesn't one imply the other? - phjr
Could refine this as 'experienced programmers who are able and prepared to share that experience'. - Jonathan Webb
@phjr : Not necessarily. In a good world one would imply the other but sometimes the seniors keep the knowledge all to themselves.. - Andrei Rinea
32
[+7] [2008-09-18 20:27:43] theo

Flexible Schedule

Good PTO Program

Fun & Exciting Technology/Toys

Relaxed Work Atmosphere


A great idea would be to let all your devs design their own workspaces. Different people need different environments to be productive.


33
[+7] [2008-09-18 21:57:37] Yaba

Give them the choice of tools as far as possible. I know it's not always possible, but I guess there is nothing more demotivating than forcing a Linux guy to use Windows, a MAC Guy to use Windows, or a Windows Guy to use Linux.

Of course that's not always possible, but also what about favourite email clients? Some love thunderbird, others outlook and others mutt.


34
[+7] [2008-09-18 22:55:22] Marcel Tjandraatmadja

In my opinion this will be great perks for new programmers. Though it would also be awesome things to have for any programmer. :)

  • Smarter and more experienced developers from whom you can learn from
  • Good software engineering practices that is used throughout the company
  • Exciting projects (though this might just come along after you find that the developer is fit for the job at interview time)
  • A friendly and supportive environment
  • Dual monitors
  • A comfortable chair (since you will be spending most of your day sitting down), and ergonomic keyboard/mouse
  • A programming books library, and the chance to request more books to add to the collection
  • Lunch time or after work gaming sessions
  • Clean kitchen with a decent coffee machine

On top of that there is an extra big plus for passing the Joel Test [1].

I am not too keen myself to give/have an own office. Mostly because lots of programmers are very sociable people, and it would be good to have some interaction during the day. However, that might just be a personal choice.

[1] http://www.joelonsoftware.com/articles/fog0000000043.html

Agreeing with the not own office. More appropriate when you've got people reporting to you. - Swati
35
[+7] [2008-09-21 14:17:40] Niklas Winde

Apart from the hard stuff like offices, tools, gear, food and snack I'd like to add something that makes me feel special:

Let your developers in on decisions!
If you're getting new tools for them, or moving or starting a new project or even hiring new people -let your developers in on those decisions. It's only fair you get a say in who your new coworker is or what the next big thing you are going to work for a few years on.

One way to do this is to conduct meetings in a round table fashion where you specifically ask every attending person for their opinion, not just let them speak up if they wish.


I wish I could up-vote this 1000 times... +1 - BenAlabaster
36
[+7] [2008-09-22 02:05:04] MusiGenesis

I can't get past the fact that new programmers should be paying us until they've learned enough to make themselves useful.

In medieval times, you had to beg and bribe your way into an apprenticeship at a guild, and then you had to haul firewood on your back for 30 years before the Master would even let you look at an anvil.

Overpaying junior programmers makes as much sense as small-market NBA teams drafting high school players. The money gives them an ego which blinds them to their lack of knowledge, and by the time they figure out how to be useful, they declare free agency and they're gone.


lol - I'm reporting you to the programmers union :P It's the union "entitlement" mentality, I've noticed this is getting worse over time. - BenAlabaster
37
[+6] [2008-09-19 01:53:45] j.davies

I think the biggest perk for a new programmer is when they first join the company they have a plan and know exactly what there career "road map" is.

When I first started my current job I was given some interesting work right from the start and I knew exactly what was expected of me. Other fresh graduates were left to school themselves up which ultimately helped them to loose interest in the work completely.

Other gimmicks like a big screen etc are great but they don't make a boring job any better!


38
[+6] [2008-09-18 20:40:20] Mitchel Sellers

There are a number of things that come to mind, and not even for junior people.

  • Training packages for use with conferences, certifications, or something similar. Showing a dedication to future growth in the field
  • Provide flexiable starting times especially to those just getting out of college and not used to working a "day job"
  • if In an environment where they must work from home, help them out a bit there, subsidize internet service, and/or company cell phone. If you must have access to them, giving them a way to do it helps.

39
[+5] [2008-09-18 20:45:59] pdavis

Good hardware (for voting)


As mentioned above community please - John Nolan
40
[+5] [2008-10-27 04:42:01] Jasper Bekkers

These are all personal :-).

  1. Free coffee. I have solved countless problems while waiting for my coffee to finish, or even walking to the coffee vending machine.
  2. Laptops. I don't care about fancy dual monitor setups everyone keeps mentioning because I usually end up working on only one of them anyway. However, having a laptop and being able to work from any part of the company more valuable to me. I can just take my problem with me and it makes it easier for me do demonstrate what is going on to a college.
  3. Smoking area. I smoke, and although I don't smoke that much, it's really nice to actually spend five minutes somewhere else. The most interesting discussions I have with peers are usually while smoking.
  4. Open office. I don't like to sit in an office, by myself, for a prolonged length of time because it makes me feel like a machine. To me, interaction with peers is a huge motivation to go to work.
  5. Whiteboard and artistic people around. If there are any webdesigners, 3d modelers, sound guys or whatever type of artsy people you can find; put them in the same room as the programming / tech guys. This too makes the job seem less mechanical.
  6. No dress code. I'll quit the day someone will try to make me wear a suit. They honestly don't make me feel comfortable, besides that, I probably wouldn't fit in such a formal culture anyway. Besides that, I'm a pierced up coding 'goth' that delivers the best work when I don't have to worry about something other than code. That include clothing.
  7. Learning opportunity. Doesn't matter what, it could be seminars, peer reviews, book, 'research time', anything goes.
  8. If the job requires concurrent programming: a dual core machine at least.
  9. A stash of ritalin, lol.

I don't care about:

  1. Dual monitor setups. As stated previously; they distract me so, I tend to prefer widescreens.
  2. Fast hardware; it hard these days to actually get slow hardware these days.
  3. Gadgets.
  4. Free internet at home, or a cell phone. I already have those.
  5. The editor, IDE or OS I have to use as long as I can figure out how to work with it in an hour or two (it usually takes less time though).
  6. Huge paychecks. Give me a pleasant working environment where I'm happy to be for the biggest part of the week and I'm happier than when I have a huge pile of money stashed away at the bank. Use that cash to improve the office conditions.
  7. Game rooms, guitars, pooltables, foosball or airhockey tables et cetera.

41
[+4] [2008-09-22 03:01:40] prasanna

Being a college student who would go for job in a few short years, I'd say it's definitely

  • Casual dress code

    -- why does my dress matter when I can program good enough?

  • Mentoring -- some older, wiser programmers to guide you. I'd just have been out of college, used to having a professor around the corner or a TA to throw questions at.

  • Friendly/productive atmosphere

    -- I'd like to have people who will discuss codes after their job and not make me go to really stupid meetings that don't get things done.

  • Boss that understands programming

    -- I've been surrounded by all CS people who think in similar ways and understand me. I'd want to have a boss to be similar.

  • Gym/Fitness membership... -- It just helps to vent off pressue of programming..

  • Some resources to work on own projects

    -- I would want to do some of my own things, even after office hours if required.. I'd be glad to use to company resources.

  • Please please, root on my PC.. or admin

    -- I know what I do, please give me rights..


42
[+4] [2009-07-15 11:30:54] Chris S

One of these [1] would get me interested:

alt text

[1] http://google-opensource.blogspot.com/2009/07/making-beautiful-music-together.html

43
[+4] [2008-09-19 22:38:51] Jeremy Cantrell

In my opinion, the best perk a new programmer can have is a good mentor who is extremely knowledgeable and understanding.


44
[+4] [2008-09-19 17:22:27] Joshua Carmody

Be flexible with office hours. If a programmer gets his best work done between 1:00pm and 10:00pm, or he has other classes or some other reason to need flexible hours, why force him to work 9:00-5:00? Naturally you may need programmers in the office at certain times for mentoring/training/code review/important meetings, etc. But most programmers appreciate flexibility where it can be found.


45
[+4] [2008-09-18 20:47:19] skiphoppy

The chance to devote time to learning. Give them the chance to spend longer than expected for a task so that they can pore through books and search across the net to learn the best way to do things. Give them O'Reilly books. Encourage them to spend time reading them. Encourage them to make connections online and become familiar with sites such as this one where they can learn the habit of trying to program well instead of trying to program just to get done.

Yes, that's a perk. For them as well as for you. :)


46
[+4] [2008-09-18 21:12:42] Cade Roux

Good project management - with minimal BS and meetings under control

Good technical mentoring

Book reimbursement, resources, tools

And I take issue with the "aside from cash"

I think cash isn't really ranked up that high unless the environment is so poor - that's why they call it compensation.


When a developer tells me they dont want "just cash", it makes me worry. You can not pay your bills with thank-you's, trophies, hand-shakes, days off, and pats on the back. Last I checked, my grocery, utility company, water company and mortgage company only accepted money. ;) Cash is king. - Optimal Solutions
Cash is important, but ultimately, they will leave a crappy environment, regardless of cash. Most surveys show it is not in the top requirements for job satisfaction. - Cade Roux
47
[+4] [2008-09-19 03:12:39] Bart

Working with people who can explain why they do things the way they do.


48
[+4] [2008-09-18 22:54:20] Prache

There were lots of good suggestions already. I did a quick search on the all the response I can't find these so I'm including these 1. Good health insurance coverage from the employer. 2. Paid time off. it really helps to re-boost employees.


49
[+3] [2008-09-18 21:19:57] Asmor

Speaking as an actual college student (senior), here's some things I'd like:

A degree of direction (tell me what you need done)

A degree of autonomy (trust me to get it done)

I'm probably unusual among my peers in that I prefer professionalism. As a general rule of thumb, I think casual dress would be very helpful, though it wouldn't be a huge issue for me personally.

But really, the big thing is trust, and letting me do what you're paying me to do. If I think I'm going to be stuck attending constant meetings and always worrying about office politics, that's a big strike against you. Competence is also very important... I don't know if I could work for a manager who knew nothing about programming. I understand that it's entirely likely a great manager might not even be as good a programmer as I am, but they should at least know enough to know what's feasible and what's not.

Oh, and probably the biggest thing for me: Long term prospects. I hate job hunting, and I'd tolerate an otherwise-mildly intolerable job if I knew that I wasn't likely to be laid off, out-sourced, etc.


50
[+3] [2008-09-18 20:25:42] nsanders

I think having good challenges and learning opportunities is critical. That's true when you're above the junior level too.


51
[+3] [2008-09-18 20:26:15] MagicKat

I personally like the office my company gave me.


What do you like about it? - Autobyte
It gives me my own personal space. If I don't want to be disturbed, I can easily just shut the door. And most important I can see people enter my office, rather then have them sneak up behind me (which I personally hate) - MagicKat
Offices might isolate the new people especially since they already start out without knowing anyone. - Anton
I disagree. The fact that we have an open door policy, and that we go to lunch as a group encourages us to talk and get to know one another - MagicKat
52
[+3] [2008-09-19 16:49:03] tidge

Training is by far the #1 thing. It was when I was starting out.

  • Company funding for books and/or conferences.
  • Time to work on projects that might not directly be a product but can help in advancing skills (and could possibly turn into a product).
  • Time with Senior level developers/mentors.

53
[+3] [2008-09-20 08:50:42] Jim In Texas

I think private offices are overated, especially for junior developers. OTH managers must understand that every time a developer is distracted by noise, people walking around them, or being in a huge bullpen or a sea of cheap cubes that it costs the firm money in the near term.

Good work areas, especially good chairs and monitors, make a huge difference.

Any kind of dress code beyond 'naughty bits must be covered' is insane when applied to developers. Having non-flexible work hours is insane when applied to developers. In general what is known in management theory as ' Taylorism [1]' is a good way to drive away the best developers.

All developers, especially junior developers, appreciate formal training opportunities.

[1] http://en.wikipedia.org/wiki/Scientific_management

54
[+2] [2008-09-19 20:36:40] MikeJ

Perks that I have liked:

1) a book budget to get technical books related and unrelated to the job

2) assigned mentor - someone more senior to help show me the ropes and tell me about the culture

3) pop/snack area with minimal (better is no cost) to staff

4) notebook,wifi and lounge where you can be more relaxed when you arent coding hard but still working on things like email. our company has 4 of them than you can pick up in the lounge and curl up on the couch and read mail etc during lunch or during an unwind time

5) budget for movie tickets, dinner out etc. to give to staff after they have done a grinder or delivered a key element on time - anything to make them feel special and remembered for hard work


55
[+2] [2008-09-19 03:53:47] Jerry

Don't throw them in with the general population. Give them a place with some degree of privacy, where they can concentrate and not be constantly distracted by phones, business conversations and foot traffic.

Try to give them specified projects with finite, tangible requirements. Give them goals to achieve, instead of open-ended projects that leave them at the mercy of business types who refuse to ever commit to a specification.

Have and enforce a change request policy. Have and enforce a clearly defined chain of command that requests have to flow through.

Make sure they have more experienced programmers to aspire to and seek advice from.

I would take these things over foosball tables and free soda any day.


56
[+2] [2008-09-19 13:13:21] community_owned

The option to install whatever software you need to get the job done. Notepad++, Pownce or whatever.


57
[+2] [2008-12-16 18:21:04] mc6688
  • Gym Membership
  • Video Games
  • Dual Monitors
  • 4 weeks+ of vacation
  • Flexible starting hour
  • If no private office then noise cancelling headphones.

And MOST importantly other people their age to work with.

When you are 22-23 years old it is really hard to relate to your coworkers when they are all talking about their kids/families.


Why was he downvoted? - Frank
58
[+2] [2008-12-28 22:39:03] Steve

I just entered the job market and landed with a company where the hours (with the exception of occasional deadlines) are 9-5, 3 weeks vacation to start, and free lunch monday - thursday from different restaurants. This beat the other places that essentially said they would treat me like dirt and have me work long hours. The hours and benefits allow me to maintain a very healthy work/life balance, and this makes me more productive at work.

Oh yeah, and dual monitors rock.


Where do you work? - Simucal
Hi Simucal, I don't feel comfortable putting that down here. Is there someway to private message here? - Steve
It's okay to mention it. We won't tell anyone. - Don Branson
59
[+2] [2008-09-18 21:07:29] John Rudy

When I was just starting out, I benefited greatly from the mentoring of others in the office. It helped a lot, and I viewed it as a serious perk -- I was often quoted as, "I'm getting paid to learn!"

There are all the trivialities (games in the office, DVDs, etc.) -- I think that while they make for a great interview carrot, they're not a reason said programmers will stay. Indeed, once their work ramps up, they'll probably realize they have little time for those "perks" and wonder why the company even bothers.

As a junior, learning from someone who respects you, is able to teach you and is able to lead you is very enticing long-term. It may not have the interview sex appeal that the others do, but it's something I think all serious developers did appreciate (or would have appreciated, if they didn't get it).

Sponsor a corporate-wide subscription to Safari. Allow a junior dev to take 2 or 3 hours a day learning. Make him feel valued. Let him contribute.

Which is another biggie: Make him feel like part of the team, and give him projects which not only interest him, but also challenge him. Too often, the junior dev gets the jobs like "move control X to the lower right corner," or "write all the property routines" (or getters/setters in Java/Obj-C/et al), or "add javascript validation." Give him something to do which makes him feel useful, like a real contributor. He'll appreciate that, too -- and probably become more passionate about your firm and your practices.

(BTW, my use of "him" is not meant to be sexist; it's just a shorthand. Please expand it to "him/her" mentally.)


60
[+2] [2008-09-18 21:37:38] JB King

Casual dress code Free pop (This was one that I really liked back in the dot-com days and miss it sooo much) Flextime and telecommuting Configure there own machine w/dual monitors and a budget Benefits like health care, dental and vision - Some of us like being able to get a discount on glasses or having our teeth checked.

I would also suggest making sure there is a clear process for how work will be done as junior programmers may not necessarily be aware of all the best practices and what kind of environment you want to give them.


61
[+2] [2008-09-19 06:02:11] cdv

I am a recent graduate. In my opinion, the most appealing perk for me is having an interesting project to work on. I don't want to be writing simple in-house enterprise applications all day. This may be someone else's idea of fun. However, it is not mine.


62
[+2] [2008-09-19 06:14:10] Ingrid

Smart people and cool projects would attract the best programmers. IMO, if you rely only on monetary incentives, you'll most likely attract the wrong crowd.


63
[+1] [2008-09-19 06:34:03] community_owned
  • Freedom to make mistakes and learn

  • Knowledgable and tolerant team members

  • Great hardware and a single widescreen monitor


64
[+1] [2008-09-19 03:18:26] Aaron Arbery

interesting work. When I started programming many years ago, you got lumped with the crap work as no one else wanted to do it.


65
[+1] [2008-09-19 03:11:10] Bart

A chance to be part of a successful team.


66
[+1] [2008-09-18 22:59:42] Scott S.

A decent manager, good training, and good motivation would be nice. In all of my past jobs, the training sucked, the managers didn't care, and they ended up "motivating" me right into a new job.

Treat your employees well, and the perks will matter less. (But free food never hurts, either :))


67
[+1] [2008-09-18 23:13:48] Evgeny

One thing that would be very appealing is if an employer offered to sponsor one non-work interest for each employee. This could be something simple, like paying for karate classes or offering a small scholarship for those who are taking night classes for a graduate degree. I think that contributing to making an employee a more well-rounded person will actually pay dividends for the employer in the end.

Team outings are fun, help bring people together and act as much-needed breaks when projects get intense. Offering even bi-monthly events could be a nice incentive.


68
[+1] [2008-09-18 21:16:17] AlanR

In addition to what has been said, make sure you have them work on stuff that has impact on the business. If they feel that you value their work as a core part of your business, they might become much more engaged in their projects. If they do, that's the kind of developers you want full time.


69
[+1] [2008-09-18 22:42:32] Ben Collins

The best equipment:

  • chair
  • monitors
  • modern workstation (e.g., nothing older than 2 years)
  • ergonomic keyboard

Matching 401k (the higher the match, the better)

Good mentoring.

Freedom to pursue creative outlets related to work projects (i.e., 20% time).

Update: after reading other answers, I think I'd also say:

  • private office
  • individual book/training budget
  • HDHP with the amount of the deductible given at the beginning of the year in the form of an HSA

70
[+1] [2008-09-18 21:38:03] origin

I'm a new programmer myself. Things I found useful at my last internship are dual monitors (or a really wide one, good to look up things AND look at code at the same time), admin rights on my own box, flexible hours (really important one, put me at ease not having to worry about emergencies/appointments/talking to manager for those and the like). I also loved how my manager/supervisor would never look over my shoulder...feels easier to code that way. Also, our tools server had some free and tested (for our particular environment) programs like folder diff, tool to view method signatures in assemblies, etc. They help everyone but are especially handy to new developers.


71
[+1] [2008-09-18 21:38:34] alvin

Experience with experienced programmers. Games, free food, free massages, are just gimmicks (cough google cough)


72
[+1] [2008-09-18 20:39:37] Michael Myers

The Joel Test [1] has some good ideas, although you might not consider them "perks".

[1] http://www.joelonsoftware.com/articles/fog0000000043.html

73
[+1] [2008-09-18 20:35:31] Danimal

One nice perq we have here (beyond training, great environment, and the rest) is subsidized gym membership.


74
[+1] [2008-12-19 12:04:19] slim
  • bright colleagues
  • interesting challenges
  • flexitime
  • freedom to fail (if you never fail, you're not being challenged enough)
  • freedom to innovate (i.e. an organisation that doesn't stonewall ideas from juniors)
  • Google-style 20% time -- or something similar
  • the sense that attending conferences and education is encouraged, not merely allowed
  • casual dress code
  • dining facilities on site or very nearby

I would suggest that working from should not be the norm for junior hires - they need face to face contact in order to become part of the team. It's good if they have the facilities to work from in order to do out of hours work, or have occasional home days.


75
[+1] [2009-04-02 01:23:14] BenAlabaster

Some of these have been mentioned before, while others seem to have been skipped over...

  • A bluetooth headset - preferably one that multi-pairs with my desk phone and my cell phone and lets me listen to music in stereo. Less is more, right? I don't want to have to keep switching headsets to answer different phones or listen to my music, and I definitely don't want to have to hold the receiver while I try and continue my daily work - and I don't want half a dozen gadgets cluttering up my desk, the fewer the better.
  • O'Reilly Subscription - I think this costs me $40 a month which I'd rather not pay for myself, but I refuse to live without it, so I do.
  • MSDN License - The one with all the nifty stuff like Expression Studio, Visual Studio Team Edition etc. This currently costs me a small fortune, it would be nice if it came as a perk of my job!
  • Software - Don't give me hassle about purchasing software that will make me more productive when I ask - XmlSpy, Icon Workshop, Resharper/CodeRush just buy it and bring it to me when it arrives, the small amount of $$$ it costs, by the time you've wasted a half hour of my time having me write up justification and you've wasted another 10 minutes reading it, we've just spent more than the cost of the software.
  • Flex Time/Telecommuting - If I arrive late, chances are I didn't leave until late last night, don't quiz me like a five year old where I was at 8:30 when everyone else arrived! Where were you and everyone else at 2am when I left?
  • Give me leeway to be myself. Putting my feet on my own desk is perfectly acceptable behaviour, as is listening to music, eating, having pop on my desk etc. As long as I'm not disturbing anyone else's workflow and I'm meeting all my deadlines/objectives, that's all that matters.
  • Home internet connection and VPN privileges - for those work from home days.
  • Time to think - without questioning what I'm doing "instead of working" - we're programmers, thinking is working, what's more, that's what you pay us for.
  • Bookshelf - for all my books
  • Books - to put on said bookshelf.
  • No micromanaging - I'm an adult, I don't need micromanaging! Give me a task and some kind of idea of the direction you want me to take and leave me to do what you hired me for. If you wanted to do the job yourself, be my guest I can always find something else to do. If I need help, I'll ask.
  • A forum for answering questions/learning
  • Training/Seminars/Further Education (i.e. Masters Degrees, PHd's etc)
  • Life Insurance Policy
  • Stock Options
  • RRSP/401K
  • Occasional Team Building Days - Sailing, War Games, Paintball, whatever you like

And if you wanted to throw in a couple of nice personal perks:

  • Gym Membership
  • Golf Club Membership

76
[+1] [2009-04-27 18:12:44] Robert Sweeney

casual dress will have to be up on the list for me.

i used to work for an employer who would on occasion stock our department mini fridge with caffine (in our senerio it was Mountain Dew).

the most important thing to me was chemistry. having coworkers that were intellegent enough to bounce ideas off of but social enough where we could invite each other to bar bq's.

finally, i think being comfortable. i think the casual dress is a small preface to this, however, good chairs, good screens, performing machines, lowest stress conditions possible. being a developer deadlines are already enough to stress out about.


77
[+1] [2008-10-04 15:25:13] pookleblinky

Simply follow Jeff Atwood's (PBUH) Programmer's Bill of Rights [1] and they will come.

It doesn't hurt to provide abundant caffeination infrastructure as well :)

[1] http://www.codinghorror.com/blog/archives/000666.html

78
[+1] [2008-11-28 15:38:20] egapotz

Well, working on challenging and interesting projects, being respected and not being ignored (some junior developers are just forgotten in a corner of the office) can be better than throwing them games and gadgets.


79
[+1] [2008-12-05 23:23:58] Dylan White

I'm a current college student, graduating in about a year, and the only thing that matters is respect. Money, hours, aeron chairs, multiple moniters, admin rights to your own computer, private office, telecommuting rights, these all represent the same thing: the employer views you as a real employee. Clock ins, lowball offers, drug tests, cubicle farms, folding chairs, ect., these all represent the opposite: the employer views you as a stupid little kid.

The most intelligent and hardworking graduates are probably not as interested in the free soft drinks and game lounges as they are in the idea that they will be viewed as important contributors, both to your company and the field of software engineering at large.


80
[+1] [2008-12-10 07:24:15] Srikanth131
  • Independence , and a feeling that their Inputs matter
  • Work From Home
  • Allow for Personal work at Office (initially there might be lot of wasteage of time , Slowly it will come down automatically)
  • Casual Dress code
  • Laptops and Not workstations
  • Creative projects
  • Allow them to Work on Other things not limited by Work Profile (Like a new programmer wold cherish the idea of having the liberty to directly interact with the Clients and Understand / Solve Problems)

All this would be grt for them , And would think twice before leaving as they would feel suck would place would not be available elsewhere.


Laptops? Eugh.. - UpTheCreek
81
[+1] [2010-11-19 15:37:00] Ramy

In a few words, I'd say room for growth.

I'm not the great hacker that most of the people on this site probably are (at least the ones with over 10k rep - I have yet to successfully answer a question after being here for a year). So for me, when I was starting out, I knew that college was, effectively, nothing. And I needed to do all my learning in the real world. Sure I got my CS degree, but I was way behind all the other CS majors because I didn't play with computers when I was young. I had hardly ANY experience with FILE SYSTEMS, for God's sake, before I got to college.

So, how do you create room for growth? To me, I think you have to create a professional, fun, AND academic environment. Professional meaning the usual things you read about in a business-type book (respect, clear expectations, blah blah).

Fun meaning, aside from games, putting together a group of people who can sit in a room together and just shoot the breeze and be mostly laughing.

Academic meaning an environment where everyone is a student and everyone is a teacher. This is probably the most difficult to foster in my opinion for any number of reasons.


82
[+1] [2009-07-02 14:59:44] hasalottajava
  • Quality chairs. A developer spends a lot of time during the day sitting. While a good quality adjustable chair may seem expensive, it's cheaper than having a developer miss work because their back is injured from sitting in an Office Depot $79 special.
  • In office catering. It doesn't have to be covered by the company, but having a secretary make a lunch run for the office is a great benefit. Not only does it enable the developer to work through their lunch, if they need/ want to, but it helps cut down on that time lost before lunch where everyone tries to coordinate about who's going where.
  • Dual monitors, or one large(30"+) high resolution widescreen format LCD. The productivity gain from having multiple monitors is amazing. Imagine a secretary having to work in an office with only a single file cabinet with just one drawer. That's what development on a single 17" 4:3 aspect ratio monitor is like.
  • Quiet. Even if you can't afford private offices for the developers, providing the developers with a space separate from marketing and people whose jobs are to talk to your customer base, or the sales team is very important to a developer. A developer has chosen to work with computers, and not people, because they are likely not an extrovert. Therefore, keeping them sheltered from the sales team's pep-talks and team building exercises will be very valuable. If you have to have a giant open floor plan for the entire business, look at getting some banners or sound dampening to hang from the ceiling.
  • Respect. Your developers are building the tools that your company uses to be more profitable. They may be making the software you sell, or the software that gives your company the advantage you need to be competitive, treat them with respect.
  • Books. Developers need knowledge like plants need water. If a developer isn't given an outlet to learn new techniques and practices, they will search for it themselves. Give your developers a quarterly library fund, or have a company library they can get books from, and request new books be added to. You can create an internal website which the developers can vote for new additions to the library with, and buy them once a quarter. A subscription to an online library resource like Safaribooks.com [1]
  • A sense of being appreciated. You chose to hire these particular developers for a reason. Make them feel like they are special in some way. Have a quarterly/ monthly guest speaker, as you can afford it. If you can't afford a guest speaker, send some of them to conferences and workshops. Rotate your developers through conferences, so that everyone has the opportunity to go.
  • Managers who understand what is involved in developing software. Developing software is not the same thing as digging a ditch or laying bricks. A developer will not spend 8/8 hours writing code. Plenty of time will be spent on research, whether requirements gathering/ clarification, or on the right approach to solve a particular problem. In physical engineering, prototypes and stepwise refinement are part of the iterative development of a product. The same is true in software. Just because the final check-in for a task is only a few text files, doesn't mean that the developer didn't spend a lot of effort refining that feature or bug fix.
  • Guidance. As a recent college grad, your new developers are going to need someone who's been around to guide them to the correct technologies and practices to use to increase their value, both for the company and for themselves.
[1] http://www.safaribooks.com/Corporate/Index/

83
[+1] [2008-09-19 13:31:29] unforgiven3

Here's something: Don't leave them in the dark when they are just starting. They will be very uncomfortable if they have no direction when they start. Make sure they have very, very clearly defined tasks with measurable deliverables. When I first started, I was throw into a mess of a product with no direction and told to fix bugs that made absolutely no sense to me. Find somewhere appropriate for them to work and make sure you give them what they need to contribute positively. Otherwise you're just going to have a bunch of college kids surfing the web on your dime.


84
[+1] [2008-09-19 12:59:48] px

The best perks for new programmers are too offensive to most people.


85
[+1] [2008-09-19 19:35:17] ragu.pattabi

There is nothing like the company of an experienced fellow programmer guiding the new programmer. I am always thankful to my very first mentor when I entered into software development. (Thanks Chris!)


86
[+1] [2008-09-19 20:22:49] Nathan Koop

I would argue against private offices, I would promote more of an open office concept with "war rooms" so that the the newb's can quickly ask a more experienced person quickly & easily. But keep the rooms smaller, five or less people. Also, dual or triple monitors is a must.


87
[+1] [2008-09-20 10:30:56] Alexander

Shower on the premises, so that employees can jog/cycle to work.


88
[+1] [2008-09-20 02:28:29] Kevin Conner

Two words: Starting salary. It determines how much money you will make for the majority of your career.


"Aside from cash" - Daniel Daranas
89
[+1] [2008-09-21 19:45:04] Umer Azaz

Besides money, the greatest attraction for a new developer would be an experience that will allow him/her to build his career on strong footings. A developer can get this experience by working in an environment that will allow him to learn, improve, strive to achieve challenges, where 'quality' (of code, documents, etc) has some value, where best practices are followed, where people look for a better solution and most important point is - No internal politics.


90
[+1] [2008-09-20 19:19:13] daniel
  • Free coffee
  • Good nearby food
  • Well stacked library

91
[0] [2008-09-20 20:03:00] community_owned

Having worked at some &#!t jobs I have found that one of the nicest things is a training program. Just expecting somebody to pick up the job and be swimming in the first week can be exceptionally frustrating. If you set aside X amount of time and have them up to speed as to how things are done in the work place they feel a lot less out of place when they have to tackle the real issues.


92
[0] [2008-09-21 00:47:27] Paul Allaire
  1. Trust, it might not sound like much but when your just starting out in the field the notion that you take them and their skills seriously, and are going to provide useful feedback can be enormously satisfying.

  2. Training & Certification is a huge plus, it can often make Jr. Programmers feel likes your investing in them. It also helps weed out folks that view programming more as a hobby or something they feel into as opposed to a career.

  3. I really liked the idea of building my own system on a budget above. Its an interesting idea and I think it would attract people, it certainly would me.


93
[0] [2008-09-21 05:21:28] Bob Minteer

Lay out the metrics by which their work will be evaluated.

Then, let them know that they have time and geographical flexibility where they may opt to work from home several days a week (with prior approval of the lead programmer).


94
[0] [2008-09-20 12:07:04] Zee JollyRoger

As a college student hoping to enter the programming field I would really love to find a place that would offer me a chance to grow. So here is what I would love to see:

1) A great chair. I like supportive, comfortable chairs. However, nothing too comfortable like a La-z-boy chair.

2) A mentor or hero who could lend me advice when I need it, hugs and praise when I've earned it, and a gentle push when I am falling behind.

3) Food. Eating a proper meal and being as healthy as I can would be really nice if it fit into work.

4) Schwag. Company shirts, logos, bumper-stickers, etc.

Good luck.


your expectations are way too high. dream on, but soon you'll face the grim reality - 60 hours/week of cubicle life with office drones :/ - DV
95
[0] [2008-09-20 13:54:25] community_owned

Good working environment, competitive compensation, and the ability to do research and development.


96
[0] [2008-09-19 21:20:24] DV

I suggest reading these excellent articles from "Joel on Software" blog:

http://www.joelonsoftware.com/articles/fog0000000043.html - 12 Steps to Better Code

http://www.joelonsoftware.com/articles/BionicOffice.html - Bionic Office

http://www.joelonsoftware.com/articles/fog0000000040.html - How do You Compensate Programmers?

http://www.joelonsoftware.com/articles/FindingGreatDevelopers.html - Finding Great Developers

There are more by Joel, very specific to office layout and working conditions for developers, anyone knows?


97
[0] [2008-09-19 22:08:59] community_owned

Offices and fancy chairs are overrated. Responsibility, visibility and the opportunity to work on something cool and learn are critical to getting and retaining young developers to a non-established company. Fresh out of school, working on something impressive or world-changing was way more important than almost anything else.

Making work feel like college will help keep them in the office more hours, but it won't keep a young hot-shot developer working on dialog boxes for an internal insurance company application.

Also, money, lots of money, never hurts.


98
[0] [2008-09-19 20:23:37] Nathan Koop

casual dress


99
[0] [2008-09-19 19:40:12] izokurew
  • Private office
  • Casual dress code
  • Free coffee

100
[0] [2008-09-19 17:58:53] Sarat

I think instead of thinking of them as perks, they should be thought of as the norm.

In no order of preference, the top 5 for me would be,

  1. Either offer for free or help them with what excites and interests them related to work. For example, free conference passes, books, learning courses etc.
  2. Definitely a good working environment like equipment, chairs and desk.
  3. Give them the freedom to work "above their role". Credit them for thinking out of the box and encourage them when they don't.
  4. Set goals and make sure you measure them. Fresh graduates and young programmers usually have trouble (mostly) setting and realising objectives.
  5. Don't make Rules and Regulations up "just because"

101
[0] [2008-09-19 18:36:01] DanWoolston

flex time 2 monitors good chair. allow headphones and an xbox360 in the break room.


102
[0] [2008-09-19 14:44:34] Frank V

I started about 3 1/2 years ago.

I was hired at the first place that interviewed me which I was thrilled about. It was a great first job because we got to use bleeding edge technology.

Problem was, my manager was rather disrespectful. I don't know why but it made me leave the company after a 1 1/2 year. I know my manager's manager wasn't too happy with my [ex-]manager. I had hoped to work there longer...

Regards, Frank


103
[0] [2008-09-19 15:40:48] xsaero00

I have graduated 3 years age and I remember how I felt when I was looking for a job.

First, thing that I remember after reading many job postings, is the realization of how little I knew about specific technologies and understanding that I would have to do a lot of learning to become successful in the field. So I applied for positions where they emphasized regular training.

Other thing, that I remember is being worried about being put in a position where I don't get to do much programming. I wanted a position that would have the least amount of repetitive task, because if I am not "creating" I am bored.

Things like private offices, corporate culture and even the pay did not concern me as much. It was my first real job, after having to work everywhere just to keep my tank and stomach full during college, so I basically had little understanding how it works. In fact dress code was the least of my concern; I actually wore tie/slacks to interview, orientation and first 3-4 days of work. In fact I thought it would be nice to work in good clothes. (I guess I am more fashion aware, than most fellow programmers.) Now I wear khakis most of the time and like it.

As I said, this is how I felt when looking for my first job, so this is purely subjective.


104
[0] [2008-09-19 13:09:34] WACM161

WHen I was a young programmer right out of school (its been a while now) the thing that I lucked into were 1) Open Internet connection, no blocked sites except the nasty stuff 2) The ability to advance 3) Challenging work 4) Good hardware, it sucks when the build takes 2 hrs 5) A beer fridge (hard to maintain as the organization grows) 6) great Senior Developers 7) Flexible working hours

As these things became less of a priority at the company I was at, I left too!


105
[0] [2008-09-19 04:07:11] Devin Jeanpierre

Hey, well, I'm still in university, so I guess I might be qualified to answer! I can tell you what would attract me personally to a job, but I can't really speak in general terms. For me, the most important thing is interesting work. I don't want to maintain a 40 year-old accounting system. I do want to do something challenging and fun. Maybe that's a bit much to ask for, but I would expect others to ask for it as well. I think this leads a lot of programmers into the game development industry, and apparently they get burned out there, so that's not cool-- but that doesn't mean other development can't be fun. It would depend, obviously, on the person involved. I'd love to do things like image manipulation and simulations (and, yes, game development), but I haven't gone deep into other areas. The number one pulling me into a job would really be the "fun" aspect-- cheap things like a dedicated wii room and comfortable clothes do help, but neither will make me want to take a job fixing the remaining y2k bugs, or whatever else needs doing.


106
[0] [2008-09-19 13:36:03] community_owned

Educate them. Give them the opportunity to work on their skill set.


107
[0] [2008-09-19 13:56:54] Dynite

Free fruit


108
[0] [2008-09-19 13:15:08] SomeMiscGuy

My own cool job that is at an Insurance investment company came with the following perks: fully stocked kitchen with soda, coffee, snacks. beer for afterhours, srsly! 'Free lunch fridays' where the entire company has lunch brought in (we have about 30 people). triple 19' flatscreen monitors for development. Large screen HD TVs a good pay and casual work environemnt works well too :)


109
[0] [2011-02-24 15:44:47] odez213

In my humble oppinion the following is good incentive for new programmers:

  • Mentorship from a senior programmer.
  • Games and fun team building event activities
  • Promote training and certification
  • Good software tools and hardware

110
[0] [2011-06-05 08:06:28] Headshota

Quality headphones. Music always helps...


111
[0] [2009-07-23 22:46:36] Eugene

To add to the list: snacks, and not sugar stuff, but actual energy food, fruits, oats, cheese, salad, sandwiches. May be a pain to set up, but if I had that, I'd be spending more time at work :)


112
[0] [2009-08-05 13:13:52] Niko Gamulin

From my perspective the most important thing the job has to enable the employee is the personal growth. Find time to discuss about work and if possible provide them a mentor.

Beside this:

  • flexible schedule
  • drink
  • food
  • pleasant working environment

113
[0] [2009-10-07 22:57:41] KJP

Help them to research all the time in the research interest's of technology leading corporations and new technologies to help them acquire a good knowledge about breakthroughs, discoveries, new tools, etc, and be more creative about their work, just don't make them feel like they don't learn innovative stuff in their environment. Also give them the liberty to finish their programming tasks without restricting them to sit for 8 hours in front of a computer every day. Lockheed Martin gives their employees the liberty to work any time they want if they complete their 40 hours a week.


114
[0] [2010-04-15 18:45:02] sixtyfootersdude

Natural Light.

(it says my answer is too short!)


115
[0] [2010-05-30 13:05:25] Lachlan Scott

Scott Adams, who talent was not so much just being funny as being seriously insightful and making us laugh about it, named the OA4 concept. He suggested that companies truly serious about their employees would be OA4 Companies and throw their employees Out At 4pm.

I'm into my 13th year of professional programming now, finally working for myself, doing only what I want with exactly the tools I choose, and getting OA4 is almost impossible. OA2am is currently more like it. But the truth of all-nighters and suchlike 'dedication', (and I pulled a 24 hour special only last week for a client deadline), is that it's just like credit card spending; sooner or later you have to pay it back.

The reward isn't in the perks, it's in the job. Help people do their job well - not compulsively, obsessively, heroically or with guilt. I'm not a better person for busting a gut whatever my feelings suggest; I'm a better person for starting at the same time every day; finishing at the same time every afternoon; and getting plenty of breaks away from the desk. Sometimes you do good work; sometimes you don't. If you follow a healthy routine, you'll do more good work more often. A good company as Adams suggests, would be one that encourages us to be better people.

Hey, anyone want to write some Cocoa with me? I'll let you Out At 4pm! :-)


116
[0] [2010-05-30 13:31:57] Kai Wang

Fast computer (not like mine)

more than 1 big monitors (not like mine)


117
[0] [2008-10-04 05:24:45] community_owned

In any environment in which programmers don't maintain their own equipment and IT does, making sure that IT helps rather than hinders the programmer. Either a group of IT admins that support programmers as their main responsibility, or a dedicated admin for programmers.

Few things can be more frustrating than having to wait hours or days for simple tech tasks to be completed.

(Of course, it should go without saying that programmers must have root/local admin privileges on their own workstations.)

Another thing: make the day 1 setup for a new programmer a thorough thing. Not something where it takes a day to get their account set up, another day for e-mail to be created, etc. Ideally, everything is set up for them (and tested to work!) so they can then plunge in, start reading source code, start receiving training from their mentors, etc.


118
[0] [2008-11-20 23:25:36] kajaco

Subscription to Safari Library Books Online. Unlimited access to all their books and those of partner publishers, never goes out of date, searchable, training videos, and notes you make are kept forever, even through subscription lapses.

By the way, not all fresh-out-of-college programmers are young, nor are they male. Most are, I grant; but not all. :)


119
[0] [2009-06-20 05:24:34] Jim Ferrans

Substantial times of uninterrupted peace and quiet to get into that highly productive state of "flow" while programming. A noisy office drives productivity down at least 50%.


120
[0] [2009-04-02 01:54:12] Frank

Free headphones (good around-the-ear phones from Sennheiser or even Bose, maybe even noise-canceling ones)!


121
[0] [2009-04-12 03:15:21] JonnyBoats

Anything with caffene in it should be free. Coffee, lattee, candy bars, soda (especially Mountain Dew) etc.

Seriously though, ask anyone who has worked in a place like Microsoft where they have great break rooms close by and they will tell you that they can be a godsend when working late etc.


122
[0] [2009-03-01 23:28:58] Stefan Thyberg

If I were to pick a few perks (as a junior developer) that would make me switch companies:

  • Games in the lunchroom, so you can play a bit during morning and afternoon breaks
  • Comfortable chair instead of "whatever the leasing company gives us"
  • Fridge stocked with beverages
  • Getting to order whatever programming books I need
  • Non-tolerance for incompetent developers
  • Company-sponsored team activities like paintball, lasertag, etc.
  • Getting to be around good developers my own age
  • Sponsored gym membership
  • Flexible starting hours

"Non-tolerance for incompetent developers" Not everyone is as good as the next guy. Being professional is about helping others and working as a team. - Dynite
A professional environment can't be maintained without... professionals. Some people are simply not meant for software development but manage to stay in the field anyway somehow. See www.thedailywtf.com for reference. - Stefan Thyberg
123
[0] [2008-09-18 20:52:33] Jeff Miller

I won't claim this is the most important perk, but I know of a company that has season tickets to all the local sports teams, and employees can use the tickets for free on a rotating basis. It's pretty popular.


124
[0] [2008-09-18 22:47:00] Adam Lerman

Casual dress is huge. I work for a large corporation (150K+ employees). When I started we were allowed casual dress and now are not. That is one main reason I am out looking again a year out of college


125
[0] [2008-09-18 22:47:16] Telos

Well, remembering back to my days of interviewing for that first big job:

1) Actually hiring me!

Sorry... bad at interviews I guess.

Big favorites for me are a flexible work schedule and casual dress code.


126
[0] [2008-09-18 22:05:54] community_owned

An office kitchen


127
[0] [2008-09-18 22:38:05] givanse

Adjustable-height desks, I bet they are very nice. Sometimes I would love to write code while standing. I took the idea from here: http://www.joelonsoftware.com/items/2008/09/10.html

However a cool and comfortable chair will rock also. Something puffy or fancy, like those chairs that look like a hand. So I can stand for a while, then sit if I get tired and so on.


128
[0] [2008-09-18 23:29:01] BrewinBombers

Merit based rewards are important; Developers generally despise politics and people being rewarded or promoted over someone who has done better work.


129
[0] [2008-09-18 23:00:21] lewis

Definately flexible working hours and lots of training/conferences. Free drinks and video games just seems too trivial.

This may seem a bit contentious but in my first programming job I really struggled for the first month because I had no money. Commuting, even just paying for lunch was a problem and it just made life harder. I couldn't enjoy the job. So maybe a small short-term loan to paid back over the next few months out of the pay-packet might help. Or maybe a one month agreement to pay expenses on production of tickets/receipts.


130
[0] [2008-09-18 22:59:06] setatakahashi

Budget for Books / Mount a library

Good desktop tower with lots of RAM and a fast hard drive

Check what you will demand because that is what the programmer will care about


131
[0] [2008-09-18 23:51:30] Kevin Conner

We have a ping-pong table.

But mostly you want to find out what their co-ops and internships didn't get them that they wanted, and give them that. I didn't like big companies because I wanted a real voice in the way things were done. I've been with my small company since undergrad.


132
[0] [2008-09-19 01:04:05] Ty

Lunches out - on the company, of course...with beers. After work beers on Fridays. Beer is the key.


133
[0] [2008-09-19 01:24:37] community_owned

Give junior developers what they need to be productive on their tasks, within the bounds of company policy of course, then if possible, grant them what they want, in order to be even more productive. Though this is relative to individual tastes, just reading from the comments above is a good starting point.


134
[0] [2008-09-19 06:34:38] user17224

cool project

atleast one good / cool guy in the team they can learn from - say you have Linus or stallman coming in once a while - the entire college would be running behind you for getting hired

no dress code

flexible timings

powerful laptop + paid home access

good food and snacks

a good blog that talks about your company like what Joel does to fill his outfit with smart grads

trainings

not much process but newbies might not be knowledgeable enough to appreciate it. (Your blog could help there)


135
[0] [2008-09-19 08:03:04] Pace

Some flexibility with regards to buying things.

TP add ons. Amazon books, technical magazine subscriptions.

They made me more comfortable and feel more valued.


136
[0] [2008-09-19 10:18:32] Bill

Software and hardware for personal use. Like a nice notebook computer packed with development and productivity tools that you can use for both work related projects and personal projects.


137
[-9] [2008-09-19 11:38:57] Neverrav

only two things:
1) they must realise that they know nothing
2) they should listen to what more experienced people say and try to improve themselves
how simple :)


138