Programmer Passion Considered Harmful
medium.com
medium.com
But I write code at home. Not work-related code, and not to the exclusion of other hobbies. But coding is something I enjoy, something I sometimes like to do for its own sake. I won't apologise for that.
I've known lots of programmers who turn up, do a good job then go home, they don't blog, follow frameworks or languages or any of the other stuff that isn't directly required for work.
If you hang around HN or the trendy hipster blogosphere, then no. Seems those developers are the scum of the earth and shouldn't be allowed near a computer, but in the real world, those are the ones doing important development in medicine, banking, military, etc, while keeping normal work hours. Just because they don't create the 389th Javascript frontend MVC fully reactive template based framework and create 50 blog posts about it, doesn't mean they aren't good at their jobs.
I'm a contractor who does a hell of a lot of work for state governments. An NDA precludes my naming names, but I work in a Microsoft shop and I've spent the last year helping reverse-engineer a legacy system implemented in COBOL than ran on an IBM mainframe.
It isn't sexy work, but somebody has to do it. Why not mercenaries with bad attitudes like me? :)
At my last job (which I burnt out on pretty badly), I was a platform-level programmer and DevOps person for a robotics startup.
When I went home, I wrote instruction set simulators for 8-bit architectures. Why? Because why the hell not?
Now my side project is based on the database I have built at work (as an in house project). It makes it so much easier, as the hard non-coding problems are usually well understood, as I have thought about them before. I can pick it up and leave it without forgetting anywhere near as much. And it gets rid of the frustration I have at work, because the quality of the code is always ignored in favor of new feature that were needed yesterday. Same thing but with nicely written code.
These end up for the most part being some multiplayer HTML5 Tech Demos (where I can play with all the fancy new Web Tech I can't use at my day job) or really old-school stuff like doing Z80 Assembly for my very own old-school Nintendo GameBoy Jump & Run (along side with a custom assembler / compiler and toolchain) and digging in dissamblies of commercial games.
I can't imaging just doing "work" code, because that can be very exhausting at times. But I certainly have no problem staying up all night and getting that game up and running around 5AM in the morning just to scribble down some more ideas before I finally head off to bed.
I would expand this to say (just on personal experience) also have varied hobbies. They then challenge you in completely different ways allowing the exercise of one activity to be downtime from the others.
So do I. I think the difference is whether you expect other people to do the same or not. I'm very careful in which way I mention this, especially when it comes to potential hires. This is not what makes a good programmer, it's just something I personally get a lot of value from.
Why spend all that time working to make someone else rich?
"It’s one thing to suffer when you’re an obscure artist, or a spurned lover, or a soldier facing his death, or even Jesus H. Christ himself. But don’t suffer for a paycheck unless you’re the CEO."
There is some room between Jesus and your CEO.
That's generally how "passion" is defined. I can't count the number of job postings I saw that said they wanted people "passionate" about what they do. Where "passionate" was defined as being willing to work insane hours.
Not sure if it's like that for anyone else, though. Right now, I'm writing on HN because I'm taking a bit of a break after solving a production issue that was baffling me for the last hour.
This aspect (required rest schedule) was not very well researched. The only data I've got was collected by the IT and engineering companies, and they could only measure working-day-long spans.
Usually it's somewhere in between. I probably average around 5-6 hours of productive coding per day on any given project, not counting break times, but with very wide variance.
Also, although different projects aren't completely independent, I do find that after taking a significant break (read: probably multiple hours) I can work productively on something else for a while. For example, if I've got some main feature I'm developing but also need to investigate and fix some bugs, I might spend a few hours on the main work, but I might still be quite comfortable tracking down and fixing a few bugs later in the day. So quite often, I will actually split my working time into 2 or even 3 main sessions during a day, doing other things in between, though I have the advantage here of not being someone else's employee with standard office hours.
And of course there's meetings, lunch, etc breaking up the day as well.
2 hours of debugging a tricky issue, while having your tools fail you multiple times in the process, can drain me out for the remainder of the day. On the other hand, doing an interesting research/notes-taking or other non-infuriating work, and I might spend 6 hours without even feeling too tired.
On average, 4-5 hours of _actual_ programming (thinking, writing, refactoring, testing, documenting) is all I can squeeze out for a day.
Is this normal or am I not pushing myself enough? I'm not sure.
Creating an environment where you expect or force people to burn out is going to harm your business in the long-run. There are people who can thrive in that environment, but there aren't many.
But, contrary to the mixed message of the article, passion is a necessary ingredient for a great employee in any position. Passionate people are happier to wake up in the morning, come to the office, and do work that others don't enjoy.
Suggesting that liking your work is bad (as the title does strongly and the article does very weakly) is absolute fucking nonsense.
I'm not sure about the rest of your argument either, particularly "Passionate people are happier to wake up in the morning, come to the office, and do work that others don't enjoy." In most people, passion blows hot and cold over periods of time (because other aspects of their life affect their mood), but that doesn't mean they don't come to work and do their jobs.
In my experience (more than two decades of work as a software dev), curiosity might be a better indicator than passion.
What I've been wondering about lately, though, is if what looks like passion can all of a sudden turn on you and manifest itself as burnout? That's why I feel a bit wary about "if I like to do it, then it's fine". What if I'm just deluding myself, and the burnout ends up hitting me even harder?
My biggest problem though, which is obvious and doesn't require much self-reflection, is that I have a pretty unbalanced lifestyle.
I've always loved all aspects of developing software products: brainstorming, research, programming, designing, and marketing. Even the boring parts are so motivating to me that I can work for 20 hours at a time.
And because all of the ideas and opportunities around me are so enjoyable and exciting, I used to have a lot of trouble saying no. I tried to pile more and more stuff onto my plate, often justifying it by under-estimating the time it takes to do each one.
I eventually saw my less of my girlfriend, family, and friends. I almost entirely stopped drinking even a single drink because of the small decrease in productivity. I slept 4 hours a day in 2-hour shifts.
I hadn't burned out yet, but I became an example of the popular research finding that productivity is greater if you work at sub-burnout levels. In my case, I get as much done working on and off for 10 hours a day as I did working for 20. I get more sleep, though still little, and I force myself to take miniature "vacations" (sometimes an evening, sometimes a day or two) to focus on things other than work, no matter how much is piling up.
I'm still extremely busy, and I'm still not doing everything I want to do. But I'm more productive than I was, and I'm not missing out on all of the other things in life.
There will always be people who are willing to sacrifice everything for work. I think that's a small minority, and even in that minority, very few of them will end up happy in the long term.
I always like to say that no one lies on their death bed and says, "I wish I would have worked more and seen my loved ones, traveled, and relaxed less!" In fact, a recent NY Times article[1] about this exact subject concludes with a deathbed quote that supports the anti-burnout movement very well.
1. http://www.nytimes.com/2015/03/14/business/dealbook/when-emp...
But however you slice it, you cannot get past this one fact: it is an unnatural thing to sit in front of a glowing box for 4, 6, 8 hours a day pecking on little things with your fingers. This type of work has never existed before in the history of our species, and we were not made to do it. I think that's why we have to be very careful not just about the amount of time we code, but all the other things that go with it.
The job needs to be important. The code can just be the code. So if you've spent all week punching the clock and suddenly wake up early Sunday morning with an idea about how to refactor that solution to work 100x better? Sounds good to me. If you code 90 hours a week and produce crap? Don't need you so much.
The problem is that because it's so unnatural, all of us who do and manage this work confuse activity with progress. So the guy putting in the long hours pecking away looks like he's doing something of greater magnitude -- both to himself and others. But it doesn't work that way.
Have passion for the job and for the problem you're solving. Programming is just one of many tools you need to accomplish that. Other tools are a good night's sleep, exercise, interacting socially with others, and so on. But if you don't have passion? I really don't want to work with you. Life's too short to spend 40 hours a week doing stuff you are apathetic about or with other people who are just going to drag you down.
Passion needs to give way to humanity.
There are a couple of slogans that come to mind.
"Strong opinions, lightly held" and "intellectual humility"
Passion does not equate to inflexibility.
There's nothing inherently wrong with it, but if you're trying to make something out of nothing (which is basically what startups are) it can be incredibly demoralizing to the people who are killing themselves to make it work somehow.
Likewise, working large amounts of free overtime on someone else's project is for chumps. If you don't have a meaningful financial stake in the business and still do this, someone is taking advantage of you, and following the money/equity will quickly tell you who it is.
The only people who reliably win under those conditions are investors who are playing a statistical game and don't suffer any of the adverse personal consequences themselves.
Edit: Obviously this doesn't apply to genuine volunteer work, such as contributing to your favourite OSS project or helping out your kid's school or a charity whose goals you want to support. But I don't think these are the kinds of work we are talking about here.
.
There's something called "work to rule" that unions apparently do sometimes instead of striking, where they follow all the rules exactly and this causes nothing to ever get done.
I imagine being overly strict about your hours would have similar (but much smaller) effects. But, this should go both ways... if I'm going to stay 15 minutes late to finish something I'm in the middle of, I'll expect to be able to come in slightly late or leave a bit early on other days as long as the time more-or-less averages out.
This is exactly how I approach jobs, and it's made me happier. The most productive things I've ever done have not involved writing code, but rather improving process and helping other people do stuff better. "I solve problems. Computers are sometimes involved."
What other profession do people have this absurd obsession with passion? I've never, ever heard someone put down an excellent carpenter because they are passionate about sailing and not cabinets.
You can do something well, seek improvement in your trade, and be pleasant to be around without having to be passionate about "leveraging branded content for marketers to drive ROI in key demographics using your analytics platform", or whatever job you happen to have at the time.
No doubt there is a correlation between people who are passionate about something and people who are skilled at that thing. It seems likely to be a causal relationship, too.
But it's the skill that makes the difference to the end result, not the passion. A diligent, conscientious woodworker might make just as good a cabinet as someone who loves to work wood. And a highly trained, professional woodworker will probably make much better cabinets than an enthusiastic amateur who is just having a go in their spare time.
I would love to be proven wrong, as I am passionate about many things. However, I find that those that are more practiced are usually far better than simply those that are passionate. There is plenty of survivor bias in this claim, though. So I try not to use it as an indicator of anything.
Passion is the starting point to becoming exceptional.
Or it could lead to a dead end.
They might be good, but I wouldn't want to hire them if I had a choice. Why would I? It's just plain, unassailable fact that human beings are better at things that they practice at, and people practice things they enjoy.
> What other profession do people have this absurd obsession with passion?
All other professions should have it. Two people with equal levels of intelligence, talent, opportunities, etc. are going to perform completely differently if one is passionate and the other isn't.
I've seen it firsthand many times, and many HN users are living examples.
I'm a sought-after programmer because I've written dozens of web applications end-to-end. I love to do it, or I wouldn't have spent so much time and money on it in the past.
A friend of mine graduated from an amazing CS school, works at one of the big tech firms, and finds his job interesting. But he clocks out and never codes recreationally. I have literally thousands of more hours of experience than he does, and it shows when we talk. He also never gets to write the whole stack at his job, so he doesn't know anything about architecture. He makes widgets by consuming someone else's API.
> You can do something well, seek improvement in your trade, and be pleasant to be around without having to be passionate about "leveraging branded content for marketers to drive ROI in key demographics using your analytics platform", or whatever job you happen to have at the time.
Again, I agree you can be good, but you won't be the best. And the job you're describing sounds like really mundane, tedious work. (Programming is that same kind of work to a lot of people. I don't have delusions about its nobility or whatever. Comparing it to plumbing, as Jeff Atwood did, is pretty apt.)
The unfortunate thing is that not everyone is lucky enough to have a match between their interests and their job. Someone might be a once-in-a-generation puppeteer, but they have to get a day job as a bank teller.
So I'm not criticizing anyone for lacking passion, nor am I saying you should have passion for a BS job like selling AdSense. You can certainly bring an enthusiasm or an excitement about reaching higher goals to those jobs. But actually loving the work is going to make you harder to burn out, happier, and a better performer than anyone who doesn't love it.
Here's the thing, though. I have a lot of interests. I find my job interesting, but I also find out jazz and improvised music interesting, and I go to a lot of concerts. I find somewhat elaborate cooking projects interesting, and I set aside time for them. I find certain kinds of literature interesting and have tons of books I want to read and some I even am reading. I have writing projects (essays, not code-writing). I go out with my girlfriend. I keep a list of movies to watch. I have a wide online acquaintance I chat with.
And, yeah, I have some side-projects I like to work on or think about, but unsurprisingly they're mostly sidelined. I code when I'm at work; there's lots more to interest me the rest of the time. Does this mean I won't be the best of the best of the best? Probably in my case yes, but I'm ok with that. I'm also skeptical that it's actually necessary to be so monomaniacal to be a damn good programmer.
I don't understand this mindset. If someone is competent at their job and, ideally, personable company, what's the problem working with them just because they aren't Passionate(TM) about whatever you're doing? Do you think the people who build the roads, or repair the power grid after a storm, or stack the shelves at your local store are passionate about their work?
I think sometimes people who enjoy programming and also get paid very well to work as a programmer forget just how lucky they are. Most people don't love their jobs.
I forget this all the time, except when I'm programming. I really do love to code, but when I'm away from the computer and I don't feel like coding, I'm actually typically really depressed. At some points in my life, I was lucky to be able to say that I was still alive. Just because someone can get super excited about math and computers doesn't mean that their life is perfect and full of luck either.
Like the person you quoted said, life is too short to spend 40 hours a week doing something you really don't care about.
Both approaches can work, but it's not good to mix the two personality types within a team as their goals are mutually exclusive.
Being passionate about your work does not give you the right to be in charge, in programming or any other field. Yes, good programmers want to make a good product, but as the saying goes, sometimes the best is the enemy of the good. Shipping a product with fewer bugs six months after the money to pay for it runs out... usually doesn't happen, because the money ran out.
It also had a VB6 codebase that half a dozen contractors had hacked into the sort of unholy mess that even H. P. Lovecraft knew better than to try to write about.
This is no joke, people: every variable was global.
I certainly take over from my incompetent team leader, because his solutions are not well thought through. They will work fine for a week or two then need constant debugging and tweaking. I have the experience and knowledge to see better solutions. That extra knowledge doesn't come by itself. I constantly try to improve my ability. I read articles about programming techniques and tools.
The problem as you describe it seems to be that your managers did not hire a competent senior developer as the team leader, nor have they fixed their error since.
It is also possible -- I can't tell from just your previous post -- that you are relatively inexperienced and place a lot of weight on the modern/trendy programming techniques and tools you read about, while your team leader is more experienced and sees through the hype.
... why not? What if nothing else works?
> But however you slice it, you cannot get past this one fact: it is an unnatural thing to sit in front of a glowing box for 4, 6, 8 hours a day pecking on little things with your fingers. This type of work has never existed before in the history of our species, and we were not made to do it. I think that's why we have to be very careful not just about the amount of time we code, but all the other things that go with it.
Agriculture and medicine are unnatural too. So are exercise machines, standing desks, and memory foam beds. So are books, ships, planes, trains, and bicycles. So is math - thinking about math is very unnatural.
I've learned not to get attached to anything unless I'm in control of it.
During the day, I spend my entire time cranking the cogs on enterprise crap that really doesn't do anything other than top slicing some cash off some data flying around. I really don't care if the product burns in hell. That doesn't mean to say I don't do a good job, but I don't use the best of my energy on something I don't enjoy and aren't passionate about.
The company on the other hand suggest that passion is mandatory and that you're owned by them and you will attend every social event and be part of the "family", which a self professed narcissistic control freak manager explained is simply their control method and they don't give a fuck either. In fact everyone wouldn't piss on the place if it was on fire but hey everyone is making some cash and until that happens, who cares?
This is a recent development due to two separate medical near miss on myself and my wife. When shit gets put into perspective, your priorities are corrected. Before that I bought into it all and was the 80 hour a week slave. Now; 20-40 hours a week expended.
If it all goes to hell, as you say, smile, nod and GTFO, then do the same elsewhere.
Now for something I really enjoy, I spent a couple of hours writing some deduplication software for Google Drive in python the other day. It solved a real problem I had and was interesting. Note: I've even contracted out giving a shit about files to Google.
Anyway back to learning postgresql (something I am interested in) and watching the tomatoes grow on my window sill instead of cranking out Java EE model classes which is what I'm supposed to be doing. They can wait for the people who do care or have a large enough ego to pile-drive each other in the meeting rooms.
Of course, I get paid as well. This is nice. It lets me do something that I enjoy, live a comfortable life and continue to learn. I go to work to study at the feet of masters, and to have fun.
Then some loser comes long and tells me that passion is bad for me. Or that I should be working for myself. Or that my efforts just serve The Man and I'm somehow evil, and perpetuating an evil system by refusing to quit. Or some other crock of shite. People have been in my face and personal with this "help," and my response has been, and has been for 35 years, a solid: Fuck off.
Why do we treat programmers like children who somehow lost their way in life and need spiritual, career and financial advice all in one shotgun blast? Many of us know what we're doing.
I'm going to keep programming as long as I can. If I'm 75 and still writing code, that's great (I know several people who have done this). I love doing programming, I don't see a reason to stop.
It seems to me like poster is perhaps ranting against making people feel like they're defective if they can't muster the same fawning adoration for their work as colleagues.
Granted, I think the poster's views lean towards a more black and white viewpoint, but I think there's something to think about in both viewpoints.
Just because you're helping your employer doesn't mean whatsoever that they're necessarily taking advantage of you or exploiting you.
That's just some deeply cynical shit. You can do your job, enjoy it, care about the work your produce, and go home 8 hours later, all while holding a healthy attitude for your employer and at the same time yourself.
"Stack your money and gtfo" is just sad. I feel bad for you, if that's the attitude you bring to work.
To be fair the most interesting position I had was working for a giant company who's fortunes were amassed working on the most efficient ways of killing people.
Eventually the experience builds cynicism and you either end up accepting it, succumbing to depression or going "meh" and returning the compliment.
Healthy attitude is doing what matters which is what the parent is saying.
I assume your attitude is the same that the 1 year 10x developer has. I don't want top work with them any more (though I have to). It definitely prefer working with colleges who do have some interest in the technology.
Doesn't mean that I hang around doing unpaid overtime. It does mean that I want to improve my knowledge and skill-set, and become more valuable a result. It also means I produce better code that doesn't break as often, freeing me up to build more, rather than repairing the same dumb errors as last month.
But I kind of resent the gist of the point you're making: that if you're not going to be a top-notch wage slave, you better tell your employer up front. Says who?
Your statement implies we are supposed to meet some standard of professionalism--a standard we have no say in, I might add, and that employers often excel at defining--and that we owe a duty to others to signal when we don't meet that standard. That standard is precisely what the author of the piece is attacking: the idea that if you are normal and human, you aren't good enough.
Enough with the guilt and the elevation of tech work into inherent value and meaningfulness. Most of us do what the goddamn boss says. Leave that crap at work, and never stop pushing for less work and more pay. After all, they're never going to stop pushing for more value for less money.
Fair enough if you work in McDonalds.
Personally my work is funded by taxpayers, and some of it will hopefully cure rare (and not so rare) diseases. Its pretty disrespectful to everyone involved (tax payers, colleagues, patients) that I would take the money and put in minimal effort afterwards.
I've met developers with this attitude, they power through work and are out the door on the clock, but they don't work over 40 hour weeks. The reason I say not to lump them with the 1-year-10x crowd is that they still push their technical skills in their own spare time and explore that passion off the clock, and were every bit as effective as the folks who did longer hours and pushed their skills while in the company office chairs.
I suppose one can be passionate about programming without setting oneself up for exploitation. But how many of us are? How many of us lose ourselves in technical problems as an alternative to living more full, self-actualized and self-aware lives? How many of us tell ourselves we're passionate about code to explain away the shitty work we have to do?
> i think in most cases it's harmful to give one single
> iota of a fuck about whatever it is you do for work
> unless you work for yourself. 40 hours of every week
> of your life, at a minimum, is being used to further
> someone else's goals, and you have no choice in this
> because you have to survive.
I agree with your sentiment for the most part. For many (most?) jobs this is true.But software development feels like a potential exception to me.
Being passionate about your boring-corporate-CRUD-coding job can do more than further your corporate bosses' goals. It can be self-investment as well. By improving your own craft by "passionately" coding for your corporate masters you can put yourself in a position to command a better salary, get a job you actually like, start your own business, etc.
Of course it's very very very possible to passionately... slave away for somebody else as a coder without furthering any of your own goals.
That is the day I decided we should never get attached to company and that in 15 years of experience comes as job is just a job. So do what is asked, get the pay check and get out of work. And if you like coding and learning do it for your growth if company benefits out of it then good, otherwise continue your path.
Programmers who consistently work over 40 hours a week are enabling management to misrepresent how much work can be done over a time period and are covering for management's flaws, and paying for it with their uncompensated time.
Management has perpetuated the mindset that if the tasks can't be completed with the resources _they_ have allocated (including time) then the problem is a lack of programmer skill, and insecure, young, and inexperienced programmers pay for it with their time and ego.
Experienced programmers who want to take advantage of this will trade their time for respect, pride, and influence.
Management should respect programmer's free time, but doesn't have to as long as there are programmers willing to sell the others out by giving it away.
Passionate people don't want to work for people who do not share their passion. And they have opinions, which they feel strongly about. If I were an employer, faced with the choice between the person willing to put in 40 a week doing whatever damned fool thing it is I tell him to do, and the one who will voluntarily burn 60 or more per week frantically rewriting the entire code base, trying to make it beautiful, and constantly pushing back on everything, I know which one I'd pick.
You're not going to get a person willing to work 60 a week just following orders, unless they are hopelessly naive or downright stupid.
I think that the author does have a point, and I agree that you shouldn't sell yourself off as a slave just because you're passionate, but that point is being pushed a tad too far.
There's nothing wrong with enjoying your job.
But he is right when he describes the idea of 16 hour days as obsessive. That is unhealthy and it leads to mistakes, some business can tolerate it, others can't ymmv.
I work as a web developer. In my off-time, I like to play with technology. Usually, that involves writing code. This code is not meant to be perfect or useful for anyone else, so I never share it. It's my own work of crappy art, made for the fun of writing it.
There's definitely a difference between that person and someone who does the bare minimum required to get the job done because they're not that interested. Your curiosity will lead you to discover new ways of doing things, to keep an eye on how others are doing things, and to persist when you can't immediately solve a problem. You'll write better code because you're interested in discovering the best ways of doing things. But you needn't be obsessive.
We have seen employees who don't initially have that curiosity, and their code generally isn't very well designed and doesn't improve. It doesn't matter how many hours they work. If someone can succeed in sparking that curiosity in them, then we see their code improve.
What you don't want is the attitude of "how I code right now is fine for me, and I'm not really interested in learning better ways." That's associated with "ho hum, it's just a day job" but not everyone working standard hours has an unhelpful attitude like this. It's quite possible to work 9 to 5 while being interested, curious and proud of good work.
Well, of course you can't _say_ that. That's the whole point of the article: that "passion" is a euphemism for the signaling companies do. We want passionate developers, and we get to define "passion" for you.
What makes hiring so hard is that it's a gamble. Human beings don't come with specs you can evaluate to know whether or not they will help or hurt your mission. But, you know what, companies don't come with specs that will tell an applicant whether the job will enhance or stifle one's life. I wish we could stop playing these word games that imply there are rigid patterns to what makes a successful employment relationship, and instead put that energy into getting to know human beings as they are.
You need to find people who can perceive the workings of the group and company as a system, then actively avoid pathologies and improve the group as a whole. Most groups aren't solely composed of such people, but the ones that work well have enough of them to regulate group interactions smoothly.
What makes hiring so hard is that it's a gamble.
It wouldn't be if there was a way that we could try people for a couple weeks, then six months before hiring. Almost anyone can pretend to be nice for 6 months for tens of thousands of dollars. Longer than that, you're either getting a genuine glimpse, or there's a darker talent at play.
And yet I can only code for two hours maximum a day. For the rest of a day I'm mostly goofing (a.k.a. "researching"). Sorry, Boss.
Chances are you won't read about that because it would make for pretty boring stories. Regular, progressive learning doesn't sound as cool as caffeine fueled 4-day programming sprees.
Then again, people with a truly passionate temperament exist, which is usually great to have around and brighten the mood, but doesn't tell much about actual programming skills.
Being obsessive about something can be unhealthy in some cases, but I'm not sure if that's what the post is about.
Because the author talks about himself in the post, I found interesting that he defines himself at the bottom of the page as "SF author, software developer, occasional blogger. Buy my books and help me quit my day job.". So his passion is perhaps being a SF author and wants to quit his day job, which makes me think he's not very passionate about it.
Well, that's all right. Like being passionate about programming.
When I leave at 5, I don't worry about work. I go home, have dinner with my family, play with my kid, etc. Then, while I'm watching TV, I sometimes sneak in coding on some side project or open source fix, writing a blog post, or organizing a meetup. This doesn't make me a fool or bad at my job. If anything, I'm continuing to develop and retool to keep my competitive edge so I can keep getting paid well for work that I don't hate. That's smart.
I've worked with guys like this, and they drive me crazy. If you hate your career path, that's a you problem. Don't make it mine.
If you need to get more done, you have to be efficient about it.
I think that "programming" can be as broad of an over-generalization as "you spend too much time on the computer." Don't mistake the glyphs on one screen for being the same to me as those you saw a moment before. At any point you may find the same machine that causes me to work to be used to learn new things, or to adventure into new worlds.
I understand that not everyone is built like that; but don't set up a false premise that drawing a parallel to old world thinking somehow applies to all of us.
Am I special for being engaged with my job and having a good work/life balance and having a good employer that also allows it? No, I hope not.
Am I passionate about programming? I don't know. I hope I am.
Do I focus on code for 8 hours straight? No. I can't do that. I would burn out.
This makes me think that I'm a fraud sometimes. I'm not talking exactly about the imposter syndrome. I do see my achievements. But I also see that I don't always put in the "8 hours" I'm supposed to put. Sometimes my brain just stops functioning, and I have to distract myself with something other than coding.
The author is definitely establishing a false dichotomy here. Just because you would enjoy doing something for 16 hours straight, doesn't mean you have to.
If cleaning toilets paid $25/hour I'd still be doing that. Somebody has to do it.
A word's etymology has no bearing over its current usage. It just tells you where it came from. Assuming that the original Greek meaning is somehow "correct" and the modern usage is an adulteration is a prescriptive fallacy.
You work so hard that you suffer, you are so devoted to a cause that you suffer. Passion isn't free.
Passion may not be controllable, but insofar as it is, maybe some caution is advised around it? Especially when "passion" is becoming a job requirement, and people are being asked to find a passion.
I've seen lots of home pages and twitter summaries claiming "passion" about the oddest technical sub-areas. "Passionate" about web standards? "Passionate" about DevOps? Maybe so, but make sure it's a price worth paying.
Did Michael Jordan go home the second practice was over? Do you think Thomas Edison only put 8 hours in at his lab? Did Linus only work on Linux for 8 hours a day? Steve Wozniak has a story bout staying up 4 nights in a row working on the Apple computer.
Should you burn yourself out on 20 hour days because your employer forces you? Hell no. But if you truly love something to allow it to complete takeover your life, that could be the way to create something very special.
Heh.
> Should you burn yourself out on 20 hour days because your employer forces you? Hell no.
Agreed.
If I'm not mistaken (been a while since I read the book), Michael admitted he would get up early to practise, but before school, not before normal practise. When he turned pro, he would be (according to the coach) the most hardworking guy there, but he would leave with the rest of the team and do whatever he had to do.
Can't remember where, but recently read that pro football/soccer players train on average 26 hours per week, which seem about right from reports I have from friends that play. Boxers also practise at around 3-4 hours per day as well.
We're talking about the best. Even in pro athletes there is a huge margin from 'good' to 'best'. Peyton Manning (NFL quarterback) is known for studying hours and hours of game footage.
http://nypost.com/2014/01/30/peyton-mannings-film-study-obse...
A lot of folks here do 8 hours in the office, then 4 hours at home with something else (side projects, carpentry, sports) as well, but I would be very astounded if (for long stretches, not for a week or two in a training camp) he would be devoting more than 8 hours/day to practise.
From the article: 'Twice a year, Manning would show up with a garbage bag filled with the VHS tapes he was done with. Harrington said every one had been watched.'
I know it was probably hyperbole, but even if we assume 50 tapes per bag, with 3 hours per tape (both generous assumptions), that gives around 300 hours per year, or one hour per weekday. Tyson was also an avid boxing student (early career). A normal day for him would consist of 3-4 hours practise and 1-2 hours watching tapes depending on how close to a fight he was.
ps: Again, I don't know much about Manning so maybe he really is different, but growing up I was involved and trained with various professional athletes in various sports, and what I'm saying is based on my observations of them.
The author is confounding two things..having a crappy employer who pushes for people to work extra hours and truly being passionate about something like programming.
As I understand it the case studies do not bear this idea out. The masters in most competitive fields follow a schedule more like three separate two hour practice sessions a day.
I mean, Carl Lewis trained something like 30 hours a week in total in the year leading up to his world record.
The Carl Lewis point is totally moot because some athletes are so great that they hardly need to train. When I was in high school, a 15-year-old kid came in and did 5 reps on the bench press at 200 lbs. He'd never lifted before in his life. Not only that, Carl Lewis is just an absolute freak of nature. You can't say "Carl Lewis did this, so it works for most other people, too."
It also doesn't matter how many hours masters in competitive fields practice. They may be working, so they can't practice. They may have diminishing returns from practicing and simply want to live their lives. They may be at the limit of their talent.
What we're saying is that a developer who codes for 8 hours at work, then comes home to code some more, is going to be better than one who doesn't. It may take a while, especially if there's a big talent gap, but eventually the practice is more important than the innate talent.
I already spent 8+ hours a day becoming good enough for me. Passion didn't get me hired. Competence didn't get me promoted. I spent far too long at a job that actually punished competence.
If you have already achieved mastery, it doesn't even take 8 hours a day to keep your edge sharp and honed. It just no longer takes as long to get the work done.
I like to see passion in younger folks. It's cute. But if they don't get seriously jaded by the time they reach the age I am now, I question either their experience or their intelligence.
If you still have any passion left, and you want to keep it alive, make sure to invest it in yourself, rather than give it away to an employer. You really don't want to see what they will do with it.
I've been a nursery grower. I've been a produce grower. I've been a landscape contractor. I've been a laborer on a concrete crew. I've been a delivery driver (twice). I've been a surveyor. I've worked in road construction. I bet I've moved more large cactus than anyone in Arizona. I've moved the largest organ pipe cactus ever moved in Organ Pipe national park. I have been a cowboy on a large cattle ranch. (I wore tennis shoes to work and no one cared because I put out.. and then some). I worked processing samples in a research lab. I planted 10's of thousands of acres of forage/ rangeland grass. I have been a telemarketer. I've been an equipment operator. I worked at a 5 star resort taking care of pools. I built three barns. I planted thousands of trees with large crews. I worked on a grape farm one summer. I lived in the grape cooler. I did all this stuff before I was 40. Some I did for a short time, some I did for years. But I did it all well. I thought about it, dreamed about, loved what I was doing even when it was hard, tried to find better ways to do it, and above all... I did it. My dream as a child was to work at a doughnut shop, and I plan to not die without realizing that dream. (Maybe when I'm retirement age). Work is love and if it isn't for you... well that's a sad state of affairs. There is no low work, all productive work is noble. People who think otherwise are puffed up and deluded and frankly foolish.
I started programming about 4.5 years ago. Now I work as a web developer. And... for where I work, I'm the best by a long ways and I haven't even been there a year. I maintain some applications I have written for clients in my spare time and am currently working on a pretty large application tracking milk production for a dairy coop. I learned to speak Spanish. I taught myself Python. I taught myself HTML, CSS, JS and SQL. I know Linux. I know world history. I have an unused college degree. I took several graduate level statistics classes. I can tie many kinds of kinds of knots and braid a whip. I'm an expert tree pruner and a pretty good cook too. And not a half bad fisherman. And this is only a small part of what I can do and have done.
Do what you love, don't give a crap, find what is important and focus on it and resist nonsense at all costs. Tell them (nicely) to fuck off if they interrupt your production or are keeping you from doing/getting what you need to get by (food, sleep etc.). Usually, if you are worth it, they will slink away and let you continue your business. Leave when the excitement dies or its time to do something else. But most of all... always be passionate, always push yourself a little, push others around you a little, always live your work. That's my philosophy and I don't see it being any other way.
This guy has a crappy loser attitude. Remember... somewhere, someone is passionate or was at one time. That's how the pyramids got built. Be passionate or suffer hauling blocks on the end of a rope. That's the choice. Sorry for the long rant.. but people like the author drive me nuts.
Most of the people I know that stay 14 hours a day at work are office drones who don't go home because that would mean having to spend time with the their wife and kids. Or just because they are bored if they are not in front of a computer.
Others would love to go home, but they don't have the guts to tell their managers that "the work will not be finished today" and that they have things to do after 6.
There was a distinction for me between coding for somebody and coding for myself. The latter always being more enjoyable. This is why I think so many programmers work on side and open-source projects.
Way I see it, it's always going to be a struggle between what the company wants (more for less) and what the employee can produce. It's like when you hire someone to do something for you - you expect them to do the best job, on-time, for the best price.
Passion is writing code knowing that it's not perfect but another step towards becoming better.
What really is crap code anyways?
Also, I don't understand the use of images here. Your first one is basically the equivalent of a cliche speech starting with, "The Marriam-Webster dictionary defines passion as..."
Not to a lot of managers and bosses, it doesn't.
My team has weekly rewards for the people that work the most hours. Several people on the team regularly claim to put in 60-80 hours.
Personally, I feel that those same people are making the work environment worse. One of them in particular has created over 200 Bamboo build plans (and the corresponding deployment plans to 7+ environments). It's an unmaintainable mess with little-to-no logic involved. None of it is re-usable -- hence why there are over 200 build plans.
That guy gets praise several times a day for how hard he works.
The bosses don't care about how much passion (in our sense of the word) their employees have. They care about how much passion (in the "work 80 hours a week" sense of the word) their employees have.
http://www.u.arizona.edu/~rubinson/copyright_violations/Go_T...
Coincidence?
Considered Harmful considered harmful[1].
http://en.wikipedia.org/wiki/Considered_harmful
Considered harmful is a phrase used in the titles of at least 65 critical essays in computer science and related disciplines. It was popularized by Edsger Dijkstra's letter Go To Statement Considered Harmful.
There's another type of "passion" where it's equal to "extreme interest in subject matter" or "pursuit of intellectual puzzles".
Since the author uses "passion" as "time wasted", his view of programming comes off as a white-collar version of bricklayer. Don't lay any more bricks and cement than is necessary for the construction foreman. Punch in the clock at 9am. Punch out promptly at 5pm. It's all about time.
See the relevant phrase excerpts:
> put in a solid eight hours
> spending twelve to sixteen hours a day in the office
> forsake everything else to spend more time coding as a badge of honor.
> programmers who spend all their waking hours on the job
> working several weeks of twelve-to-fourteen hour days with only Sundays off
> spend all night on the job
> Put in a solid eight hour day, and then get the hell out. G
>, once you have worked a solid eight hour day, leave the office and silence your phone
>, and ignore your bosses when they bitch about you only working nine-to-five.
Being driven like a slave for 12 to 16 hour days is a legitimate gripe but harping on the word "passion" (or the fact that his superiors label it as "passion") is blaming the wrong thing.
I concede that there are many enterprise companies who need trying to recruit "passionate" programmers to maintain boring CRUD apps. Sure, a lot of these programming jobs are soul-crushing bricklaying work. Their use of "passion" is self-serving and rightfully triggers a jaded reaction.
However, a lot of startups need "passionate" programmers who genuinly enjoy algorithms, solving graphs, etc that are relevant to the companies unique technical challenges. Yes, even this type of "passionate" programmer will tend to spend more than 8 hours on the job. It's because they like the work they do. Jony Ive at Apple spends 12 hours at work because he's passionate and not because he's being chastised by Tim Cook. (Jony Ive is already a multi-millionaire and can quit if he feels he's being exploited.) That's the kind of passion many hiring managers are looking for and the author's one-dimensional essay ignores it.
Never saw it otherwise, not even in startups.
Yes, some of the other job posts do use the generic "passion for excellence" and/or "passionate inspirational working environment". These might be HR doublespeak for "please give up your life for us to exploit". I understand the skepticism from listings like that.
My point is that "passion" mislabeled in my 2nd paragraph does not invalidate the fact that there are people genuinely passionate about topics and that companies are genuinely trying to find them. This is one reason why the word "passion" persists in job discussions. If we were a new company trying to recruit a "passionate industrial designer" like Jony Ive what word would we use instead? What word besides "passion" should we substitute in this Jony Ive article[2] ?
[1]https://news.ycombinator.com/item?id=9127232
[2]http://www.businessinsider.com/how-apple-design-guru-jony-iv...
Dive deep enough into anything and you'll find the Computer Science. Diffing trees is an integral part of React and other virtual DOM implementations.
Profiling and finding out where time is being spent in your application can lead to you having to choose data structures and algorithms which have more favourable Big-O characteristics.
There are also a lot of interesting meaningful problems that desperately need to be solved by creative, capable people, and if your job is to work on one of those, then great, but for many programmers, those kinds of problems are the ones we work on on our own time, if we're so inclined. I think it's strange that the article didn't make a distinction between code-for-work and code-for-fun.
This is partially an artifact of history and partially conflating all kinds of 'work' together. We're living in interesting times where there's a shift of what's valuable from simple mechanical and repetivtive skills (industrial revolution type jobs) and knowledge workers and digitial creatives. We have a unique and amazing opportunity, where it is our collective creativity that is what's valuable and not merely our presence or ability to be turn a mechanical crank.
If you follow this advice, and engage in purely a value exchange for the 8 hours a day in something you don't care about and have no real interest in, you're selling 8h/d * 5d/w * 50w/y * 40y = 80k hours. That's a hell of a lot of your life to give over for merely a paycheck, especially when you don't have to. It's that last part that makes me sad, we are in am incredibly unique industry and point in history (which may not last) where you can find a job that engages your whole self while simultaneously making a good living.
I recommend "Drive" by Daniel Pink, about how to think about human motiviation and the opportunities that we currently have to reshape work. Where things like Autonomy (being self directed, choosing your hours and what you work on), Mastery (becoming great at something), and most importantly missing from the rant in this article, Purpose are what really lead to greater happiness and overall better results.
"Purpose" was why I left a high paying job where I was respected to spend 10 years starting companies that (until very recently) meant I made radically under what I was "worth". Would I trade those years? Hell no. Because even if I hadn't had the recent success with Smarterer, I knew I was working towards a bigger and more important purpose, one that could really make a dent in the universe. Being able to do that, and still eat and satisfy all my basic needs is a pretty amazing thing, and one that's totally missed by a rant like this.
When I think about passion, and look for passion in people I want to work with, I look for people who care about what we're doing. Because I don't want "butts in seats" I want people thinking creatively about how we can change the world together. That could mean a day of thinking deeply without banging out any code at all. It could be a crazy "in the shower idea". It could mean long hours one night to hit some big milestone. It also means that if you've been pushing hard on something and you need to take days off to recenter, I trust you because you care about what we're doing together.