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.
So, when managing, I'm always looking for passionate developers. Here's why:
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. To contribute with value, you need to not stagnate in one technology for half your career. You need to be well-read about software. And while we work very few weekends, sometimes there are longer days (like anywhere).
When I mean I'm looking for a passionate developer, I'm looking for someone who cares about their craft, not just someone who shows up to close bug tickets and collect a paycheck.
This sig has been enciphered with a one-time pad. It could say almost anything.
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.
Mastery and Passion go together. Without Passion, Mastery will not result.
I've been writing code since the '60s. I'm still the best in any team I join. When I'm not, I refactor, relearn, rebuild, etc. my skills. Then I'm the best again.
This doesn't diminish the other dimensions, but this is where it's at. If you're not passionate, you won't think about it night and day, and you just won't reach that level of Mastery.
Nor will you gain the satisfaction from having done so.
...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
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.
Truthfully, there are a lot of jobs which basically require a person to show up and write competent code according to decent instructions, then shut it down and go home for the day. There are some jobs which require a high, if not manic, level of commitment to the job, because it's difficult, the tech is hard to work with, the requirements or deadlines are insane, etc. A high-performing coder is going to get bored at a 9 to 5 maintenance job...while an average code is not going to be able to take on the latter kind of job, but will do fine at maintenance. I worked for several years at a place that was a start up with a lot of big dreams and long hours, then it basically folded and I took a job which is a 9 to 5 maintenance job. When I get out of here for the day, I go home and start coding for fun, while keeping an eye out for the next high-pressure, high-demand gig. I get bored in this kind of environment, and so do most of the people I used to work with at the start-up. It's just about the right person and job and not some latest buzzword or ideal about who a candidate should be.
Most of the code that I see exhibits what I can only describe as a kind of aggressive indifference.
It's not just that they don't care.
They *totally* don't care.
And they're going to make sure you know it.
And suffer for it.
After a while, dealing with this stuff is just depressing.
Especially if you do care.
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 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
All of this stuff is merely emotional inflation. These days you can't just like something, you've got to love. Likewise, if something displeases you a little, you are said to hate it. Personally I find these extremes: black or white with no middle ground to be rather childish - like TV villains who are only bad, or heros who are only good. It might work in programmes where you only have 1 hour - or rather: 40 minutes + advertisements to introduce, flesh-out and conclude a story, but real people aren't like that and adopting TV-style dialog into real-life is misleading.
So to say you "love" programming is pointless. I'm sure people are drawn to some aspects of creating new software (though doing the documentation and the testing never seems to be those aspects) and occasionally actually like the feeling of creating something. But is that love? No of course it isn't. Love is (break out the violins) all-conquering, an emotion you would go to extreme lengths to preserve and protect.
If you really did "love" coding, you wouldn't have to be paid to do it. Maybe that's what employers are really looking for.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
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.
The fastest development comes from a group of motivated individuals who are almost all the same (ie. background, experience, language preference, o/s preference)
The most robust development comes from the most diverse teams.
Rarely does fast = robust, or vice versa.
"To those who are overly cautious, everything is impossible. "
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.
The reason passion matters for developers is the speed at which our industry changes. For someone working if a field with fewer changes than ours, going to school and learning how to do the job can be enough. But for a developer, staying qualified for the job requires a commitment to continually better yourself. You have to read up on the newest technologies, trends and methodologies on an ongoing basis...and most employers aren't willing to have you do it during work.
This is why they're looking for people who passionately love developing. Those are the people that spend half their time away from work hacking on personal projects where they're free from any constraint around technology selection or architecture that might be imposed at work. What you're looking for is someone who views writing code as almost a form of play. That's what they mean by passionate...that intrinsic motivation that doesn't need to be cultivated, because companies are terrible at making employees grow their skills and even worse at monitoring those changes in employees....it's just simpler to screen for it in the interview process.
"Don't blame me, I voted for Kodos!"
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