It is perfectly OK to only code at work, you can have a life too(zeroequalsfalse.com)
zeroequalsfalse.com
It is perfectly OK to only code at work, you can have a life too
https://zeroequalsfalse.com/posts/it-is-ok-to-only-code-at-work/
109 comments
It isn’t true in any profession that working weekends is indicative of performance. Somehow they managed to dup people in technology to think that’s okay.
Life should NEVER be about others who randomly value some ephemeral stuff that has no bigger meaning to you. NEVER.
Your life should be about what YOU value. If you want to work at a company which carefully selects for "passion programmers" you will hopefully also value that life style and it will be a natural match. If you value programming to that extent you will naturally be driven to do that and that's beautiful but not a life plan for everyone in IT.
Life is hard enough in all of its aspects - no one has the obligation to serve some sort of purpose that somebody pulled out of their ass since most of use probably don't live in Zerg states like China or North Korea where the consequence is some sort of punishment.
I strongly recommend that people live according to what they value themselves instead of making some billionaire richer in trade for burnout and your own well-being.
People must survive and some just want to get done their 9am-5pm shift everyday to get the bills paid because moving to a job that you love may even be impossible for some.
THAT'S FINE. People aren't obligated to work with a true fire of passion for Hewlett-Packard or burn with life and energy when programming the next ad-tracking feature for Facebook.
Your life should be about what YOU value. If you want to work at a company which carefully selects for "passion programmers" you will hopefully also value that life style and it will be a natural match. If you value programming to that extent you will naturally be driven to do that and that's beautiful but not a life plan for everyone in IT.
Life is hard enough in all of its aspects - no one has the obligation to serve some sort of purpose that somebody pulled out of their ass since most of use probably don't live in Zerg states like China or North Korea where the consequence is some sort of punishment.
I strongly recommend that people live according to what they value themselves instead of making some billionaire richer in trade for burnout and your own well-being.
People must survive and some just want to get done their 9am-5pm shift everyday to get the bills paid because moving to a job that you love may even be impossible for some.
THAT'S FINE. People aren't obligated to work with a true fire of passion for Hewlett-Packard or burn with life and energy when programming the next ad-tracking feature for Facebook.
If companies who don't looks passion programmers paid equally we would be fine.
We strive for higher paying jobs, see that they want passion programmers, so we fake being a passion programmer.
We strive for higher paying jobs, see that they want passion programmers, so we fake being a passion programmer.
> Life should NEVER be about others who randomly value some ephemeral stuff that has no bigger meaning to you. NEVER.
In theory no but when the hiring process at your potential next job involves people that believe they must value that ephemeral stuff, then suddenly even though it has no value for you, your life is very much about this at this point in time regardless.
In theory no but when the hiring process at your potential next job involves people that believe they must value that ephemeral stuff, then suddenly even though it has no value for you, your life is very much about this at this point in time regardless.
I agree but then you must acknowledge that by chosing to restrict yourself, you may lose competitive edge againts those who have no such restriction.
It proobably depends on the company, and the type of role.
Also, the fact that you describe it as a restriction probably reveals a bit about your age =). (I don't meant that in a bad way).
I think a lot of it comes down to life stage.
If you're 24, with no family or commitments, life is easy and you can stay at work late, or code till 3am if you want to - the worst is your room-mate (or parents) might complain about the noise.
Hypothetically, if you're older, and have a wife and 3 kids...well, those things are going to take priority (and they should). Of course, they can provide an immense amount of joy and fulfilment - at least for me, far more than my work can (although I do really enjoy my work as well).
I have worked in IB, algo-trading, and now in tech - and none of them compared to the pure ecstatic joy I get from coming home, and making dinner for the kids, or reading to them, or helping them brush their teeth.
I do still code in my spare time - but honestly, with a family, there may not be that much free time (assuming you still want to keep other hobbies and pursuits as well).
Also, the fact that you describe it as a restriction probably reveals a bit about your age =). (I don't meant that in a bad way).
I think a lot of it comes down to life stage.
If you're 24, with no family or commitments, life is easy and you can stay at work late, or code till 3am if you want to - the worst is your room-mate (or parents) might complain about the noise.
Hypothetically, if you're older, and have a wife and 3 kids...well, those things are going to take priority (and they should). Of course, they can provide an immense amount of joy and fulfilment - at least for me, far more than my work can (although I do really enjoy my work as well).
I have worked in IB, algo-trading, and now in tech - and none of them compared to the pure ecstatic joy I get from coming home, and making dinner for the kids, or reading to them, or helping them brush their teeth.
I do still code in my spare time - but honestly, with a family, there may not be that much free time (assuming you still want to keep other hobbies and pursuits as well).
What if you're 24 years old with a two person family and limited commitments, except for your drive to see the mountains on the weekends, to watch the sunsets during the week, to keep up with your old friends online and read history in the evenings?
I've seen the hypothetical comparison above made elsewhere, and it seems to imply choosing one category of "ephemeral stuff that has no bigger meaning to you" (the kids and the family) over another (work til 3am).
Not to denigrate anyone's joy of parenthood at all, much less the notion that people feel as though they're driven by it! I just wish our culture could foster more appreciation for the ecstatic joy of sipping a cup of tea at 6:30PM on the patio. As it is, I frequently wrestle with self-doubt that my mindset is out to lunch and I may inadvertently restrict myself from the greatest joys available in the future, including the joy of personal professional success, by not spending more evenings coding til 3 in the morning. But that's just a couple hours away from brewing the morning coffee to watch the sunrise! That's the time I have to read about the longitude problem!
I've seen the hypothetical comparison above made elsewhere, and it seems to imply choosing one category of "ephemeral stuff that has no bigger meaning to you" (the kids and the family) over another (work til 3am).
Not to denigrate anyone's joy of parenthood at all, much less the notion that people feel as though they're driven by it! I just wish our culture could foster more appreciation for the ecstatic joy of sipping a cup of tea at 6:30PM on the patio. As it is, I frequently wrestle with self-doubt that my mindset is out to lunch and I may inadvertently restrict myself from the greatest joys available in the future, including the joy of personal professional success, by not spending more evenings coding til 3 in the morning. But that's just a couple hours away from brewing the morning coffee to watch the sunrise! That's the time I have to read about the longitude problem!
By design nobody is trying to maximize their competitive edge. Since people just think they are. What everyone is doing is finding the right balance for them.
By not sabotaging your competitive peer's cars, or sectetely breaking up their marriages, or deciding not to have a family of your own you're giving up a competitive edge. Again that doesn't mean you should do those things to improve your chances for advancement at work.
Nobody is maximizing their competitive edge - everyone is just looking to find the right balance. The fact that something doesn't maximize an edge doesn't mean you shouldn't do it. Often times you should.
By not sabotaging your competitive peer's cars, or sectetely breaking up their marriages, or deciding not to have a family of your own you're giving up a competitive edge. Again that doesn't mean you should do those things to improve your chances for advancement at work.
Nobody is maximizing their competitive edge - everyone is just looking to find the right balance. The fact that something doesn't maximize an edge doesn't mean you shouldn't do it. Often times you should.
There is the small matter that you do real and permanent damage to yourself if you keep an unsustainable pace for too long.
Yes! I'd just be careful to assume that people who are smart enough to program aren't smart enough to knowingly do so.
Competitions in modern times are nearly always an artificial construct. Who cares if you coast at your job as long as you do what you are paid for? There is no award ceremony at your funeral for having achieved a manager position higher than your neighbors.
A competition only exists if you agree to take part in it and I am willing to bet that's usually a conscious choice. If you can provide for yourself and your family to enjoy the things you like - why introduce competition if all it does is annoy you?
Some people just don't care about being able to afford luxury products because other things already give them fulfillment.
Others need more money and/or more power to get a maxed out Tesla or a house in their dream area (or simply to stroke their ego). All is fine.
There just isn't some sort of obligation to anything other than maybe the people directly around you (SO, kids, parents, friends...).
Invest time in what you like. Life doesn't allow that to always be the same as your job.
Competitions in modern times are nearly always an artificial construct. Who cares if you coast at your job as long as you do what you are paid for? There is no award ceremony at your funeral for having achieved a manager position higher than your neighbors.
A competition only exists if you agree to take part in it and I am willing to bet that's usually a conscious choice. If you can provide for yourself and your family to enjoy the things you like - why introduce competition if all it does is annoy you?
Some people just don't care about being able to afford luxury products because other things already give them fulfillment.
Others need more money and/or more power to get a maxed out Tesla or a house in their dream area (or simply to stroke their ego). All is fine.
There just isn't some sort of obligation to anything other than maybe the people directly around you (SO, kids, parents, friends...).
Invest time in what you like. Life doesn't allow that to always be the same as your job.
Not even tesla or dream house, sometimes to just coast and provide minimum for your self and your family require you to compete with other.
> I agree but then you must acknowledge that by chosing to restrict yourself, you may lose competitive edge againts those who have no such restriction.
And by choosing to restrict yourself by only focussing on your job, you're losing out on other areas of life.
And by choosing to restrict yourself by only focussing on your job, you're losing out on other areas of life.
Yes, whatever you choose there is always trade off.
Do you really want to work for a company which values that "competitive edge" as a social signal over humane hours and relaxed professional competence?
Reality is you will probably burn out by your late 20s. And so will most of the off-hours coders.
Reality is you will probably burn out by your late 20s. And so will most of the off-hours coders.
Sure, but for you to get hired in such company you may still have to compete with other for the position.
You may have to code outside work in your current job in order for you to have that competitive edge over other applicant when you apply for such company that value "humane" hour.
You may have to code outside work in your current job in order for you to have that competitive edge over other applicant when you apply for such company that value "humane" hour.
9-to-5 coders don't need to aim for passion companies though, a job maintaining a logistics program for a pharmacy chain is good enough for them. The pay isn't amazing but if it sustains your life passion of raising a family or becoming an award-winning ice sculptor or whatever then who cares?
Yes, even for such non passion company you still have to compete. It doesn't matter if the job if "easy", if there are 2 applicant which both are sufficiently qualified, the one which have that extra edge is the one who will get hired.
The point is you have to compete a lot less though. With passion companies you have to compete with Stanford graduates who have a +1000 commits in the Linux distro, whereas at your local supermarket headquarters you're just competing with people who need a desk to park themselves at for 8 hours while they daydream about fishing. It's a lot easier to compensate for lack of experience with soft skills/connections in the latter types of jobs than it is for the former.
Yes but there is more and more programmer these days, not to mention increasingly easy to be outsourced to anyone in the world. If you are not doing extra then you are going to be outcompeted.
And to put even more of a punch to it, I spend 2 hours a day streaming Rust development (heh heh... inexperienced rust development :-) ) and it will buy me precisely nothing at work. There's another guy on my team that seemingly spends every waking moment working on code for work -- because that's what he enjoys doing. He will very rightly get more recognition for his efforts at work than I will.
Although it's never guaranteed, you general get what you put into it. I'm going to learn about Rust development in my spare time and maybe that will be useful to my career someday. Compared to someone who is concentrating on spending time with their kids, I might get some benefits. But, my Rust development will never throw me a surprise birthday party when I'm 90. My buddy at work enjoys the time he spends and gets lots of deserved plaudits at work. He'll get raises and promotions that I likely won't. I could do the same as him, but I don't want to. Similarly, had I chosen to settle down and have kids when I was of an age to do it, I could have. I decided not to and I'm totally happy with my choice. You don't get to benefit from the road you didn't choose. That's just life.
Although it's never guaranteed, you general get what you put into it. I'm going to learn about Rust development in my spare time and maybe that will be useful to my career someday. Compared to someone who is concentrating on spending time with their kids, I might get some benefits. But, my Rust development will never throw me a surprise birthday party when I'm 90. My buddy at work enjoys the time he spends and gets lots of deserved plaudits at work. He'll get raises and promotions that I likely won't. I could do the same as him, but I don't want to. Similarly, had I chosen to settle down and have kids when I was of an age to do it, I could have. I decided not to and I'm totally happy with my choice. You don't get to benefit from the road you didn't choose. That's just life.
> There's another guy on my team that seemingly spends every waking moment working on code for work
Work out your hourly rate after he gets a promotion and see who does best.
Work out your hourly rate after he gets a promotion and see who does best.
I don't believe the non-stop hobbyist is necessarily any better than the 9-5 guy.
I think in our industry hiring managers have failed and continue to fail to identify talent and good hires (it's a hard problem). As a result they use proxy-metrics, this may just be another one.
I've worked with the obsessives, and the dedicated, I've also worked with talented people who aren't like that. Those that 'live to code' have not always distinguished themselves.
You need passion and interest to be great in this industry. I'm, far from convinced that to be in the top performers you need to be spending your whole life outside of work dedicated to it too. You also need to be a good communicator, innovative and open minded, as well as productive and tech savvy, and you need not to be exhausted and burned out.
Most of the really good people I know do some coding outside of work, but it's usually not constant and is usually incidental to trying to achieve something ("hey, I automated the garden path lights!", "I made a security cam system!" Etc). Like a couple of generations back they'd be tinkering in their garden shed. Rather than driving themselves to constantly pick up the new hot language/framework/technology.
I think in our industry hiring managers have failed and continue to fail to identify talent and good hires (it's a hard problem). As a result they use proxy-metrics, this may just be another one.
I've worked with the obsessives, and the dedicated, I've also worked with talented people who aren't like that. Those that 'live to code' have not always distinguished themselves.
You need passion and interest to be great in this industry. I'm, far from convinced that to be in the top performers you need to be spending your whole life outside of work dedicated to it too. You also need to be a good communicator, innovative and open minded, as well as productive and tech savvy, and you need not to be exhausted and burned out.
Most of the really good people I know do some coding outside of work, but it's usually not constant and is usually incidental to trying to achieve something ("hey, I automated the garden path lights!", "I made a security cam system!" Etc). Like a couple of generations back they'd be tinkering in their garden shed. Rather than driving themselves to constantly pick up the new hot language/framework/technology.
I think that resentment stems from a bit of imposter syndrome, preferences for potential employees are not new, but it does feel like the industry as a whole expects programmers to mostly be passionate nerds whose main/only focus is this one thing related to their job. It's a good thing that so many are passionate and have the opportunity to make a living out of it, but even those may be searching for contentment in their own abilities when comparing to how society as a whole views the profession. 'Where' you work being a measure of how successful you are as a programmer.
Employers want skilled professionals. They don't actually care about passion, they care about getting things done.
Since it's very hard to quantify programming talent and passion is easy to signal, passion is used as a false correlative variable for skill.
Both employers and employees love passion since it's so easy to signal.
Having a passion for something may or may not convert to career competence, depending on the person.
Since it's very hard to quantify programming talent and passion is easy to signal, passion is used as a false correlative variable for skill.
Both employers and employees love passion since it's so easy to signal.
Having a passion for something may or may not convert to career competence, depending on the person.
I think you're confusing two things - the "nonstop hobbyist programmer" and "the person with provable excellence in their field". My contention is that a lot of the motivation for a nonstop hobbyist programmer is that contributions you do at work are often buried in closed-source projects, or, even if in open-source projects, are relegated to some corner of some huge project. Or both! So it's hard to prove that you're really any good.
By contrast, if you initiated a project and have a public profile - whether in your spare hours or in your day job - you have demonstrated something and you will command a premium.
I think conflating these two attributes is dangerous as it suggests that the best way of dealing with it is overwork (i.e. "add another job to my job") rather than negotiation (i.e. "try to figure out how at least some of my day job isn't just work that 'vanishes into the BigCo closed source void'"). That might mean a hard negotiation, or even switching jobs, but it's a lot more time-effective than starting your second shift at 5pm.
By contrast, if you initiated a project and have a public profile - whether in your spare hours or in your day job - you have demonstrated something and you will command a premium.
I think conflating these two attributes is dangerous as it suggests that the best way of dealing with it is overwork (i.e. "add another job to my job") rather than negotiation (i.e. "try to figure out how at least some of my day job isn't just work that 'vanishes into the BigCo closed source void'"). That might mean a hard negotiation, or even switching jobs, but it's a lot more time-effective than starting your second shift at 5pm.
>I think you're confusing two things [...] I think conflating these two attributes is dangerous as it suggests that the best way of dealing with it is overwork (i.e. "add another job to my job")
No, you're misinterpreting what I'm talking about.
I'm not suggesting to anyone to artificially create the appearances of the passionate weekend hobbyist programmer by adding more undesirable after-hours programming work. Doing anything like that is unsustainable and will just make one miserable.
The 2 types of programmers I have in my head are these:
(1) the programmer who genuinely treats coding as "play", a "game", a source of "joy" such that coding only at a 9-to-5 job is not enough of an outlet to express his true self. For this type of person, programming is more like "art" such as playing guitar or painting. Therefore, constantly creating new side projects on github during non-work hours is a completely natural way of spending free time.
(2) the programmer who treats coding as a "job". Sure, the programmer may also "like" to code but only up to the limits of a 9-to-5 job. The programmer would rather do something else after 5pm and the weekends such as hiking or taking kids to soccer games.
The so-called "problem" is that the group (2) programmers feel it's unfair that so many influential companies and hiring managers in the industry prefer group (1). My point is that this blog post doesn't address that. Just exclaiming "it's ok to code only at work" is just preaching to the choir instead of educating you on the underlying industry forces that can make one doubt that self-affirmation.
Again, the real affirmation should be: It's ok to let other employers prefer the extra-curricular programmers so don't let it bother you if you _sometimes_ lose jobs to them.
That's the affirmation that would explicitly highlight what the tension is about: You want to restrict yourself to programming only 9-to-5 for your mental health but the software industry -- which you don't control -- doesn't want to cooperate with your ideals for a balanced life! Many people in the tech industry have hiring preferences and this blog essay doesn't change that. You can either let that irritate you -- or -- you can be at peace with it.
As others said, the best you can do is try to find employers that align with your work/life preferences.
No, you're misinterpreting what I'm talking about.
I'm not suggesting to anyone to artificially create the appearances of the passionate weekend hobbyist programmer by adding more undesirable after-hours programming work. Doing anything like that is unsustainable and will just make one miserable.
The 2 types of programmers I have in my head are these:
(1) the programmer who genuinely treats coding as "play", a "game", a source of "joy" such that coding only at a 9-to-5 job is not enough of an outlet to express his true self. For this type of person, programming is more like "art" such as playing guitar or painting. Therefore, constantly creating new side projects on github during non-work hours is a completely natural way of spending free time.
(2) the programmer who treats coding as a "job". Sure, the programmer may also "like" to code but only up to the limits of a 9-to-5 job. The programmer would rather do something else after 5pm and the weekends such as hiking or taking kids to soccer games.
The so-called "problem" is that the group (2) programmers feel it's unfair that so many influential companies and hiring managers in the industry prefer group (1). My point is that this blog post doesn't address that. Just exclaiming "it's ok to code only at work" is just preaching to the choir instead of educating you on the underlying industry forces that can make one doubt that self-affirmation.
Again, the real affirmation should be: It's ok to let other employers prefer the extra-curricular programmers so don't let it bother you if you _sometimes_ lose jobs to them.
That's the affirmation that would explicitly highlight what the tension is about: You want to restrict yourself to programming only 9-to-5 for your mental health but the software industry -- which you don't control -- doesn't want to cooperate with your ideals for a balanced life! Many people in the tech industry have hiring preferences and this blog essay doesn't change that. You can either let that irritate you -- or -- you can be at peace with it.
As others said, the best you can do is try to find employers that align with your work/life preferences.
OK, I now understand what you're saying. That being said, I don't believe you - I don't think someone in your category (1) has all that much of an advantage over someone in my "your achievements are publicly known and not locked away in someone's proprietary code base" category.
I think most of the "passion programmers" advantages are due to how public their achievements are, not due to the fact that they are putting in more than the 9-to-5. Further, most of the people I've met in this category don't have particularly interesting or programming intensive 9-to-5s, which is how they can have the appetite to program in the evenings.
Back during the most intensive period of working on Hyperscan, when we were really doing tons of interesting stuff during the day, I had zero interest in going home and doing Even More coding on some other project. It would have been seriously reaching into the "You Are No Longer Productive" number of hours/week.
I think most of the "passion programmers" advantages are due to how public their achievements are, not due to the fact that they are putting in more than the 9-to-5. Further, most of the people I've met in this category don't have particularly interesting or programming intensive 9-to-5s, which is how they can have the appetite to program in the evenings.
Back during the most intensive period of working on Hyperscan, when we were really doing tons of interesting stuff during the day, I had zero interest in going home and doing Even More coding on some other project. It would have been seriously reaching into the "You Are No Longer Productive" number of hours/week.
The point should also be that the programmer in (1) may not actually be any better for your business than the one in (2), and the programmer in (2) may be doing it because they think they have to, and may be a burnout as a result.
I should note that first - saying you're "confusing" is a bit obnoxious and I should have said "conflating" throughout, which is what I meant - and second - nothing I said is meant to imply that "nonstop hobbyist programmers" is somehow disjoint with "the person with provable excellence in their field".
I started my professional career in 2003, and switched jobs many times. Never have they asked about hobby projects or github code or whatever. Nobody in the professional world cares about your hobby code. If you would say "I have experience with this framework from my hobby project", that translates into "no experience".
Maybe it's different in US, but in Belgium, they require a degree and professional experience, nothing else.
Do you know why? Because middle management and hr don't have such passion projects. They can't imagine doing the same (but different) work at home for fun.
Nobody has ever cared according to my experience.
Maybe it's different in US, but in Belgium, they require a degree and professional experience, nothing else.
Do you know why? Because middle management and hr don't have such passion projects. They can't imagine doing the same (but different) work at home for fun.
Nobody has ever cared according to my experience.
Considering the amount of people in this industry that don't know what they are doing, sure it is "OK".
Just don't be surprised that people doing code outside of work will probably get better jobs / get hired more easily.
Some people are really passionate about the field, and don't really see it as "working" I think it is important for these people to have both professional projects and personal ones.
But like a lot of people that are passionate about something, a few of them will end up being light years ahead of people just doing it for money, or seeing it as a "regular job" just like any other job.
Just don't be surprised that people doing code outside of work will probably get better jobs / get hired more easily.
Some people are really passionate about the field, and don't really see it as "working" I think it is important for these people to have both professional projects and personal ones.
But like a lot of people that are passionate about something, a few of them will end up being light years ahead of people just doing it for money, or seeing it as a "regular job" just like any other job.
> Just don't be surprised that people doing code outside of work will probably get better jobs / get hired more easily.
Not really. Last time I was looking for job nobody cared about my personal projects. Like, they did not care at all. I have them.
But also, honestly, people I knew who spend a lot of time on their passion project systematically were not the most performing at work. They either tended to use work for socialization and chat a lot. Or were otherwise burn out (always working but slowly and not producing that much).
I guess that you cant really lie to yourself - working on passion project outside of work for 20 hours a week is exactly the same as working additional 20 hours on the job - consequences in low effectivity and tiredness are exactly the same.
Not really. Last time I was looking for job nobody cared about my personal projects. Like, they did not care at all. I have them.
But also, honestly, people I knew who spend a lot of time on their passion project systematically were not the most performing at work. They either tended to use work for socialization and chat a lot. Or were otherwise burn out (always working but slowly and not producing that much).
I guess that you cant really lie to yourself - working on passion project outside of work for 20 hours a week is exactly the same as working additional 20 hours on the job - consequences in low effectivity and tiredness are exactly the same.
I think the at-home project thing is perhaps a poor example. A person who does any number of things outside of work to refine their skills (which could be a passion project), would be expected to advance their career faster than somebody who only put any effort into their skills 9-5. Only some employers will care about personal projects, but all of them will care about your marketable skills.
I'm skeptical about that, because I've lost count of people coding outside of their programming job that have no clue on how to produce reasonable code. Perhaps it sounds good to potential employers that they code in their spare time, but it's not an indication of competency in my experience.
It’s really weird if you think about it. The ratio of people that do work related activities in their free time seems rather high for programmers. On the other hand, we are plagued with opportunists that want a high paying job and don’t know what they’re doing.
If you look at it from a hobbies / interests point of view, coding is one of the few hobbies where there are a lot of jobs around and well paid ones at that. Professional sports are a hobby that for some sports is very well paid, but the competition is way harder and the jobs available far less.
Not really. The trick is to always work for a company using marketable tech. Once you’ve been in the field for awhile, you can find a job where the “must haves” are things you are good at and the “nice to haves” are things you want to learn.
Because salary compression and inversion are real, you will probably have to keep job hopping.
Because salary compression and inversion are real, you will probably have to keep job hopping.
Hard skills are surprisingly small percentage of the overall picture of the person from employment perspective. An excellent coder who is hard to manage, discuss, doesn't work well in team, or has trouble to simply do as asked for next 2 months because its a priority for the company but definitely not fun, is... passable for many companies, the bigger the more true.
In my experience, quite a few of these hardcore coders lack in 'human' aspects. The employer can go an extra mile to manage them appropriately (ie keep their work fun), but its an extra overhead that many don't want to undertake.
But of course the group of those who have good people, communication and/or management skills are usually priceless for the employer.
In my experience, quite a few of these hardcore coders lack in 'human' aspects. The employer can go an extra mile to manage them appropriately (ie keep their work fun), but its an extra overhead that many don't want to undertake.
But of course the group of those who have good people, communication and/or management skills are usually priceless for the employer.
To some extend, I think that we also tend assume that to hard to communicate with people have higher skills then they have. They are less right then they like to pretend, but people don't like to question them.
Quite a lot of these issues is their inability to deal with requirements as they are or construct they are unused to without temper tamtrum.
Everyone is more effective on fun tasks, faster when allowed to skip uncomfortable requirements and looks smarter if no one dares to ask him questions or disagree.
Quite a lot of these issues is their inability to deal with requirements as they are or construct they are unused to without temper tamtrum.
Everyone is more effective on fun tasks, faster when allowed to skip uncomfortable requirements and looks smarter if no one dares to ask him questions or disagree.
You must be working in a different environment than me. The most common failure mode I see of devs is a lack of technical chops. Followed by communication skills, and not internalizing business goals. Don't see doesn't work well in a team, or had trouble doing as asked very often if at all.
But I work in Enterprise tech so maybe it's different.
But I work in Enterprise tech so maybe it's different.
>Hard skills are surprisingly small percentage of the overall picture of the person from employment perspective.
This is true outside of tech hubs and in companies with non technical management. What is true in Oklahoma City and Paris isn't necessarily true in SF/NYC
This is true outside of tech hubs and in companies with non technical management. What is true in Oklahoma City and Paris isn't necessarily true in SF/NYC
Being passionate is not the same thing as being a talented professional.
Having a passion for something may or may not convert to career competence, depending on the person.
The problem is that it's very hard to quantify programming talent, and it's easy to signal passion - hence passion is used as a false cipher for competence, although likely with some correlation at least.
Having a passion for something may or may not convert to career competence, depending on the person.
The problem is that it's very hard to quantify programming talent, and it's easy to signal passion - hence passion is used as a false cipher for competence, although likely with some correlation at least.
Just stop it. It's OK not to have hobby coding projects, yes, but the opposite is also OK. When I play with e.g. Arduino, game programming or some random tech - this is in-fact my break from work. It's 100% driven by fun and play, so don't tell me I have no life please.
The tragedy of this is, as other commenters have noted, that many workplaces don't offer much opportunity for developers to improve their skills in a general sense ("you'll learn exactly what you need for success at FoobarCorp by working on FoobarCorp projects!").
Couple this with our field's aggressive skepticism that anyone really knows how to program, regardless of prior achievements ("reverse a linked list, you big fat liar who lies") you've got a powerful motivation to ensure that you can work outside of your long-term work projects. Because, let's be frank, a lot of us, after spending a lot of time hacking on some particular system, really get serious atrophy in our abilities to work with a clean sheet.
There was a point where I would have been able to confidently bang out some bizarre NFA graph or SIMD algorithm in Hyperscan from memory but would have been hard-pressed to remember how to open a file in C++ and read from it...
A compromise would be to constantly look for opportunities to extend what you do (in terms of range, public visibility, etc) at work. If you can't, you run the serious risk that any evidence that some significant work was yours will be hidden away (unless you're working on open source) from the perspective of any future employer.
This may be a point of negotiation with your current or future employer - you may have to put your hand up and say "I want to do something public facing" (i.e. "I want to spend X% of my time as a developer evangelist" or "I want to do our blog on Y" or "I think we should open-source part Z and I'll lead it").
Obviously these things are not magically easy, especially the more junior you are. I drove the process of open-sourcing Hyperscan (not for the reasons in this post but for other strategic reasons) and that was a pretty hefty process and a big ask, even for a senior person.
Couple this with our field's aggressive skepticism that anyone really knows how to program, regardless of prior achievements ("reverse a linked list, you big fat liar who lies") you've got a powerful motivation to ensure that you can work outside of your long-term work projects. Because, let's be frank, a lot of us, after spending a lot of time hacking on some particular system, really get serious atrophy in our abilities to work with a clean sheet.
There was a point where I would have been able to confidently bang out some bizarre NFA graph or SIMD algorithm in Hyperscan from memory but would have been hard-pressed to remember how to open a file in C++ and read from it...
A compromise would be to constantly look for opportunities to extend what you do (in terms of range, public visibility, etc) at work. If you can't, you run the serious risk that any evidence that some significant work was yours will be hidden away (unless you're working on open source) from the perspective of any future employer.
This may be a point of negotiation with your current or future employer - you may have to put your hand up and say "I want to do something public facing" (i.e. "I want to spend X% of my time as a developer evangelist" or "I want to do our blog on Y" or "I think we should open-source part Z and I'll lead it").
Obviously these things are not magically easy, especially the more junior you are. I drove the process of open-sourcing Hyperscan (not for the reasons in this post but for other strategic reasons) and that was a pretty hefty process and a big ask, even for a senior person.
Of course it is. People are different.
I personally enjoy having personal projects that are somewhat related to work, and help me develop a skill that I will most likely need in a couple of months for work. It also takes a lot of stress off work and makes it more enjoyable when you have experience in something before you need it.
But I understand that other people might require less exercise than I do.
But I understand that other people might require less exercise than I do.
I kind of agree. But my “personal” project is usually a low priority or no priority work related project that I can do as a POC and then get feedback from my coworkers and manager. They will usually have suggestions to polish my ideas. We will discuss it, I’ll go back and make changes and then present it to the larger dev team. This works for new to the organization technology.
For new to me tech, I’ll usually volunteer for a low risk story involving it and work extra hours until I learn it.
For new to me tech, I’ll usually volunteer for a low risk story involving it and work extra hours until I learn it.
How do you keep yourself motivated? I tried that many times, but in the end I abandon a lot of these side projects. I might have a jolt of good-will when starting, but when that fades I come home from work with my brain semi-fried and feel like engaging in mindless activities or some sport.
I don't know what will work for you but here are a couple of things that helped me find the time/energy to work on side projects.
The first was taking more breaks at work so I don't get to that fried point. I think if you're fried it's almost impossible to enjoy coding outside of work.
The second was writing down the next step at a granular enough level for each of my side projects I could accomplish the next task in 15-30 minutes.
Third breaking up working on the side projects with a hobby. For me it's starcraft, but could be chess, watching a show or listening to music. I've noticed I can do 15 minutes of coding without winding back up into work mode.
Also purposefully having very low expectations of how much I'll accomplish each night. Tonight was literally submitting an empty csv to kaggle, and getting some data (any data) saved in my mobile app.
Have a bunch of side projects. I noticed that if I have 5-6 side projects the probability I want to work on at least one of them is higher. Hit a sticking point on the machine vision projects maybe make some progress on that mobile app, not in the mood for that then I'll test out that new web framework I've been meaning to try out.
The first was taking more breaks at work so I don't get to that fried point. I think if you're fried it's almost impossible to enjoy coding outside of work.
The second was writing down the next step at a granular enough level for each of my side projects I could accomplish the next task in 15-30 minutes.
Third breaking up working on the side projects with a hobby. For me it's starcraft, but could be chess, watching a show or listening to music. I've noticed I can do 15 minutes of coding without winding back up into work mode.
Also purposefully having very low expectations of how much I'll accomplish each night. Tonight was literally submitting an empty csv to kaggle, and getting some data (any data) saved in my mobile app.
Have a bunch of side projects. I noticed that if I have 5-6 side projects the probability I want to work on at least one of them is higher. Hit a sticking point on the machine vision projects maybe make some progress on that mobile app, not in the mood for that then I'll test out that new web framework I've been meaning to try out.
Thank you for sharing! Seems reasonable enough. Will definitely try more breaks at work!
Thanks all for the answers! I didn't reply to each one, but they are greatly appreciated!
You just haven't found the right side-project yet. If you don't feel motivated to work on it, don't work on it. It's better for your mental health to just not do the work if you don't want to - it's not like chores or getting some exercise.
See my reply above.
Another advantage of doing “personal work projects” - projects that no one asked for but would be useful - is that you have a built in audience and you know other people will be looking at it. You can also put it down in your review and on your resume. Someone is going to value it. Either your current employee or a future employee.
Another advantage of doing “personal work projects” - projects that no one asked for but would be useful - is that you have a built in audience and you know other people will be looking at it. You can also put it down in your review and on your resume. Someone is going to value it. Either your current employee or a future employee.
I don't care a lot about the graveyard of abandoned projects I have created - I love the the dopamine release of starting the next world-domination project.
But I also contribute to existing open-source projects, and that is code that hopefully will stay. I find working in an existing project really gives you a different perspective - you work towards a release, you coordinate with other people, you see different coding styles...
But I also contribute to existing open-source projects, and that is code that hopefully will stay. I find working in an existing project really gives you a different perspective - you work towards a release, you coordinate with other people, you see different coding styles...
I recently started a hobby project that I've managed to keep going for a while after doing no programming at home for years. I think these things have helped.
I work remotely from home so don't end the day feeling nearly as fried as I did in an office environment. I also feel more productive in my job.
I sketched out some days to be "hobby project days" and if I'm feeling anyway capable of working on it will drag out my laptop and do something for an hour or so. Then on other days I will do something else or rest. I think this relaxed schedule is helpful because you'll at least consider the project on those days.
I borrow a pattern from my working life and keep a todo list which also acts as a done list. Moving things from todo to done is a little motivation boost. I also keep a very small diary talking about what I've done.
I don't sweat missing days if I'm tired, ill, stressed out or want a break. I'm doing this for fun.
I work remotely from home so don't end the day feeling nearly as fried as I did in an office environment. I also feel more productive in my job.
I sketched out some days to be "hobby project days" and if I'm feeling anyway capable of working on it will drag out my laptop and do something for an hour or so. Then on other days I will do something else or rest. I think this relaxed schedule is helpful because you'll at least consider the project on those days.
I borrow a pattern from my working life and keep a todo list which also acts as a done list. Moving things from todo to done is a little motivation boost. I also keep a very small diary talking about what I've done.
I don't sweat missing days if I'm tired, ill, stressed out or want a break. I'm doing this for fun.
Great answer!
Todo lists that turn into progress logs are invaluable in many parts of life!
Todo lists that turn into progress logs are invaluable in many parts of life!
That part is hard. I suggest starting small and creating something you want to use.
My side projects usually involve a great deal of hardware design, with some sort of challenge in SW. Once you have created the hardware, having something physical to remind me of the end-goal helps a lot.
I have a lot of abandoned projects as well, but I try to at least choose the project so that I learn/relearn/practice something that interests me. That way, even abandoned projects have value.
My side projects usually involve a great deal of hardware design, with some sort of challenge in SW. Once you have created the hardware, having something physical to remind me of the end-goal helps a lot.
I have a lot of abandoned projects as well, but I try to at least choose the project so that I learn/relearn/practice something that interests me. That way, even abandoned projects have value.
The most important thing for sustaining a long term programming side project is to work on regularly, ideally every day even if it is just for 10 minutes. This keeps the current state and the next step of your project fresh in your mind which makes it much easier to pick up each day. You avoid that "now where was I exactly?" hump.
It also means that you're making constant progress, even if that progress is slow. And it also mitigates any enthusiasm sapping guilt you may develop because you've started that project but have ignored it for too long.
It also means that you're making constant progress, even if that progress is slow. And it also mitigates any enthusiasm sapping guilt you may develop because you've started that project but have ignored it for too long.
Developers need to code after-hours in order to stay competitive in part because our industry enables businesses to not to provide continual learning time during an employee's workday.
If you had, say, 20% of your work week to practice on skills, technologies, patterns or ideas that weren't a direct deliverable: would the average you still feel compelled to spend so much of your free time additionally practicing skills (ultimately to the benefit of your employer)?
We bemoan the scourge of scope creep and the waste of mass meetings. Businesses demanding only short-term saleable output from developers is another drag on sustainable productivity.
If you had, say, 20% of your work week to practice on skills, technologies, patterns or ideas that weren't a direct deliverable: would the average you still feel compelled to spend so much of your free time additionally practicing skills (ultimately to the benefit of your employer)?
We bemoan the scourge of scope creep and the waste of mass meetings. Businesses demanding only short-term saleable output from developers is another drag on sustainable productivity.
> Developers need to code after-hours in order to stay competitive
Which I think is an interesting social problem, where people feel uncomfortable not working after-hours because others do.
I am a developer. I began a secret personal experiment where I do the opposite. I take 20% of my working hours for personal development without anyone knowing. I want to see if I actually become better professional. It takes great discipline for me in the face of pressure. I keep work related tasks out of my free time to minimum. I am not always succeed in taking entire 20% time to be honest.
I also try to take short breaks to avoid burn-out.
Which I think is an interesting social problem, where people feel uncomfortable not working after-hours because others do.
I am a developer. I began a secret personal experiment where I do the opposite. I take 20% of my working hours for personal development without anyone knowing. I want to see if I actually become better professional. It takes great discipline for me in the face of pressure. I keep work related tasks out of my free time to minimum. I am not always succeed in taking entire 20% time to be honest.
I also try to take short breaks to avoid burn-out.
> Developers need to code after-hours in order to stay competitive
I don't think this is true. The technology does not actually move that fast and you can keep up to date in work time by making sure you get on to projects and teams that stretch and educate you.
I don't think this is true. The technology does not actually move that fast and you can keep up to date in work time by making sure you get on to projects and teams that stretch and educate you.
That's not the case where I work.
It's a sound business decision for a company to invest in its people. Better-trained staff, happier staff, longer retention.
It sounds like the place you work isn't like that. There are other places that are better.
It's a sound business decision for a company to invest in its people. Better-trained staff, happier staff, longer retention.
It sounds like the place you work isn't like that. There are other places that are better.
That's just rubbish.
Sure the fashion show continues, with its constant churn and in order to keep up with that churn you probably need to keep on learning in your spare time.
But most problems could be solved far more simply if people put a bit of forethought in rather than chasing fads. Does every website benefit from being a SPA. Do you really need all the kubernetes and docker containers? Realistically how much are you going to scale?
Here is an example: https://adamdrake.com/command-line-tools-can-be-235x-faster-...
Sure the fashion show continues, with its constant churn and in order to keep up with that churn you probably need to keep on learning in your spare time.
But most problems could be solved far more simply if people put a bit of forethought in rather than chasing fads. Does every website benefit from being a SPA. Do you really need all the kubernetes and docker containers? Realistically how much are you going to scale?
Here is an example: https://adamdrake.com/command-line-tools-can-be-235x-faster-...
FAANG/Hedge Fund SWE here.
I'm not doing any coding in my free time (as have too many other things to do), and I'm doing very well as a high level IC.
I'm not doing any coding in my free time (as have too many other things to do), and I'm doing very well as a high level IC.
The reason I code outside work is that I have the freedom to tinker around.
I also recommend to do that. In my opinion, the more you challenge your knowledge and opinion by trying something new, the better you become at your profession.
I also recommend to do that. In my opinion, the more you challenge your knowledge and opinion by trying something new, the better you become at your profession.
> I also recommend to do that. In my opinion, the more you challenge your knowledge and opinion by trying something new, the better you become at your profession.
Why should I spend my free time to be a better wageslave?
If I have projects that I like to work on for myself, then sure, I may do some coding. However, there's no chance in hell I'll give up my free time to improve my value to an employer.
Why should I spend my free time to be a better wageslave?
If I have projects that I like to work on for myself, then sure, I may do some coding. However, there's no chance in hell I'll give up my free time to improve my value to an employer.
>Why should I spend my free time to be a better wageslave?
Because if they lead to a higher salary and you can keep your spending habits the same, you have an option of having a stronger safety net, an option to retire at 45 instead of 65, an option to see Java the island and not only Java the programming language.
Because if they lead to a higher salary and you can keep your spending habits the same, you have an option of having a stronger safety net, an option to retire at 45 instead of 65, an option to see Java the island and not only Java the programming language.
> a stronger safety net
I live in a country where a strong safety net is the (current) default.
> an option to retire at 45 instead of 65
Retiring early is only a viable option if you do so in good physical and mental health. I'd rather spend my free time keeping myself in both, and retiring at 55. This is still entirely doable; even with the outrageous rent of where I currently live, I'm still able to save a third of my net wages, while not living very frugally.
I live in a country where a strong safety net is the (current) default.
> an option to retire at 45 instead of 65
Retiring early is only a viable option if you do so in good physical and mental health. I'd rather spend my free time keeping myself in both, and retiring at 55. This is still entirely doable; even with the outrageous rent of where I currently live, I'm still able to save a third of my net wages, while not living very frugally.
Apart from that retiring at 45 (more like 60, no problem with that), all those can be had while having tons of free time for other hobbies, adventures, or more importantly family and friends. If you have kids, those years not spent with them will never come back.
Nobody dying is proud how hard they worked and how much they increased their market value.
Nobody dying is proud how hard they worked and how much they increased their market value.
> Nobody dying is proud how hard they worked and how much they increased their market value.
I'm 100% confident that this is false.
I'm 100% confident that this is false.
>Why should I spend my free time to be a better wageslave?
Did you ever get a formal education?
Did you ever get a formal education?
You're free to make that choice, but had you considered the better you become at your profession: a) your side projects will become better and more likely to free you from being a "wage slave"; and b) if you improve your value to your employer you will get better offers and likely able to negotiate either better pay or more PTO or reduced hours without compromising your income?
For me - and many others - I think people who enjoy coding are those best suited to working in the profession. If you genuinely feel like you're being asked to do things you resent doing _all the time_, you should ask yourself whether you wouldn't be happier doing something else.
For me - and many others - I think people who enjoy coding are those best suited to working in the profession. If you genuinely feel like you're being asked to do things you resent doing _all the time_, you should ask yourself whether you wouldn't be happier doing something else.
Programming isn't inherently different from any other profession. We don't expect builders to keep constructing houses in their free time in order to become better at our jobs, so why do we recommend programmers to do this?
Pretty sure there are other professions that require the employees to do something outside of the job in order to perform at the job. Firefighters for example need to stay in top physical condition. I imagine that's not possible without some sacrifices outside of your work schedule.
Exactly.
Having such a passion for what you do that you want to do it on your own time, creates a positive feedback loop, making the whole experience a lot more enjoyable.
Having such a passion for what you do that you want to do it on your own time, creates a positive feedback loop, making the whole experience a lot more enjoyable.
One more factor I think should be taken into account is how much learning people get out of their work.
40 hours of meaningful work pays off tremendously IME, unfortunately it’s quite easy to be doing closer to 0 hours of meaningful work than 40.
40 hours of meaningful work pays off tremendously IME, unfortunately it’s quite easy to be doing closer to 0 hours of meaningful work than 40.
Speaking as a person with (way too) many side projects, I think that it may be wise to code only at work.
Quite a few very productive people, who work during work, and then later - do something different (so not "coding another app", or even other ways of spending time with a computer). It seems to be healthier long term - I met much fewer burnouts among them.
It is not binary - such people do once in a while time to learn something new. But it is very different from having a "second job".
...
At the same time, I don't know many companies that do like side projects (well, some offer non-negotiable contracts de facto forbidding them, vide Google).
If a company looks for a person with inner passion, usually it is a hope to channel it into company's work, to get (instead of a 9-5 worker) a 9-9 worker. The best companies I worked for do not interfere with someone's side projects.
Quite a few very productive people, who work during work, and then later - do something different (so not "coding another app", or even other ways of spending time with a computer). It seems to be healthier long term - I met much fewer burnouts among them.
It is not binary - such people do once in a while time to learn something new. But it is very different from having a "second job".
...
At the same time, I don't know many companies that do like side projects (well, some offer non-negotiable contracts de facto forbidding them, vide Google).
If a company looks for a person with inner passion, usually it is a hope to channel it into company's work, to get (instead of a 9-5 worker) a 9-9 worker. The best companies I worked for do not interfere with someone's side projects.
It is what it is, really. Some of my colleagues cringe at the thought of touching a computer either after hours or on the weekend. Others literally spend their entire 16 awake-hours on computers (not necessarily just programming, but a large majority are doing technical side projects, etc).
Is there a difference in their work output? Absolutely there is, in my experience here. Contrary to my prior assumptions, it is actually the _die hard_ tech guys that
- Produce excellent work
- Produce a consistent amount of work over long periods
- Keep up to date with tech
- Don't really seem to suffer "burnout"
- Consistently improve their skills and progress their careers
- Have a high probability of being enthusiastic about a new project, technology or their work
Where as the ones who are "work-only" programmers (not always) tend to
- Produce excellent work in short bursts, and then average work the rest of the time
- Do not produce consistent amounts of work over long periods
- Not only struggle to keep up with tech, but actively _fight_ the idea of having to learn something new
- Have a high probability of going to management to discuss their "burnout" and take extra time off
- Seem to have one specialized skill set that neither improves nor gets worse - they just float around the same level
- Rarely show enthusiasm for a new project, technology of their work
People often refer to "burnout" in the context as a short term solution - but I honestly think that "burnout" as we know it is a result of someone who has already "checked out" or "lost the passion" for what they do (or perhaps, they never had it, and just went into this career for other reasons)
This seems really grim for the non _die hard_ people, so here's some positive traits I've seen in them that are usually lacking in the _die hard_ people.
- Typically have much better communication skills
- Usually better at reasoning for which technology to use in a project (ignore "language or framework of the week")
- Are better with customers and maintaining relations
- Provide more support to their colleagues
- Willingness to take on different kinds of tasks (no attitude of "that's not my job")
I think it's fair to say that balance is key between these very dynamic cultural traits we observe as programmers.
EDIT: formatting
Is there a difference in their work output? Absolutely there is, in my experience here. Contrary to my prior assumptions, it is actually the _die hard_ tech guys that
- Produce excellent work
- Produce a consistent amount of work over long periods
- Keep up to date with tech
- Don't really seem to suffer "burnout"
- Consistently improve their skills and progress their careers
- Have a high probability of being enthusiastic about a new project, technology or their work
Where as the ones who are "work-only" programmers (not always) tend to
- Produce excellent work in short bursts, and then average work the rest of the time
- Do not produce consistent amounts of work over long periods
- Not only struggle to keep up with tech, but actively _fight_ the idea of having to learn something new
- Have a high probability of going to management to discuss their "burnout" and take extra time off
- Seem to have one specialized skill set that neither improves nor gets worse - they just float around the same level
- Rarely show enthusiasm for a new project, technology of their work
People often refer to "burnout" in the context as a short term solution - but I honestly think that "burnout" as we know it is a result of someone who has already "checked out" or "lost the passion" for what they do (or perhaps, they never had it, and just went into this career for other reasons)
This seems really grim for the non _die hard_ people, so here's some positive traits I've seen in them that are usually lacking in the _die hard_ people.
- Typically have much better communication skills
- Usually better at reasoning for which technology to use in a project (ignore "language or framework of the week")
- Are better with customers and maintaining relations
- Provide more support to their colleagues
- Willingness to take on different kinds of tasks (no attitude of "that's not my job")
I think it's fair to say that balance is key between these very dynamic cultural traits we observe as programmers.
EDIT: formatting
It's okay not to be passionate about new technologies. From CS point of view it's all turtles down and you can implement the same algorithms and datastructures on pretty much on any language.
Being to enthused about new technology is my jaded eyes perhaps a negative trait. New is not always better. Better is better, and if it's better, then it's better - not just because it's new.
From business point of view caring actually about the domain after you know how to program is much more important than caring deeply about the implementation language or platform. Programs in the office are developed to help end users in their work. That's what matters - solving the end users problem and making their life more productive. Not doing it on the latest and greates language version.
Being to enthused about new technology is my jaded eyes perhaps a negative trait. New is not always better. Better is better, and if it's better, then it's better - not just because it's new.
From business point of view caring actually about the domain after you know how to program is much more important than caring deeply about the implementation language or platform. Programs in the office are developed to help end users in their work. That's what matters - solving the end users problem and making their life more productive. Not doing it on the latest and greates language version.
In my anecdotal experience, the guy who did work related stuff in his spare time was an absolute nightmare to work with (but he was friends with the boss so safe to do whatever he liked). He seemed to think he was a lot better developer than what he actually was. He churned out a lot of small projects, but they never seemed of great quality and the question of "why?" came up a lot of the time (he developed an OCR reader to process student evaluation forms, rather than an online form).
My other colleague who did tech related (but not work related) stuff in his spare time was knowledgable about a lot of stuff and a lot more pleasant to work with. He knew a lot of security related stuff that came in relevant when we thought we had been hacked.
My other colleague who did tech related (but not work related) stuff in his spare time was knowledgable about a lot of stuff and a lot more pleasant to work with. He knew a lot of security related stuff that came in relevant when we thought we had been hacked.
There are lots of things it's perfectly fine to do or not do; that's not the issue. When it comes to competition, you must take advantage of every edge you can get. And when you're seeking a position, you ARE in competition.
As an individual, there are a number of edges that you can leverage to your benefit: raw talent, acquired skills, shipped products, your network, and politics. Which ones you build and practice is your own affair, but for your future's sake at least build SOME of them.
As an individual, there are a number of edges that you can leverage to your benefit: raw talent, acquired skills, shipped products, your network, and politics. Which ones you build and practice is your own affair, but for your future's sake at least build SOME of them.
I have a problem, in that I don't only code at work. I actually code quite often outside of work, but I mostly play with some ideas or implement some simple prototypes for games, websites or stuff I am into. But I never really build a product or anything that I'd be proud enough to show in a portfolio, so from a hiring perspective it's as if I didn't code at home at all.
As someone who has interviewed a lot of people, those projects do count. If you're leaving them out of your job applications, you're probably hurting your prospects.
I'd say to describe them exactly as you have here. The very fact that you're motivated enough to do them is a point in your favor, and if the code looks decent, that's more points.
If I compared you to someone else with the same resume, I'd hire you over them.
I'd say to describe them exactly as you have here. The very fact that you're motivated enough to do them is a point in your favor, and if the code looks decent, that's more points.
If I compared you to someone else with the same resume, I'd hire you over them.
There's nothing wrong with including those things in a portfolio at all. You don't need to only list sellable or fully usable products in a portfolio
Participating in an existing open-source project can help, as you can contribute as long as you are into it and simply drop out once you stop caring. Your contribution will live on regardless and you can at least show some pull requests and created/solved issues.
> so from a hiring perspective it's as if I didn't code at home at all
Even if you don't list them - the knowledge gained from these projects can still shine through in technical interviews, and you can list more languages and frameworks on your CV.
Even if you don't list them - the knowledge gained from these projects can still shine through in technical interviews, and you can list more languages and frameworks on your CV.
I find that middle answer a little objectionable -
Some of the best developers I've ever worked with do very little coding outside of office hours.
They all had a passion for it, and they tended to do some goal-oriented projects outside of work time now and again, but not be constantly hustling a side project or attempting to pick up a ton of new skills every single evening.
The implication that you can't be the best unless you're dedicating another 20-30 hours a week on top of your day-job is just wrong. And the idea that throwing another 20-30 hours a week outside your day job at coding will make you better at it than someone that doesn't also isn't really borne out by experience.
You can be passionate but have other hobbies and your own life away from the screen. The passion is the important thing. (OK, and the skill, you need an aptitude for this stuff)
Some of the best developers I've ever worked with do very little coding outside of office hours.
They all had a passion for it, and they tended to do some goal-oriented projects outside of work time now and again, but not be constantly hustling a side project or attempting to pick up a ton of new skills every single evening.
The implication that you can't be the best unless you're dedicating another 20-30 hours a week on top of your day-job is just wrong. And the idea that throwing another 20-30 hours a week outside your day job at coding will make you better at it than someone that doesn't also isn't really borne out by experience.
You can be passionate but have other hobbies and your own life away from the screen. The passion is the important thing. (OK, and the skill, you need an aptitude for this stuff)
It's ok to do whatever you want to do. To me it's important to pursue other interests and do little code outside working hours. Maybe I'll not be as good of a coder but I'll be a better person overall, and for me, that's the point of all the effort.
I'm really curious about people claiming to work more than 40h a week. How much of those hours are productive work? Are they really any more productive than anyone working less hours? Do they all eventually burn out? Are they happy?
I'm really curious about people claiming to work more than 40h a week. How much of those hours are productive work? Are they really any more productive than anyone working less hours? Do they all eventually burn out? Are they happy?
People say to avoid Facebook + Instagram because seeing lots of posts that exaggerate or distort the positives and play down the negatives of life is bad for your mental health.
I think this should be applied to tech community posts as well - you don't need to be working at a big tech company, be a millionaire, have your own successful solo project etc. to be happy with life. Constantly comparing yourself to other people is a fast path to unhappiness.
I think this should be applied to tech community posts as well - you don't need to be working at a big tech company, be a millionaire, have your own successful solo project etc. to be happy with life. Constantly comparing yourself to other people is a fast path to unhappiness.
Does the title try to imply that having a life and coding at home are incompatible?
Maybe just try to stop shaming people who enjoy coding at home, for a while? I have no idea why this rhetoric is considered ok.
Maybe just try to stop shaming people who enjoy coding at home, for a while? I have no idea why this rhetoric is considered ok.
I’m now a tech lead and I don’t code much even at work, but I still don’t have a life - no friend, no real hobby. Haha
Just random advice: feel free to pick a hobby randomly. My friend did that and I thought it very strange, but he committed himself to it and eventually really enjoyed it. Not only that, but he met a lot of people and eventually met his wife that way. It sounds weird, but if you aren't particularly passionate about something, it's a bit easier to pick a hobby because you can choose anything. Based on my friend's example, I decided to pick cooking as a hobby -- because who doesn't want good food. It's still the thing I do whenever I'm stressed out and just want to relax. It's a very strange thing.
You misunderstand. I have no life because I’m married and have two kids.
But I like coding at home after coding at work :)
I write programs for fun. I build hardware for fun. I also travel, go to church, listen to music, go to concerts, cook, volunteer for NGOs, participate in CouchSurfing, ride a bicycle, take photos, play games, study, parapente, ski, hike, and swim for fun, and somehow even have the time to sit back and watch a beautiful sunset when there is one. I don't watch TV, drink, rarely watch movies or YouTube, though sometimes play AoE.
Ideas come all the time, usually from those other areas of life. When I have a new idea, it makes a mess all over my browser tabs and desktop while I read all about how to implement it (data sources, existing projects). The idea consumes my thoughts. I talk about it to people who I meet. When I should be praying, I'm thinking about the algorithm. The obsession is probably rather weird to non-technical people, like my long-distance girlfriend.
If I'm in the office but haven't got any pressing deadlines for company work, I'll do some coding on my side project. It's not usually something that can make money, though it is usually educational. I want to be able to publish it on my Github, although I often procrastinate writing the documentation. Some companies (e.g. Google) say that they support innovation, but they want to own all my intellectual property, and that means that I'm not allowed to pursue ideas while working there. I've avoided such companies for specifically that reason.
When I finally do write it up, my software Show HN will sometimes get onto the Hacker News front page, or hardware on Hackaday. Very rarely, someone might see that and offer me a job. I suppose that's the reason I've written less documentation these days; I'm waiting until I hear a visa result and then I'll know about which country I should be working in.
My ideas don't make money. I'm probably the only user. Yet in practice, side projects have helped me build up a code base that I can use for all programming tasks, including at work.
In case you're wondering what kind of ideas these are, here's a small sample from the last year: EspUSB WiFi keyboard manufacturing, 12V and mains to USB adaptor inside a car form factor, WiFi to VGA on an ESP8266 for PPT slides, Fondant (JavaScript bookmarklet to load pdfjs library to open a PDF file to run a self-contained web app stored as PDF attachments), MySpace Dragon Hoard by country/language/genre for learning languages through music, a Chinese/English chatbot based on song lyrics to automatically write love letters.
I don't judge people who only code as work; they're better at making money than me, and are definitely more likely to be promoted to management and have a good career. All these other things inspire me in a way that LeetCode just doesn't. Therefore other people get interviews much more easily, and know how to sell themselves. I'm bad at front-end design, so as a portfolio most of these look like rubbish. When I have a job (like now!), I don't need to worry about food and shelter, and the rest of things in life mean I'm quite happy, really. Being contented means I'm not interested in the "hustle", so I'll never make as much money and I know it, but that isn't important to me. I hope this resonates with some other passion-programmers, and I'd like to hear any opposing or similar perspectives.
Ideas come all the time, usually from those other areas of life. When I have a new idea, it makes a mess all over my browser tabs and desktop while I read all about how to implement it (data sources, existing projects). The idea consumes my thoughts. I talk about it to people who I meet. When I should be praying, I'm thinking about the algorithm. The obsession is probably rather weird to non-technical people, like my long-distance girlfriend.
If I'm in the office but haven't got any pressing deadlines for company work, I'll do some coding on my side project. It's not usually something that can make money, though it is usually educational. I want to be able to publish it on my Github, although I often procrastinate writing the documentation. Some companies (e.g. Google) say that they support innovation, but they want to own all my intellectual property, and that means that I'm not allowed to pursue ideas while working there. I've avoided such companies for specifically that reason.
When I finally do write it up, my software Show HN will sometimes get onto the Hacker News front page, or hardware on Hackaday. Very rarely, someone might see that and offer me a job. I suppose that's the reason I've written less documentation these days; I'm waiting until I hear a visa result and then I'll know about which country I should be working in.
My ideas don't make money. I'm probably the only user. Yet in practice, side projects have helped me build up a code base that I can use for all programming tasks, including at work.
In case you're wondering what kind of ideas these are, here's a small sample from the last year: EspUSB WiFi keyboard manufacturing, 12V and mains to USB adaptor inside a car form factor, WiFi to VGA on an ESP8266 for PPT slides, Fondant (JavaScript bookmarklet to load pdfjs library to open a PDF file to run a self-contained web app stored as PDF attachments), MySpace Dragon Hoard by country/language/genre for learning languages through music, a Chinese/English chatbot based on song lyrics to automatically write love letters.
I don't judge people who only code as work; they're better at making money than me, and are definitely more likely to be promoted to management and have a good career. All these other things inspire me in a way that LeetCode just doesn't. Therefore other people get interviews much more easily, and know how to sell themselves. I'm bad at front-end design, so as a portfolio most of these look like rubbish. When I have a job (like now!), I don't need to worry about food and shelter, and the rest of things in life mean I'm quite happy, really. Being contented means I'm not interested in the "hustle", so I'll never make as much money and I know it, but that isn't important to me. I hope this resonates with some other passion-programmers, and I'd like to hear any opposing or similar perspectives.
keep telling yourself that. in 2020, it's all about the hustle.
I code a lot, work 70h per week and am looking for a job. Contrary to 9-to-5 programmers I have built really complex systems (like a debugger or a sql engine). I can find an optimal solution in 10 minutes for almost any code wars challenge > 4 kyu. Who is hiring ?
> Contrary to 9-to-5 programmers I have built really complex systems
Those programmers have also built really complex systems, including a debugger and a sql engine.
And many of those don't sound like an ass either, hence the downvotes.
Those programmers have also built really complex systems, including a debugger and a sql engine.
And many of those don't sound like an ass either, hence the downvotes.
Yeah I always sound like an ass this is why I have a lot of problem finding a job. However once I'm hired I really do work 70h a week for 38k€ (per year, yes) but still am treated like a piece of shit (the reason for that is pure discrimantion but I won't dwelve into this). Then I leave, and they ask me to come back, still treating me like a dog.
I wan to kill myself and I want to kill you.
https://www.youtube.com/watch?v=axWt4HVT7iY&t=3m57s
I wan to kill myself and I want to kill you.
https://www.youtube.com/watch?v=axWt4HVT7iY&t=3m57s
Actually I'm considering dropping out of the industry and starting a crime career. I have been in touch with someone who'd be interested in operating drones to deliver haschich from Morocco to Spain.
Oh and I never downvote
(Edited for clarity.)
Many of the most famous coders aren't just coders, but supercoders.
Because software has a marginal cost of 0 (development cost rather than per unit manufacturing cost) there is pressure to become a supercoder.
I have an analogy for this:
Think of the life of a supermodel. Not just a normal model, but a supermodel.
If you want to be a supermodel, I believe it's not enough to just diet while you're at work, and come 5 p.m. or the end of a shoot start gorging on chips, sugary beverages, fast food, candy bars and ice cream until shooting starts the next day. Instead I believe a supermodel is on a "diet" all the time, through their whole career; it's part of their lifestyle. They wouldn't be a supermodel if it weren't.
Analogies are leaky but could this be true for "supercoders" too?
Maybe a supercoder is not going to be able to clock out at 5 p.m. and not think about or touch code until the next day. Maybe it is a lifestyle.
It seems clear that there are "supercoders", such as Linus Torvalds or John Carmack in the world.
Are there any who don't have coding as a "lifestyle" and who just coded a few hours a day while they built their careers as a supercoder?
As with being a supermodel, not everyone needs to be a supercoder, even to be a professional coder, and that's okay.
However, I think supermodels are more beautiful than everyday people, and supercoders code better than the average coder, too. They command different salaries, dictated by supply and demand.
Many of the most famous coders aren't just coders, but supercoders.
Because software has a marginal cost of 0 (development cost rather than per unit manufacturing cost) there is pressure to become a supercoder.
I have an analogy for this:
Think of the life of a supermodel. Not just a normal model, but a supermodel.
If you want to be a supermodel, I believe it's not enough to just diet while you're at work, and come 5 p.m. or the end of a shoot start gorging on chips, sugary beverages, fast food, candy bars and ice cream until shooting starts the next day. Instead I believe a supermodel is on a "diet" all the time, through their whole career; it's part of their lifestyle. They wouldn't be a supermodel if it weren't.
Analogies are leaky but could this be true for "supercoders" too?
Maybe a supercoder is not going to be able to clock out at 5 p.m. and not think about or touch code until the next day. Maybe it is a lifestyle.
It seems clear that there are "supercoders", such as Linus Torvalds or John Carmack in the world.
Are there any who don't have coding as a "lifestyle" and who just coded a few hours a day while they built their careers as a supercoder?
As with being a supermodel, not everyone needs to be a supercoder, even to be a professional coder, and that's okay.
However, I think supermodels are more beautiful than everyday people, and supercoders code better than the average coder, too. They command different salaries, dictated by supply and demand.
A rather bad analogy.
Super models are not unique in that they take their work home and watch their diet, their skin, etc
Plenty of regular models and people that you'll find putting in the same or more. Sure they maximised their chance of success by putting in this effort and by getting out there, etc but that the end of the day they were still lucky with their features, who they met, that persons preferences, etc.
As far as the actual topic goes. Sure there is pressure to become a super-coder and again there's some prerequisites like high intelligence but also drive that stems from passion and the ability to focus for extended periods of time. Is one of those things not found either naturally or because he's boxed into some employee role that coder isn't necessarily bad but unlikely to reach that status and is just gonna burn out.
As far as the actual topic goes. Sure there is pressure to become a super-coder and again there's some prerequisites like high intelligence but also drive that stems from passion and the ability to focus for extended periods of time. Is one of those things not found either naturally or because he's boxed into some employee role that coder isn't necessarily bad but unlikely to reach that status and is just gonna burn out.
Maybe your analogy is not the best but you made a good point and I'd agree.
Yes, of course it's perfectly ok to have a life of not programming outside of work.
But these types of articles are always missing the point: it's not all about your inner feelings but about the _others_ you don't control who value passion programmers more than 9-to-5 programmers.
If you truly want to be at peace with this blog's advice, what you're really saying is that you acknowledge that many companies, hiring managers, startups, etc value the nonstop hobbyist programmer but don't care.
On the other hand, many 9-to-5 programmers who want to compartmentalize their coding to work hours feel resentment and unfairness that many in the business world prefer the passion programmers with side projects, github contributions, hackathon competitions, etc. This blog post will do nothing to convince those hiring managers to treat the 9-to-5 programmer and the weekend programmer as exactly equal. That's unrealistic.