It is perfectly OK to only code at work, you can have a life too
zeroequalsfalse.press
zeroequalsfalse.press
These days I don't, as a rule, code for work outside of work hours. But I need to code in my spare time. That's when I can do things that really interest me, side projects where I can enter the 'flow', something I nearly never can do at work anymore. I have to go into flow mode now and then to keep up my ability for concentrating on problems (and yes that's necessary to keep up my work performance too). A few years back the constant interrupts at work degraded my performance so much that I spent my three week holiday in various cafeterias, with a laptop and documentation, and worked all day on my hobby project, finally re-learning to enter the flow again. As in "I looked up, and five hours had passed". Myself, laptop computer, documentation, coffee, food available. Happiness.
That’s dumb. Of course you can “have a life”, regardless of whether your hobbies include something you also get paid for. Denigrating folks as not having a “life” for this reason, even as a rhetorical device, is dumb.
The author even says, after listing activities one might do outside work, "But is it really necessary? That is for you to decide." It's about not needing to feel obligated to be into all that, not disallowing it.
But if they are really trying to get better, then they have to do 'deliberate' practice. Just grinding through things isn't the end-all-be-all. You have to really be trying.
I know that's a bit glib, but I think that there has been some good work done in this area of 'deliberate' practice recently. Cal Newport, Dan Coyle, Josh Waitzkin, Tom Sterner, and others have written a fair bit about the deliberate part.
A good intro with good sources is here: https://jamesclear.com/deliberate-practice-theory
Not only that, but the types of coding you can do at home are often much different than your work. Most hobby projects won't give you a chance to process terabytes of data or serve data to hundreds of millions of clients or send bytes across the country with microwaves. So if your job is related to any of those things, you're not going to improve much at home.
Also, much of what companies value in software developers isn't raw coding ability. You have to be able to work with other people, understand business requirements, convince people to help on your work, etc, etc. From that perspective, somebody who spends their evenings at bars talking to strangers might be building more important career skills than the person who codes all night.
Then again, most jobs won't give you that chance either.
It can be that coding hobby projects can be your only chance to learn how to write good, readable, maintainable and performant code. If your job involves churning out features for customers or closing tickets, you will not have time for anything other than "your best under time pressure". Hobby projects can give you opportunity to improve the quality of code you produce by default.
I have never had that happen at a day job.
Start fasting by skipping breakfast and work your way up to skipping lunch and then doing a full day fast if you’re going to do it and always stay hydrated. If you’re doing a long fast make sure you’re getting salt too, even if it’s not hot enough that you’re sweating much. Take it easy and go slowly like with starting a new exercise regimen.
I often get bogged down with "how do I monetize, market, and maintain this", which just kills my motivation. Just because something isn't marketed and monetized doesn't make it invalid; outside of work coding has brought me numerous benefits:
- Learning new things. Not because I feel like if I don't I'll fall behind, but because I like learning things I don't get to experience at work.
- Expressing yourself. I like being able to execute on my vision without worrying about what my employer wants. Or, if its a game I'm making, using that coding to express an artistic vision.
- Meeting people. You can still talk about your project at meetups or online without trying to "sell" it.
I'm of the latter group.
- Hobby project to play with some tech just because you find interesting
- Hobby project to play with some tech that might help your career in the future
- Homework project to learn about the tech you currently use at work
- For-profit project to hopefully earn some extra money
- For-profit project to hopefully earn enough money to allow you to quit your day job (my case now)
- Portfolio-making projects to show at job-interviews as a junior developer (my case a couple of years ago)
All of them seems legit if your decision to do them is personal. But some of them might be prone to abuse by employers
If someone is thinking that way, then they aren't engaging in a hobby, they're engaging in a startup. That's two different things.
I used to fall into this way of thinking before I recognized what a trap it actually is. Now, when I start a hobby project, I intentionally ignore possible monetization of it. If I feel a strong urge to monetize, then I move it out of my recreation time and into my work time.
He worked so hard during the week (and weekends - theatre people keep some heavy hours!) that he rarely did many passion projects (though he did manage to fit a few in). But when he did they were on things that we really important to him, and that he gave himself the time to enjoy the process, and results and the iterations to follow.
I think he's always set me to have a good work life balance, and when I look back at the life he built for himself (and for us) it makes me really proud.
Now he's 'retired' he is in over-drive. He and my mother are slowly hand-painting their entire house, nothing is safe from redecoration. He's also painting loads of portraits and writing far more. Great to see a 78 year old man have so much drive and energy for creativity. I hope I do too at his age.
Does a doctor practice medicine outside of his hours? Again, some work at free clinics, but generally no.
Do veterinarians like it when you ask them to take a look at your cat when they're not in clinic? No. Almost always no.
Work is work, leisure is leisure. If coding is leisure for you, that's great.
Yes, all of them study law outside of work clients pay them to do; in fact, they are required to do so as a condition of licensing, it's called continuing education requirement.
The same is true of virtually all licensed professionals.
Programmers aren't licensed professionals, so they don't have a licensing requirement for continuing education. But the programmers that are professionals, even if not licensed are doing continuing education anyway, and hands-on projects that aren't for paying clients is frequently a big part of that.
(Now, professionals with good employers will often be paid to do continuing education on work time, and that's true of programmers, too. If you have 20% time, your continuing education projects may not be “side projects”.)
Yes, all professionals should be reading and continuing their education. I read tons of technical publications. But I rarely commit code.
But working full-stress cases outside of your actual work? Sounds like a good way to burn out.
And doing side projects isn't practicing the trade that would be regulated if programming was a regulated profession.
> But working full-stress cases outside of your actual work?
Whoever said programming side projects should be “full-stress cases”?
That's what the context is here. There's a notion in the software development profession that you should have a side project which you put near full-time hours and / or effort into. Because you love coding so much you can't stop.
Be it your future start-up, or contributing to an open source project (or 3).
Studying law is equivalent to reading the tech news / seing what other people are doing / keeping up with best practices. Actually writing a project using it is another level of complexity.
It's the difference between reading and analyzing the arguments of a legal case and reconstructing and presenting the arguments yourself.
I disagree.
> There's a notion in the software development profession that you should have a side project which you put near full-time hours and / or effort into.
There's a common notion that you should be doing practical learning, including side projects, outside of “normal” paid work. It is far less common, however, to encounter the idea that it should be near full-time hours (and it's not clear to me what “full-time effort” distinct from hours even could mean.)
> Studying law is equivalent to reading the tech news / seing what other people are doing / keeping up with best practices.
No, it's not: in fact, this kind of professional reading is often expressly excluded from the definition of activities that apply to continuing legal education requirements. Lawyers do, as a practical matter, need to do the equivalent of what you are talking about, but in addition to not as their CLE requirement.
She has to read new laws once in a while (sometimes even once per year). To be relevant I as a Software Developer have to read about new stuff DAILY, while writing to my own blog, do side projects from time to time and learn other stuff i need for my current work.
I would not be lyin when i say being a good software developer (in the eyes of industry) costs you around 20h of work extra per week.
No, you don't. To be relevant, you just have to know a little JavaScript. You can find a good-paying job with that.
What you described is something that's correlated with personal love in the craft, and which can help you get better at it (then again, it also makes you more frustrated about professional life). You can fake it, of course, if for some reason you feel you need to,.
For independent practitioners, it's outside of billable client time, but, yes, for people working wage labor on the profession this is true.
Software dev as wage labor has pretty crappy (for a profession) work conditions, and part of that is employers not alotting time and funding for CPE.
That doesn't mean people in the field shouldn't do CPE, but it does mean they should seek better terms of employment.
I think in most fields the top performers are going to be investing significant effort outside work to practice, learn, and improve themselves throughout their career. Coding is a little bit unique compared to certain professions because it can be done alone and without incurring much additional cost.
Yes. It's the same with all of the engineers I know (and I suspect it's the same with all professions).
With my engineering friends, we had to set a rule that if we're at a social function that includes people not in our field, "talking shop" is expressly forbidden. This is to prevent a problem that had gotten out of control -- having a handful of people talking about arcane things that nobody else can understand, let alone are interested in.
Agreed. I spend a lot of free time reading about and discussing technology. Occasionally teach, occasionally do some advising.
But I rarely have a side project which consumes my time. I guess the equivalent would be a nurse going and taking a shift at another hospital.
You're looking at the wrong profession. A nurse can't "just" go and start nursing stuff. Programmers are like carpenters - they can just go and start building stuff for themselves, using the same tools and skills they use at work. Except they also have an industry-imposed, medicine-style continued learning requirement due to how fast the field keeps changing.
Constantly. Besides being on formal call, there are informal consults texted or called in constantly, plus emergencies, plus friends-and-family consults. Plus paperwork for the patients you’ve seen very often takes longer than your “official” hours. And keeping up to date on the relevant literature is not something that happens during work hours.
Very very few docs stop working when their “hours” are up. And I’m not talking about exceptionally driven, ivy-festooned docs - I’m talking about the average schmoe you’d probably look down on.
How many docs are working on side projects in their free time?
They all read professional publications in order to keep up with the progress their professions are making. In many cases this is a few hours a day of reading.
For most this is a chore but it's part of being a professional in those professions.
I read mostly technical content related to software dev / general tech, but I rarely create software outside of work.
Studying, practicing, and improving your skills are just as much "doing the job" as actually writing code. It's all an essential part of production in the end.
My wife(a vet) won't even let me tell people, that aren't very close to me, that she is a vet. It's ridiculous the amount of free advice she gets asked. The worst part about it is that she has had several classmates from vet school that have been sued(and lost) from the free advice they gave to other people outside of work hours. It's a huge liability issue and trust me, the people who want free medical advice are the people who will sue you because you didn't correctly diagnose the problem for free.
For the reason you stated. And some have told me that providing that kind of free advice devalues the profession and enables bad (read cheap) pet owners.
Consider instead a car mechanic, or a carpenter. It wouldn't be surprising to find a mechanic doing some old car restoration work after hours, or a carpenter making their own trinkets or furniture. Unlike the skills of doctors and lawyers, those skills can be easily applied in personal life.
Software development is a funny trade, with continuing education requirements of medicine and law (though self-imposed, not regulated), but with work type more similar to carpentry or car repair. That is, unless you're working with some very unique hardware or very unique datasets, you can do the same type of work at home that you do at work (and quite likely of better quality, as you're likely to have better working conditions at home).
Most of the fun of programming for me is the mathematics and theory portion, I like to implement or toy around with algorithms and write little half finished scripts. That is fun for me, but is that presentable? Nope.
I once applied for a job where that was the entry exam: they gave you the specs for a program about a month in advance of your interviews and you were expected to bring in the solution you wrote. The task was intentionally extremely difficult (they specifically warned you about that).
Although I didn't get the job, I really did appreciate that approach to skills testing. I thought it was brilliant.
There is limited time in a day and in life, you can't spend hours on multiple hobbies and interests without compromise and without eventual burnout within ones capabilities.
Feel like this kind of do's and don'ts of when to spend time and how much time to spend coding is a recurring topic that should be put to bed in the developer world. Those who want to shine above the rest will always and should pursue that goal, those falling below that bar is perfectly fine, it's all about personal wants and needs at the end of the day.
This strategy might work for a few years, but is a long-term career hazard. You are in charge of raising your own bar.
Besides, the tech itself is rarely the limiting factor.
I used to have personal projects that didn't pay off in any way beyond personal learning, and they sure were taxing on my life.
Now I have a job that I enjoy and is challenging enough. For the last year I have been making a conscious effort to change how I deal with personal projects. I try to take on tasks that are low effort, and not feel guilty about dropping something if I feel that it doesn't work, or it's starting to require too much from me.
Most recently from Zürich, $448,000 210k Cash| 190k Stock 48k Bonus
Regardless of how you do it, ensuring that you are continuously learning and staying relevant is important.
In short, you can make a pretty good living simply maintaining old, existing software and never learning anything really new. After all, people only care that it works and that you fix their perceived issues with it. As long as you keep doing that, you'll be employed.
The only time I really enjoy coding, in the sense that 12 hours can pass by in the blink of an eye, is when I'm working on my own things. So by the time I'm done working for ~8 hours a day I'm bursting with excitement for when I get to fire up my development VM and code for another 6 hours.
I get excited learning new things about my field. I get excited encountering and solving new problems. I get excited when I am able to form connections between isolated domains of knowledge and create work that is more valuable than the time I spent on it.
Programming is engineering, but it is also art. I am an engineer, but I am also an artist. I live to create; writing useful applications, making video games and writing music are all ways I do this. My career path has and will continue to be a reflection of these values.
I understand if some people chose to become programmers just for the money. I hope you are at least treating my field with respect and not just getting by with minimal effort while eroding employer/employee trust and dragging down the median salary.
But consider that you could be making money in a field you are truly passionate about, blurring the lines between what is "work" and what is a "personal project". This is what it means to become successful in life, not wads of cash.
I think, for your own sake, if you're skilled at something, you should try to use that skill on your own terms. Many arduous professions are the practise of enjoyable skills on someone else's terms (be it an employer or a market): driving, cooking, gardening, etc.
Some of my career's and company's circumstances (no senior front-end-devs for reviewing and mentoring around, mostly work on classic websites/web-shops) make it necessary. It's the only way to keep my skills somewhat up-to-date and to improve beyond what I do at work.
Coding and building is fun to me, so I was ok with this. After getting kids though, my available home-coding-time shrunk to almost zero.
My employer does allow and pay for conferences/workshops, but there's nothing as good for learning as a real project with more senior team-members, I guess.
I really don't want to leave after 8 years of building reputation and seniority, and start from scratch elsewhere, in a big unknown.
How do others cope with that?
Since then, the situation has only gotten more extreme. My family size goes to 11, and yes that is one louder than 10. Soon I'll have a dozen, all homeschooled.
I got one kid interested in following in my footsteps, so sometimes I get to have fun teaching him. Mostly, there just isn't time for anything extra. One factor that helps is that I'm in a different part of the industry. You're in "Front-End", which might mean you need to learn a new javascript framework every year. I mostly write in C, for which the last update was 8 years ago and the last significant update was 20 years ago. When I'm not doing C, I'm doing a wide variety of different kinds of assembly language. That changes, but one is expected to constantly refer to the manual. So really I've gone a quarter century with no significant change. I am pondering the value of learning rust, but I certainly don't have to scramble each year to learn the hot new thing.
Some people code and live on the MeetUp circuit when they're not coding. I do those things on rare occasion, but I've got a wife, a small child, and other hobbies.
I like that this article reminds all of us to not normalize overwork.
That said, it seems anti-hustle is becoming the new hussle, and yes, it's ok to code on your own as well if you enjoy it, want to learn, etc. You just shouldn't HAVE to.
If you want to write code for fun and it makes you happy then go for it! But by no means feel obliged to. It doesn't make you any more or less of a programmer.
That said, I was unaware that there are people who feel pressure to code in their off-hours. That's silly. On your own time, you should do whatever helps you live a good life and be happier. If that includes programming, there's nothing wrong with that. If it doesn't, there's also nothing wrong with that.
Funny. What I actually noticed is the pressure to _not_ code outside of work hours. :-P
It feels like hobbyist hacking is increasingly falling out of place, even to the point of gaining antagonistic feelings about it.
Except everyone is. The people calling us "nerds" having "no life" only recently shut up, and that's because they see how much money this occupation nets and now are silently jealous. But if some of them asks you "what are you up to this weekend", and you say "coding $sideproject", they'll look at you weird.
That's all on top of the social pressure to "not be on the computer so much".
I have never met a professional that only engages in their craft at work only. Professionals practice their craft all time especially outside work.
Work time is game time. Work time is not the time to engage in Research but strictly development. Unless you work for an R&D lab. It is the engaging in research instead of development that's the cause of software projects failing and having all sorts of issue. When it's D time, it's time to simply apply all the best principles that you know, nothing else.
This means, you must practice (research) off hours.
Can you imagine a math professor that only practices mathematics only when they teach? Or a musician that only plays music only during performance?
It's okay to only code at work if you are just a code monkey and not a professional. In that case, don't expect the high rewards of the industry, don't claim to be a "professional" granted that the definition of a professional is one that does it only for money.
Look at the very best in the industry, just think of them, name em. They all code outside of work. Jeff Dean, Norvig, Linus, Stallman, Carmack, Wolfram
What is a 'True Professional' in the context? I don't think you can compare the top 0.01% of any profession to the rest and say this small percentage are the 'True' professionals and the rest are not. Pretty sure my accountant is not doing accounting in his spare time, he is no less a professional for not doing so.
I disagree, although I suspect that I don't know what you mean by "true professional".
> Look at the very best in the industry, just think of them, name em.
Sure, but you don't have to be the very best in the industry to be a legit professional. By definition, the overwhelming majority of highly skilled engineers are not the very best in the industry.