Is There Any Room for the Not-Passionate Developer?
philippe.bourgau.net
philippe.bourgau.net
I have ideas to explore (Nothing I'd ever want to turn into a business, perish the thought), but I just... can't find the motivation to spend more hours doing what I already spend about a third of my life doing. I enjoy reading articles and the like, sure, but if I wanted to work on side projects, I'd need to take extended time away from work to "reset" and get into something.
Does this make me destined to fall behind? I'm hoping not, but given how many people talk about needing one's job to be their all-consuming passion, to be something they spend spare time and weekends on... I'm not always hopeful.
If you take coding at home serious as you (presumably) do at work, like following deadlines, doing stuff you don't enjoy, stress yourself out, then it is a very unhealthy expectation.
Just sometimes you need to get focused and finish some ugly small issue that prevents you from actually shipping. The feeling of shipping something that works usually beats it all at the end.
I think the best that can be expected is that you do your work, do it well, and never stop growing. You don't have to dump time into coding outside of work, just don't get complacent. That's assuming you don't have crappy leadership, in which case you may want to consider a different team or company.
As an example: I know a guy who's about to become a 3rd level developer at [large, popular software company] at the age of 28, which is a pretty big deal from a career development perspective. I don't think he's touched a line of code, or a single technical article, outside of work in the 5 years he's been here. He regularly works 25-30 hour weeks. He's just smart, puts out good projects, and is productive when he needs to be.
I work where we fill out time sheets every day detailing what we worked on hour by hour (in part and in fairness also for billing reasons). It is counterproductive as I constantly stress about every minute I use on a task and worry I am taking too long. The results I see are those of programmers trying to please project managers and billing accounts, not good products that are optimized. Nobody seems to have time make something good.
The 30 hour guy probably isn't much smarter than the rest of us, he might just have the freedom to create with a relaxed mind. Stress apparently blocks creativity.
"Stress apparently blocks creativity" -- most certainly does.
I know not everyone can maybe afford to do this but this is something I'm never going to put up with and I left after only 3 months purely out of frustration without even having a new gig. (Was quite suprised to be approached immediately by a subsidiary of a well known online auction house, where I'm still working for 2 years now.)
If you don't have a family (wife + kids) be bold and don't put up with such inhuman conditions. Developers are high in demand and this is the time to use the opportunity.
I doubt any sane developer would come up with the idea of a stopwatch plugin on programming tasks. But I know some PMs who would. It is scary how being well-spoken and technically oblivious leads people to success in our industry.
Abuse is having the shit kicked out of you for answering back. Or being locked in a room for 48 hours without food or drink because you made a mistake. Or having your passport taken away and being forced to work for 18 hour days, 7 days per week, with no holiday and no pay.
All these things are happening in our world today, and equating them with programmers having to keep timesheets is ridiculous. It makes us sound like a bunch of spoiled babies who cry when we aren't allowed to play all day. So please use a different word than 'abuse' to describe something you prefer not to do at work.
In my eyes, it's relative to you or the situation in which you are in. For me personally it felt a lot like abuse and utter lack of trust to resolve using time sheets for a permanent position (not talking about freelancers and contractors).
Also why do you think that we are spoiled? I'm so fed up of people making software development look like a piece of cake and so easy. I tried to help some of my friends start with coding but after couple days they were quite overwhelmed and thought it was not so straightforward as imagined or as it looks to be. I'm also not talking about creating a hello world HTML document.
I'm definitely not a rock star programmer but I try to be solid one with hands-on mindset. I have 5 1/2 years experience working as a front end developer and there is still so much to learn and to improve on. Software development (especially web) is a field where you need to stay up to date and keen. We might not be exhausted physically but it's much harder to recharge and relax your mind.
This is why we shouldn't just put up with everything (timesheets is only one example of many) for the sake of having a job at all (because there are so many unemployed people right?). There are people who want to play safe and I'm fine with that but I learned that "no risk no fun" is true.
Update:
I want to add that I'm always grateful for what I have and don't take anything for granted. However I also know that I don't get anything for free unless you work hard for it.
Now, whether you choose to put up with it or leave, that's a different question. Given a choice, most people would choose an employer who gives them more latitude, as opposed to one who is monitoring them that closely. But that's an argument based on practicality, not morality.
2. Why point out that it is "easy"? Is it so you can feel superior to people who might not know this?
I might spend a couple of hours trying to debug something screwy with my dev environment, or googling around and thinking about what the solution to a problem, that doesn't create more tech debt, should look like. I might spend time dealing with feedback in code review, some of which may be beyond the scope of the story or not immediately perceptible by a stakeholder, but it's work that needs to be done nonetheless. Project managers are not developers for the most part, so they have to trust me on that.
When you hire someone to do tasks that you could do yourself, then asking them to log time is reasonable since you know what needs to be done and what the timeframe should look like. Asking a highly skilled employee such as a software developer to log time is an insult to their judgment and a waste of their (and your) time. You can't gauge my productivity from a time log.
This quibbling over the term 'abuse', like we should all just be thankful we're not sex slaves or PHP devs and leave it at that, is completely irrelevant. Fine, it's not abuse. It's just antagonistically treating your employees like untrustworthy delinquents. Is that better?
But bandying around words like 'abuse' based on those likes and dislikes is akin to crying wolf when you see a pussy cat. It devalues its meaning for those cases where people are genuinely suffering and need help.
However, English isn't a programming language.
https://www.youtube.com/watch?v=0rYT0YvQ3hs
By devaluing the word, when we hear people talking about 'abuse' we will assume they're just whinging.
so if it isn't third-world violence, then the word 'abuse' in inappropriate?
It's worth pointing out that a lot real and extremely serious abuse is not limited to third-world countries. For example, the USA has an estimated 60,000 slaves.
[1] https://en.wikipedia.org/wiki/Global_Slavery_Index#Controver...
This HN discussion is not framed in a legal context, so not satisfying a legal definition of "workplace abuse" doesn't mean the word is being used inappropriately.
ON TOPIC: I'd definitely call a timesheet "a workspace abuse", yes. Most of the programming is a very creative work. Do you pester a designer for a complex image for a PR campaign? Do you go to him/her on the top of every hour and ask "what's up, you done yet"? Do you check a building's architect monitor every hour?
I am currently having a subtle and a very hard-to-detect bug in an e-commerce shop I am maintaining. It leads to losing a few orders each day (out of 100+). The people I work for are wise enough to understand that pinpointing the cause of the bug is 90% of the work and yes, it may take days -- days during which I add more defensive coding on several places, increase logging statements, introduce several new integration tests, and what not.
If I was forced to use a timesheet in this situation I'd honestly wouldn't even know what to say in it on the top of every hour. I would strongly resemble the private detectives in those noir animations I guess. "Currently chasing clue X" -- "No wait, that's not it. Damn it, I am out of cigarettes. I must persevere!" -- "The owner of the bar knew nothing. Damn. Moving on."
Would you want that in timesheets if you were the manager? How would it help you?
One of the biggest problems with estimation (a frequent HN topic) is not knowing how long it took to do something. If you don't know how long it typically takes you to do a task, how the hell can you estimate how long it will take to do a variation of that task?
Same here, and I know a bunch of other people like this as well. It's just a matter of perspective. When you read such forums and similar, you often read opinions and insights of people who are the top of the field. So it's easy to lose the perspective of where you stand compared with the rest of your class or some other cohort.
>>> He's just smart, puts out good projects, and is productive when he needs to be.
Smart is the key word here. More hours of work does not necessarily mean better work. It shouldn't be about working longer, it should be about working smarter.
At the same time, writing good code is only small part of his success, I guess. Managing to ship top quality products without hand holding, making sure you are productive without anyone breathing down your neck, are all important and not something articles will teach you (usually).
The company I work for now has problems managing customer expectations and controlling scope creep, so naturally rather than address the real issues the PMs have decided it's easier to stick their noses in the CMMI manual and send the software development team straight to process improvement hell.
I've reached the point where my motivation is so low it takes me a week to complete a task I know I could have done in a couple of hours if I could just reach down and muster up a little bit of give-a-shiat.
I need to get out of this place, but I rather doubt any of the other major employers around here would be any better (I just interviewed at one that looked like it would be an even worse situation. They declined to make me an offer - the interviewer must have picked up on my shock/disgust when he described their development processes to me).
Now, my side projects are seeing more love than ever before, probably because I need an outlet for my creativity (which my employer is most definitely not providing). One thing age and experience has given me is the ability to see my own projects through to some level of completion (as complete as software can be). My younger years were full of half-completed projects :)
I'm working on something I hope to turn into a SaaS product, maybe that's the escape plan (If I'm really lucky).
And the truth is that most of the developers need that. Some can be assigned a relatively abstract problem and they find the solution (by finding who to talk to, etc). While some needs a fair share of requirements gathering etc done for them, or they struggle to convert a large milestone to reasonable small tasks. That's ok, you just need to recognize it handle accordingly.
>>> any of the other major employers around here would be any better
major as in employing a large number of employees? Sometimes you can find happiness in a company of a dozen employees :)
RC, home automation, every other silly thing you can make or teaching/volunteering at various places that do coding tutoring (schools, community centers, or even your own kids or family) might help you with that.
That said it only works if you like it, if you already considering programming to be a hobby, it's ok not to.
Not every profession needs to be also a hobby, and you don't need to spend your free time on your profession to be good at it.
I know plenty of developers that don't like technology that much and pretty much dislike IT related stuff specifically, and I know plenty of developers that spend every weekend cloning some project from hack a day. Both of these groups consist of good, lesser, and poor developers and so far I haven't really seen any substantial statistical proof that hobby programming enables you to become a better developer.
There could be extreme cases in which being a "super weekend hacker" gives you some advantage, especially if you are a single digit employee at startup and you need to hack everything together like crazy without worrying about the finer details, like documentation, maintainability, performance and all the other things that separate a hack job from a product, if your entire professional programming career is about flying solo and pushing out MVP/POC's then effectively one could say you are being paid for a hobby.
But if you are a developer at a large company with an established development life cycle and methodology the small hacks you pick up from your hobby would not really be relevant, hacking micro services on the newest SBC over the weekend won't necessarily help you work better as part of a team, won't necessarily help you write better documentation, and won't necessarily help you adhere to strict coding practices.
He built a video codec implementation by himself in 3 months.
At work? I can't even fathom a working environment where I could work on anything for 3 months (hell, even 3 days) without a panicking supervisor asking why it wasn't done yet and whether I could help out with this other thing that was a crisis and why can't we just buy something or better yet use an open source solution because we need results right now.
Plus of course a lot of trust that people who were known to do good work could be left alone to deliver it.
(Part of being a premium consultancy was setting reasonable expectations to the client and refusing to even offer a crap job at high speed. Takes a lot of faith in your standards and customer funnel to do that, though.)
Edit: Over time, 3 of my side projects allowed me to move country, take a 5 year 'sabbatical' (for me that mostly consisted of programming and repairing old 70-80s computers and developing new projects) and basically do whatever I like. If only for my 'main job' I would've not made that happen for a while (note; this was 8-9 years ago).
Us modern people have it incredibly easy with appliances doing the bulk of the chores home.
(again I think I need to write my "I was a 10x programmer until I got chronic fatigue" post)
>The gamers weren’t just Softdisk guys anymore, they were, as they called themselves, the IFD guys, co-owners of Ideas from the Deep. Softdisk, as a result, took on an even greater pallor. But it was a day job, a job they all needed since there was no real money coming in yet and no guarantee that it would come in at all. They decided, then, to continue working on titles for Gamers Edge during the day while they churned out Commander Keen from the lake house at night.
>They became all the more efficient at "borrowing" the Softdisk computers. Every night after work they’d back their cars up to the office and load the machines. The next morning they’d come in early enough to bring the com- puters back. They even got a little cocky about it. Though the machines were top of the line, they wanted some minor adjustments made..."
IMO, yes it does, but only behind a tiny sliver of developers. You can still have an excellent and rewarding (professionally and financially) without putting in the extra effort and without the "true calling" that some devs have (and many more blog about having).
If you don't have the passion to spend time on nights/weekends coding projects, don't do it. You'll still do OK. You probably won't do quite as well as someone who does, but excelling at work is only one aspect of a happy life. (I think it would be foolish to pretend though that someone else equally talented who has greater passion and puts in 50% more effort won't have better outcomes in their field over a large population study.)
I work a 35 hour week, and if you want more out of me, pay me. I'm good enough to be worth a wage, I'm not about to undermine my own health and the hiring market to satisfy some fad about over work.
Just look at the games industry. Overwork is endemic. The only way its sustainable is by creaming off a new layer of young star-eyed programmers each cycle.
In areas that are not as glamorous, its just not possible.
I do not derive my self worth by how many hours extra that I put in at work.
No one is rewarding you for getting stress or burn out. It's true that management will often reward those who stay late and "put in the extra hours", but in the long run I don't see it being worth the strain on my mental health.
I am young, 20-something developer, but i already conciously slack off and don't give a shit at my job, doing just enough to not get noticed/fired.
How do I take the next step of working less hours? I would like to work at most 10 - 20 hours per week, but still retain my full-time, 40 hr/week payrate. Do you have any advice for me? Thank you.
I don't slack off, and I do care about my job. What I don't care about are deadlines set by random, or unwillingness to adjust deadline if issues show up along the way. I view it as a "I can be just as inflexible as management" sort of deal.
Of cause it helps that I'm not worried about losing my job. There's plenty of job for developers around here.
I find a scenario where I work more than my 37 hours for free inconceivable. If the deadline was missed then the planner needs to plan better next time. Even if I'm paid I don't think I've ever exceeded 42 weekly hours in my life. Nothing is as important as a good work/life balance.
Working overtime is a subtle lie that many people don't seem to see.
I see some colleagues working on Sunday until 11.30 PM because they have a presentation on Monday. Seriously? I am sorry, but no, it didn't work out, because you didn't give us enough time/because the communication wasn't clear/because I couldn't figure out how to solve this network issue before, which became a blocker/because I can't still figure out why the hell VPN doesn't work yet and you the IT guy is on vacation. If there are blockers, if there are issues, don't make them yours. I work overtime when seriously needed, but then I want that amount of time back - either as hours off or as more money. Otherwise, find a code monkey, they are cheap, don't like to think, and "work hard and have fun".
I've had to intentionally recruit "boring" developers, who weren't passionate at all. They just get on and do their 9-to-5 because it's their job. Without their help, we'd have lost most of our A-players due to a lack of sufficiently interesting work.
Relatedly, there's a difference between being motivated and being disciplined. Passion and motivation are essential wherever innovation is required, but otherwise discipline is what gets the job done. Turns out, in any team larger than a handful of people, you need a mix both.
Do managers spend their off-hours coaching kids sports teams and running charities in order to boast their resumes?
Seriously spend 2 hrs creating a simple program on github. use a timeless language like Java or C++. Then you can tick the I have a github box and that'll sort you for a few years.
Prior to interview push a bunch of commits backdated over the last 6 months.
That's a bit dishonest, isn't it? If you'll lie to look more productive you'll ultimately lie on the job, and that makes you a liability, not an asset.
I don't need to do this myself as I often have commits from tinkering and being a perfectionist. But for the time strapped it could be useful. Remember it's about impressions. You could do 1 min a day with commit for 60 days and that'll look better on github than a single.one hour session. Even if the code commited is ultimately the same
It's far better to be honest right out of the gate, even if you think it reveals a flaw or deficiency, rather than found to be a liar in the future just because you wanted to look better for your interview.
Quite a few go to the Third World to perform surgery for free — and, not coincidentally, increase their skills.
They aren't, and plenty of places don't expect and look for that; OTOH, there are enough in the field that do do that, and enough of a perception that is correlated to ability to deliver value, that places looking for the best often do use both doing that, and the evidence of the work done doing that, as a signal.
OTOH, if you want to get a boring, fairly low paying (compared to Silicon Valley tech-co standards) job as an internal enterprise developer at BigNonTechCo (or BigGov), you probably don't need to worry about it.
Yes, actually (and also to increase their social networks).
Sounds like he was passionately non-passionate. (Also, a programmer who claims to not be a nerd is self-deceived lol)
You'd be surprised. Most of the industry is now very much dominated by "normals". That includes a lot of people showing up on conferences and hackatons - doing stuff for your work while after hours is not in any way "nerdy".
The overwhelming majority of the work force, in fact.
Because passion doesn't necessarily equate to skill. Passion looks like an eagerness to be immersed in a topic and invest time in that topic. Some people work out of necessity and not necessarily passion (maybe just passion to make a living, pay the bills, and support their families).
What actually matters is that you:
- follow through with your promises and claims to your team or manager/boss/founder/yourself
- you leave things better than you found them
- you're reliable
If you adequately do those things, there is plenty of room for you, passion or no passion.
My dad was a fast jet pilot, I grew up on RAF bases watching jets fly overhead, as a scout I worked at air shows. It was all I wanted to do, but unfortunately I was too tall to make the entry requirements.
I'm 34 and still haven't really got past that. As a student I looked for job adverts for well paid positions and decided that I'd look to become a contract Java developer in London on an income that would put me in the top 1% in the UK. It took me 5 years and I didn't have to go to London. Many of my peers are still struggling to get a mortgage with some looking at 40 year terms. While I have one, I have the funds to pay it off. Now my family are financially secure I can start taking on fixed price work with more risk and more reward; building out a business and getting away from a cripplingly sedentary job is the next goal.
I think you need commitment (amongst other aspects) and passion is one vehicle to achieve that, I'd imagine a more rewarding one, but it's not the only one.
As an example, if I'm in the middle of a 3 a.m. debugging session because someone slipped a bug into production and customers are complaining and the company is losing money, I find that stone-cold professional determination is more reliable than passion.
I've worked with developers who has busy lives and families. They didn't do much programming outside of work, and they mostly worked 9-5. But they were so locked-in, determined, and professional while on the clock that they kicked ass and outperformed most of their colleagues. What programming they did do outside of the office was carefully chosen to help them keep up to date with the latest and greatest.
This isn't meant to knock passionate developers; I consider myself one of them. But given the opportunity in the future, I'd gladly work with a team of hyper-productive, focused, professional developers even if they don't have the 'passion' for programming that a lot of job postings seem to be looking for.
Passion doesn't even correlate with outside events OP lists.
Little point having a side project when your employer often asks you to sign a contract giving them ownership of all code inside or outside of work. I've walked away from job offers because they wouldn't strike this.
Where's the passion coming from in the 90 of 100 programming jobs that are programming payroll, fuel pump displays, stock systems and the 1,001 other not exciting, not full stack, not web dev role? OK, there's probably someone, somewhere, who can get passionate about fuel pump programming, but...
Also consider the employer's point of view. Unless junior code-monkey is needed, and even then, I would far rather see a well rounded individual with some non-IT to the fore. With at least a fighting chance of some social skills and some other interests than discover all free time is spent at the laptop working on other stuff. It can help when understanding client needs, or bring the idea from the model engineering or some other hobby to the task at hand.
As with almost everything, balance is the key. If, as a parent, you can't read one programming book a year, or spend a couple of weekends worth of time on a bit of tinkering there's something wrong. The reason a lot of parents end up no longer developers is they probably became senior enough that they're herding cats (staff) instead of bits.
So I'll stick with DHH and heavily favour work-life balance.
That's illegal in California, and all such clauses are unenforceable. This is one of the reasons for the success of Silicon Valley.
You have a passion for CRUD apps. You dream about CRUD in your sleep.
You attend (or give talks at!) CRUD conferences. Your bookshelf has at least five books on CRUD. You attend CRUDathons, and maybe have won first place in the most READs or most CREATEs category.
So yes, I am mildly passionate about CRUD apps development, and it is not hard to imagine someone who is really passionate about it, coding next-gen rapid development environment for CRUD webapps weekend after weekend, and on its way to becoming yet another garden variety tech billionaire.
If some industry is "boring" and monotonous, it is ripe for disruption by something exciting. Truck driving. Filing taxes. Accounting. Paralegal. And yes, CRUD app development — will be automated nearly out of existence soon.
But how that interest is measured is more interesting. A friend of mine just creates things for his kids, another has small hacks around the home, another is playing with his music setup and creating his own pedals, I run lots of forums and the systems for them.
It doesn't have to be a "Where's your OSS contributions?", or a "Work outside of work".
You just cannot make someone deeply interested not take an interest outside of work.
The hard bit is how to detect this fundamental curiosity, because I agree strongly with others that it isn't "What are your side projects, where are your OSS contributions?". It may surface in many more subtle ways, mostly private noodling around, wondering how things work, and could they be made better.
If you get enough flexibility to explore things you're interested in within the context of work, it seems perfectly reasonable that 40 hours a week of that is enough.
It's not that I'm not interested in programming but there are a lot of things that I'm FAR more interested in. My personal example: I love working out, I love computer games, I love snowboarding, I love geocaching and I adore playing with my car. It's extremely rare that I ever choose to dedicate my free time to developing software when I have something to do related to one of those things. I'm an experienced professional and consider myself to be pretty decent at it but when it comes to fun things I can do on my own time, it ranks abysmally low.
The result? Total amount of software development that I've done outside work hours in the past year: 0 and I can't imagine it ever changing.
edit: in fact the quickest way to make me stop reading a job ad is to write too much of those "we expect you to breathe xxx technology". No thanks, I will breathe it for exactly the 37 hours I'm paid for and not a single one more. Fortunately enterprise development is a nice fit for me :)
People's interest in just about anything has a tendency to fade over the course of the first eight hours they spend on it in a day.
For an internal project over a certain size for a large enough organization you actually want people that will just do their thing, be happy, collect a pay check and carry on.
your über 10x coder won't make any difference in these environments.
There are only two reasons. You either aren't productive enough, which means you are bad at your core job, or you are taking on too much, which means you either lack the social skills to say No, the maturity to manage your time, or that you are fucking around too much at the office. Basically, anything more than 40 hours means that you are either bad at your job or at managing your job.
That said, coding outside of the office with no particular purpose in mind is a lot of fun. The whole "play" thing. It's important to keep it at the level of play, don't get too serious. Serious ruins the point of play.
The word passion to me implies an level of emotional obsession that borders on (or actually is) unhealthy.
I enjoy programming, and find it interesting. But I'm not passionate about it.
I believe there are many people like her in the industry and they are the ones who do the majority of the work.
I have a super passionate colleague. It's actually counter productive working with him because most of our energy goes into design debates and office politics and competition
In other words, I believe there's an intrinsic quality one needs to become a good programmer, but it doesn't necessarily manifest as passion.
Or reduced code. Or improved UI.
Generally anything that improves my life as a developer or those of my users.
The fact of the matter is that there are a lot of companies out there doing CRUD web development and there are lots of jobs that only require mediocre skills.
And it turns out that the Tech shortage is so bad that those mediocre jobs still pay very good salaries.
This is why tech bootcamps are so successful. It is not that these bootcamps are able to pop out high skilled developers in 3 months that are better than Top Tier CS grads. Thats ridiculous.
They are so successful because it turns out that you don't really have to be that great of a programmer to do CRUD web dev at your average startup. But these startups still pay insanely good salaries when compared to the median US work wage.
It also seems like you're saying that bootcamps only produce mediocre CRUD developers - who, presumably, are non-passionate? I know some (passionate, highly-skilled) bootcamp graduates who would be really quite insulted.
You might be a little more deliberate with your axioms.
Isn't it a prerequisite for excellence in any field?
From what I can tell, the "talent shortage" only exists for companies that insist on high hiring bars without having deep pipelines.
I am sure there is a place for people who are not passionate but I don't even want to work there. I have been programming computers for more than 30 years and it still excites me. I want to build great things and make the small things perfect. There is always a place for passion and always something interesting about everything.
Being excited and enthusiastic hasn't killed me yet.
It is not about huge hours. The world is full of dumbasses who work massive hours and write shit code.
If your passion is programming in general, chances are you have a broad experience background, which is not always perceived in a positive light by management. I recently had a meeting with a potential client who told me they would not hire me because they found it strange and implausible that someone would be able and willing to do both script language programming and also develop native modules in C.
I would say, all things being equal, non-passionate developers are very feasible career-wise and absolutely essential for many projects, because chances are they're going to be doing the brunt of the work.
Especially in a team, these players are important for follow through. I like to think of teams as RPG adventuring parties: you need people from all character classes to make it work. While all-mage or all-beserker parties can sometimes pull through, a balanced and diverse approach is a better generalized strategy. You want tanks and support characters.
The key point being that programming really requires that the programmer is deeply interested in doing it.
I feel that the reason startups like young people is that only fresh programmers can feel passionate about or impressed by this kind of work.
Programming well requires that you be interested in the topic. It is of course possible to program a computer without being very interested and many do.
As for your clarification, it depends on how you understand the word "well". In general, mastering any skill requires interest in it, otherwise a person settles down on the minimum level that lets them do their job comfortably. But a point I think is important to highlight is that this minimum skill level is often "programming well" in the business context. No matter how many buzzwords companies put into their job offers, what most of the industry really wants is replaceable cogs that follow orders well and don't think too much. Being actually passionate about programming seems not only a bad proxy; having passion can be counterproductive at work.
That is the first mindset that I will implant in any young programmer, make the computer work harder, but learn to work less yourself.
Forget about working more hours, you will get older, you will get ill, specially if you work too hard. Start working today in making the machine do your work.
As a professional you should be able to compete working 40 hours a day easily. If not you are making something wrong. You need more skills and not just learning a new language(of the week).
I will study less programming and start studying other things like art(music o painting) or psychology(how humans work) because that way you can improve interfaces and your own tools.
In fact I had this education myself, and I can do lots of things that other people can't. For me is obvious how to make it and why but for the rest of the people is very hard. I realize now that is my education in those areas that people had not studied because in theory they are useless for the technical work.
When I see programmers that only know about programming I see how fast they dig their own grave, just working too much. Maintenance goes up over time and they could barely sustain their own code. They can't progress as they are stuck with old code maintenance. The code gets too complex to understand just using text alone.
Quite interesting they only develop visual tools and test when asked and for non programmers. I see it as people not wanting to use screwdrivers because they have their nails or teeth, but technically able to do it for others.
They ignore how to make great documentation,structure the code(to constantly reduce complexity) or how to communicate graphically in order to make tools that make their life easier and life gets harder and harder for them.
I am training right now people and I teach them something as simple as using (Dear) IMGUI over their own program to visually control their own code and memory. After a month or so they start getting it on a big AHA!! moment why they were so much unproductive before.
I really, REALLY, enjoy solving problems that will make people's lives easier and while implementing the solutions will frequently get the feeling it's not the right way to code it or it's not the most elegant way, and will devote a sane amount of time trying to make it better (after making it work), which usually ends up with the application of the SOLID principles (fun fact, there are more than the 5 letters).
However, ignoring the rare events where a problem consumes me and makes me go almost a day without eating properly (relax, I drink a lot of tea/infusions and I'm not exactly thin, also not obese) just wanting to make it work and feeling energised, I too don't feel incredibly motivated to put time into coding after work.
After work I usually read about current affairs (politics, economy, science), read some pages of a book, play a game and binge watch something on a streaming service. Not the first time the solution to a problem comes to me when I'm almost falling asleep, or sometimes when I wake up in the middle of the night.
Guess people are different, which doesn't mean people that aren't always demonstrating passion are incompetent or will provide worse results. Do I dare to say they will be the most consistent in the long run, though a mix of these types of people will probably be the best combination, as they will support and learn from each other?
Under this point of view, we should compare software engineering with painters, musicians, writers. Isn't it expected from this guys to "breath" their areas even when they are "not working"?
I'm not saying that I agree with that point of view. Just adding another point of view to the discussion.
* credits are not mine.
> As my Aïkido professor says, the more you practice, the better you get …
Oh, sure, because every Aikido practicioner who has practiced the same number of hours has the same ranking. (That's sarcasm, btw...)
> Studies have repeatedly demonstrated that 40h per week is the most productive work load [...] But then, how do passionate people manage to remain productive when working more than 40 hours per week ?
I don't know what studies you're quoting, but this just makes no sense. For the same work output over longer time, you will have more productivity. The trick is keeping up the pace. At the same time, there is absolutely no evidence that "passionate" programmers are more productive for the same amount of time than "non-passionate" programmers.
And yes, you need time out of the box to make out-of-the-box solutions. Archimedes' bathtub, Newton's apple, the Apple Computer's fonts, ...... you really have to get the hell out of the office once in a while.
> That is when things get tricky. Neither can you jump ship for the next cool and risky startup where you’ll do great things, nor can you find enough time moonlighting to improve your skills
I have opposite experience. Just before becoming parent, I quit my cubicle job. I started 'cool risky opensource startup', to be at home with a child.
9-5 had lot of overhead (socializing, commute, babysitter...). Now I can organize my time better, work longer and do more work, while spending more time with my kid.
"The great majority of employees are quite enthusiastic when they start a new job. But in about 85 percent of companies, our research finds, employees' morale sharply declines after their first six months—and continues to deteriorate for years afterward. That finding is based on surveys of about 1.2 million employees at 52 primarily Fortune 1000 companies from 2001 through 2004, conducted by Sirota Survey Intelligence (Purchase, New York)."
Seems like a large sample. I don't see how an employee who happens to be a developer would somehow be different.
I am pretty sure there are many accountants/writers/designers/brick layers who are passionate about their jobs, and many who aren't.