The Moderately Enthusiastic Programmer
An anonymous reader writes: "Developer Avdi Grimm posts about the trend throughout the software industry of companies demanding that job applicants be 'passionate' about programming when hiring into ordinary development jobs. Grimm says, 'I love code. I dream of code. I enjoy code. I find writing high quality code deeply satisfying. I feel the same way about helping others write code they can feel proud of. But do I feel 'strong and barely controllable emotion' about code? Honestly? No. ... I think some of the people writing these job ads are well-meaning. Maybe most of them. I think when they write "passionate" they mean "motivated." No slackers. No one who is a drag on the team. But sometimes I worry that it's code for we want to exploit your lack of boundaries. Maybe it's fanciful on my part, but there's a faintly Orwellian whiff to the language of these job ads: excuse me comrade, I couldn't help but notice that man over there is not chanting the team slogan with sincere revolutionary conviction.' Is it realistic for employers to expect us to be passionate about software we're hired to build? If they're looking for the head of a major product, then maybe it's warranted — but for everybody, even the grunts?"
I don't get this psudo-nerd bragging right. I've worked jobs I hated and had dreams about them, too.
I'm 40. I love what I do, I love building websites and I love doing front-end development. Do I live and breathe it? No. I go to work, work on great sites, and then go home for the day and enjoy my evening doing non-coding things.
If you don't eat sleep and breathe their corporate paradigm at all times you're not the person they're looking for. They don't want you to forget that they own you, even when you're not physically at the office: your personal work belongs to them, your future employment opportunities (non-compete) belong to them, your personal activities (social media et al.) belong to them... And they wonder why people get disgruntled.
I feel this way about the current codebase I'm working on right now, but they only give me the nerf-type of weapons, so no one needs to worry.
God, schmod. I want my monkey man!
I like software development. But when I go home, I do other things than write more code (write/record music, write/shoot/direct/edit short films, cook foods, breed fish, exercise/martial arts, spend time with my SO, etc). Apparently, to some developers, this means I don't take my job seriously and I shouldn't be in the industry because I'm not spending every moment living and breathing code. I don't even own a github. And frankly, if that's the expectation, I'd rather not work in that sort of environment.
If you were me, you'd be good lookin'. - six string samurai
People will do things for love that they won't for money, including endure abuse, or attempt the impossible.
much of left-wing thought is a kind of playing with fire by people who don't even know that fire is hot - George Orwell
What management actually means by, "We want people who are passionate!" means that they live in a fantasy world where truly passionate people will come work for them for meager pay, lousy benefits, and an average work environment. It's the ultimate delusion of entitlement. Because why should talented people settle for them?
There is good management. But most of the time you see poor management who blame their own inadequate and incompetent leadership abilities on their employees. Many seem to look at subordinates as nothing more than a monkey there to churn out code -- like it's such an inconvenience that they have to deal with actual humans who have like, squishy innards that need nourishment and rest.
Add it to the list...
"Fast paced work environment!" We're understaffed.
"Opportunity for advancement." We have a high turnover rate.
"Flexible hours!" You'll never be able to predict the next week's schedule.
Honestly, most managers would be clueless as how to deal with a passionate programmer.
The meetings, conference calls, the coding conventions, the documentation, making hard choices that hurt the deeper beauty of the finished product. This is poison to the passionate programmer. Other people doing substandard things to her code. This isn't ok to do to someones passions. It would be like letting a person bring a pet to work, and the staff kicks it at a whim.
They want people who pretend to be passionate. But really their looking for employees that want a paycheck, and a good portfolio when they leave.
...but when i do...i prefer to do it with passion.
stay passionate my friends.
My God can beat up your God. Just kidding...don't take offense. I know there's no God.
I think this is being read the wrong way. There is a huge demand (sometimes real, sometimes perceived) for coders out there. Companies feel like they need to attract coders who, in most cases, already have a job. A lot of these coders are in jobs that are not very challenging, and/or they have bosses who are like the PHB in Dilbert. Basically, a lot of coders are unhappy. Their jobs are tedious and they don't get recognition for doing good work. By using words like "passionate" employers are creating the illusion of a job that will be more challenging and exciting than whatever job the coder is currently in. In reality, businesses could care less whether you are "passionate" about coding or not, so long as you can get the job done and you are halfway competent they're okay. There's nothing really Orwellian about it. They're just trying to use language that will catch the attention of potential candidates.
Proverbs 21:19
Yeah but are you willing to pay for that level of commitment?
Anyone with any lick of coding ability is passionate about programming. This is equivalent to hiring an artist to draw logos and saying they must be passionate about art, of course they are, or they wouldn't be an artist.
Compare that to other "less creative" positions... The average call-center person is probably not passionate about call centering.
Consider this:
public String getSum(int numA, int num2) {
if (numA == num2)
{
return "" + numA*2;
}
return ""+(numA + num2);
}
If that was painful for you, congratulations... you are more passionate about programming than 99% of people are about their job.
I love sanitizing telephones. I dream of sanitizing telephones. I enjoy sanitizing telephones. I find high quality telephone sanatization deeply satisfying. I feel the same way about helping others sanitizing telephones so they can feel proud. Please hire me so I can buy food and shelter.
I saw a big change happen in the industry, while I was briefly at Microsoft.
My manager, and Microsoft in general was more about delivering a positive message, as opposed to having a positive message to deliver.
The problem with that is, if you encourage everyone to do it, they eventually begin doing it even to the company and not just the customers.
"How is that new version of windows going?"
"It's going great!!"
And we all know now, it was terrible, horrible, full of in fighting, self promotion, bad decisions.
"How is that new web site that all America will use, and a presidency depends on?"
"It's going great!!"
See the pattern here?
You really want passionate developers? You are an idiot if you do. As a boss, I did not want surprises, and to me the worse thing in the world a company could do was sell something that was broke. Companies today do not seem to share that philosophy. Consumers tolerate crap and beg for more. So, I guess it really is not just the companies to blame.
slashdot troll = you make a compelling argument I do not like the implications of.
Perhaps this "passion" stuff is just standard bullshit which is not really expected.
A few jobs ago, I worked for a company which had a job opening. They posted an ad for the job, in which they described the ideal candidate as someone who was deeply "PASSIONATE" about their work. However the position itself was in accounting--specifically, in payroll. Obviously nobody is passionate about payroll. Nevertheless, they asked each interviewee if he was "passionate" about payroll, and each candidate answered that he was.
I work for an academic non-profit, been there about a year. Happier here then I've been anywhere else in my career.
The salaries are on the low-end of competitive. However, there is a point at which more money no longer truly motivates me, and I passed that years ago. Now, there are other cultural things which do motivate me. They include:
I'm not the only person who's at the top of their game. It's nice to be able to really learn from others.
I get to go home on the evenings, and the weekends.
I can work from home when it's practical.
I don't have someone hawking over me.
I have a large amount of freedom to execute the work in a manner which makes sense to me (This is why people who care about their craft are important!)
I have interesting and very difficult problems to solve.
The problems I solve aren't just about lining someone's pockets with money. There's more purpose here.
There are lots of places that survive off of hiring mediocrity, and have controls/standards in place to help hedge that (Extensive code standards, technology restrictions, other bureaucratic controls). Some people are VERY comfortable with that level of constraint. In those kinds of places I have quickly grown frustrated and unhappy. Of course, those places that survive off of mediocrity ALSO think they want passionate developers... But very often they don't really, they just want people who will work super extra hard but not ask questions nor challenge the system. It's up to the candidate to distinguish between the two.
This sig has been enciphered with a one-time pad. It could say almost anything.
I like coding. I don't love it. I have a wide variety of interests in my life, such as family, movies, reading about other topics.
I have met a very few coders who are really all code all the time. And you know what? I find them insufferable.
A person should be well rounded and have many interests.
Democracy Now! - your daily, uncensored, corporate-free
This is true. I used to be like the guy above, who only wanted 'passionate' programmers. But then I met programmers who weren't passionate, but were still very good at what they did.
Now I look for programmers who are good at what they do. I would rather have the guy with a good work ethic who is committed to completing a task; not the guy who passionately writes a thousand lines of code, working into midnight, but gets disinterested when it comes time to debug (both real people I've met).
Basically you want someone who can do the job, that's all that matters. People who say they want passionate programmers say so because they think only passionate programmers can do the job. I used to be one of those people, but it is a sign of lack of life experience.
"First they came for the slanderers and i said nothing."
I think you nailed it.
Money is a great demotivater. You certainly can demotivate someone who is passionate about a job by underpaying them - even just a little bit of underpaying can be disastrous.
However, money is not a great motivator for people passionate about a trade or skill except, perhaps, in special circumstances where that trade or skill is money oriented (banking/finance for example). In fact, trying to motivate someone by significantly overpaying them can backfire because they may become fearful of losing their job and returning to "market rate" and having $50K less a year to spend/invest. In a field like software development, you don't want your employees to be too motivated to "keep their jobs", you want them to be very motivated to "do their jobs" well -- and sometimes that means telling the project manager that "Nope, we can't/shouldn't do X in time Y because if we try, it will suck" or telling their manager "The weekly Aggregated Project Control Summary Assessment Review Status Inventory Process is taking me two hours a week to complete and I think it's a complete waste of time - please explain why this is of benefit".
Most great developers I know would work for free if their modest needs were provided for and they could do what they love to do. Of course, what one developer loves is different than what the developer in the next office loves. It's the responsibility of management to figure that out and assign work/guide the project to best "exploit" (in a positive sense) the strengths/weaknesses and passions of each developer while also giving them assignments that allow them/urge them/require them to expand their scope and horizon -- esp. for less experienced developers who are more likely to benefit.
Why is there an "insightful" mod and why isn't it "-1"? If I wanted insight, I wouldn't be reading
It's worth noting that regardless of how passionate you are about your work and job, your company will fire you in a hot second if it serves them best for even just the next minute.
It must have been something you assimilated. . . .
Everybody seems to think the maker for programmers revolves around game development or writing yet another version of some cockamamie scripting language. They look for people who can create the next Doom game engine, or re-write the current one to drive and assembly line or something.
Then they hire these people to keep an in-house accounting system running, or do maintenance on some software product that they sell, and (far less frequently) to design and build something totally new.
The guy reading every new text about programming and fiddling with every new programming language will sooner or later end up using YOUR project as a proving ground for HIS passion. Soon you have an maintainable mess, and he moves on to another job.
For most work in this industry (any software industry), pride of craftsmanship is worth a great deal more than passion.
I quite frankly don't care what he does on the weekends, and the fly fisherman will arrive back at work Monday morning more refreshed, and with fresh insights (there is a lot of time to think while waiting for fish to commit suicide). That vexing problem and that horribly complex chunk of code will end up being well handled and properly structured, simplified, before it is actually written, and documented, and tested, because the pride of authorship won't allow anything else.
Meanwhile the guy coding up his own game engine nights and weekends burns himself out, arrives with a fried brain, and your project suffers.
Not saying that a healthy interest in programming techniques and after hours involvement in coding projects are bad. Just that they aren't actually necessary for a long and successful career, and aren't always going to be all that helpful to the employer, and the employer should be looking for traits more suitable for the job at hand.
If that job involves new game development, or writing new code to drive your computerized plant automation system, you probably want an experimenter. If the job involves security issues you want the paranoid. If it involves inventory or money or scheduling or sales or bean counting you want the guy that writes the cleanest code.
One size doesn't fit all.
Sig Battery depleted. Reverting to safe mode.
Yeah, I saw manager speak all over this guy:
Where I work, there are no grunts. There are no people who mindlessly grind out code. We're not building yet another website: We're solving hard problems, and we want everyone to contribute
"If you call a day off work you better put it back either by extended hours for the rest of the week or throw in one of your weekend days. I don't care about your allotted sick or vacation days. You owe me work"
To contribute with value, you need to not stagnate in one technology for half your career. You need to be well-read about software.
"You better spend your offtime studying everything you don't do at work"
And while we work very few weekends, sometimes there are longer days (like anywhere).
"We work a 60 hour a week minimum and if that isn't enough to get done what I threw on you at the last minute, kiss your weekend goodbye"
The salaries are on the low-end of competitive.
"We pay dirt. If you don't like it, we can replace you with 3 indians"
However, there is a point at which more money no longer truly motivates me, and I passed that years ago
"I have plenty of money in the bank, I've paid for my kids college, own my house and two luxury cars. We aren't going to pay you more, so we will twist this into a debate about morals"
I could go on and on, but I've seen this guy too many times. The only people he is fooling is his employees.
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
You also missed that "Where I work, there are no grunts. There are no people who mindlessly grind out code." is code for "There is no technical career track here; once hired you will never get any sort of promotion."
The first time I saw that, I thought it was a cold idea.. It filters out the people who can't code and don't have little hobby projects to sharpen their skills.
Then I got thinking about it..
My git hub account has like 1 thing on it, my sourceforge has 3 or 4 abandoned projects (a couple with a fair number of downloads too). And I have dozens and dozens that never made it to the see if anyone else can use it stage.
What does that tell a potential employer? I can't finish projects? Well that isn't what happens at work, I do the fun stuff and I trudge through the boring parts of supporting and maintaining it too. That is why its work...
Now I have a family, and that seriously eats into the time I have for hobby projects (especially if I work 60 hours), leaving what? The time I'm at work? Unless your google working on a hobby project at work is a major NO NO.
So, really what are they getting from your github account? That your unemployed and have time to spend maintaining an open source project? That you don't have a family life, or instead of working 60 hours at your job you work 40 and spend 20 hours on a hobby project?
In the end, I'm betting most of the people who have large active projects on github that aren't their day jobs, don't actually make very good employees.
In the sushi world we have a word for passionate chefs... It's 'shokunin' You'll find in Japanese dictionaries that it's defined as 'artisan' but the connotation implies so much more. A shokunin comes to work and does the same task every religiously. Relentlessly trying to improve his technique. He cares only for perfection. Where other people see 'work' he sees 'duty.' He wipes his knife clean after every cut. When he cooks rice he removes or adds half a tablespoon of water at a time to ensure the amount of water is correct. He sharpens his eyes over years and carefully learns to identify and pull parasites from fresh fish, making them safe to eat. He cooks perfect folded eggs in a square pan never allowing it to burn at any place and ensuring each layer is evenly folded and cooked. He takes no breaks until the last customers is served. He works because, more than money, more than fun or pleasure, he desires to be better. Not only does he practice the physical techniques, he sees socializing with the customers over the counter as a skill to be practiced. His conduct and comportment do not waiver inside or outside of the restaurant (his temple) At my restaurant I may hire an average sushi chef to make rolls or to prepare fish in the back. But the person I hire for working behind the bar, unless he's my personal apprentice that has learned to work the way I had to, I would only hire a shokunin. When he works there he represents my business and my restaurant and I know he will outside of work in his daily life as well. Passion is important. But I would never pretend to say that passion was required for the easier and less formal jobs, some people just need a paycheck and as long as their work is good, I can respect that. The person who's responsible for putting a face to the company must be a master.
The Blade Itself