I don’t understand the 9-to-5
blog.phpdeveloper.org
blog.phpdeveloper.org
Moreover, I don't want to be in a situation where my job owns my life. I enjoy software development and I've been doing it now for 14 years. I certainly spend some of my time at home tinkering on personal projects and continuing to learn. But work for me is generally 9-5ish--and by work I mean the job for which I'm paid. Speaking as someone who will be a father in just a couple of weeks, I can say that at 8:00 pm I'd far rather be putting my son in bed than working on anything related to work.
Life is short, and there's more to it than software development. Understanding that doesn't mean you lack passion or aren't good at it--it just means you believe in going beyond one-dimensional.
Chris is referring to the people that treat it as a job, and nothing more. They don't advance their knowledge outside of work. He isn't just talking about work. He's talking about tinkering with code, working on fun projects, etc.
He isn't suggesting that you should program all the time. Rather, it's the people that treat it merely as a job. This isn't something unique to programming.
That all being said, I think when you understand it's not unique to programming, you finally understand it: these people aren't doing something they are passionate about. They are there for the paycheck.
I spend 8+ hours per day sitting at my desk at work slinging code. I love my job; I learn a ton while I'm here and I believe I'm helping in building great software. My skills improve daily during my time at the office and most days, when I get home, I'd rather do just about anything than sit at my desk at home doing exactly what I've been doing the past 8+ hours.
At the same time, I also think we are taking 9-5 to literally. He isn't talking about 9-5 exactly (otherwise, anyone working from 8-4 is safe!). Rather, it's the people that treat the job like a 9-5 job, and that's it. They go to work, do the job, and go home. They don't try to learn, they don't try to advance themselves.
You don't do this, so even though you might work between 9-5, you aren't just a 9-5 coder.
I personally do my best not to program all the time. I like to get out and socialize with people outside of my primary intellectual niche. I love to engage myself in sports and activities that exercise different aspects of my personality. That, plus a healthy love for what you do, is what makes a focused and intelligent person.
If I program 9-5, go home, eat, program more, program some more, and then go to sleep, I get fat. Fast. My social anxiety mounts. Fast.
I need at least 1-1.5 hours a day of gym time, .5-1 hours cooking time, some social time squeezed in there somewhere. I do have side projects - but I don't have kids, and I don't have another hobby - what if I enjoyed woodworking, painting, writing, or music? Devote a decent amount of time to that, to your health, and to a 9-5 job, and squeezing a meaningful programming project in there starts to get difficult.
Two years ago, I stopped working, lived off of savings and pursued my self-education and personal projects for nine months free from the distractions of "work". I go on and off with these phases.
How long did it take you save up enough?
How frugally did you have to live to stretch your savings for 9 months?
Does your geographic location have a high cost-of-living?
What were you able to accomplish in 9 months' time?
Did you have to quit your job or were you able to convince your employer to take an unpaid leave of absence?
If you quit, how hard was it to get a new job?
Do you like this new job better?
My lifestyle was extremely frugal. I never ate out, only bought the food that I needed, no TV, layered up instead of turning on the heat, didn't buy anything I didn't need, etc...
At the time, I was living in Las Vegas - cost of living wasn't too bad. For a time I considered living out of a tent (urban camping) but decided that my budget was capable of supporting me without resorting to that. (it is much easier to maintain a structured self-education and side-project routine when you live in an apartment vs. a tent!)
In nine months I completed a book on college level rhetoric, a college level course on philosophy and reasoning, re-taught myself how to perform arithmetic on fractions (my weakest point in math), algebra 1, geometry, and half way into algebra 2; I studied a few classics too: Aristotle, Ovid, and Emerson. I was a core committer for a popular open-source project, put a lot of time into that; I also finished two of my personal projects/ideas. The projects were academic interests and at the time I didn't really have the knowledge nor network to monetize them, so they've just gone into the personal history book as "experience".
Once I was done with my nine month stint, I moved to San Diego (from Las Vegas) and began doing contract work under my own sole-proprietorship for about six months. After that I co-founded a startup (8 months ago) which is now paying my salary entirely and very close to profitability.
I like this new job much better :) I got the idea to pursue nine-months of structured personal focus from the dissatisfaction I was experiencing with the "work for someone else" thang.
Here's how: even if you are very excited about programming, you can realize that there are other things in the world besides being a workaholic perfectionist who stares at a computer screen 16 hours a day. Things like spending time with your significant other, enjoying nature, exercising, concerts, volunteering, etc. I love coding and trying to improve, but have you ever just got tired of looking at a computer screen?
Call me a workaholic, bad father, bad husband, but it is what it is.
That's not what the article says at all. He doesn't understand how someone can just code at work, and then shut off from the world of coding, never working to advance yourself in your chosen career. Part of that is coding, sure, but that in no way implies coding every time you come home and only coding.
The best part is we get to spend all evening in front of our computers together. This is part of why I married this woman.
I am sure there's a person somewhere putting together an awesome meal with fresh ingredients thinking "How can people eat spaghetti with sauce from a jar every night".
Embrace your passions, but don't be surprised if others don't share them.
And if you want to understand how others feel, think of all the things you do in a day that don't bring you a driving urge for self-improvement.
Work to live. Don't live to work.
Woah there Mr. Personal Responsibility Man[1]! Clearly the reasonable solution is to capaciously adjust our definition of what time it is twice a year so that we can have "more daylight".
[1] Or woman, of course. Curse our lack of fully developed gender neutral language. (Ohh, sure, Person, but what about the Mr. bit? Bah.)
I've found that if you engage your non-passionate co-workers and try to educate and inspire, you can really help them improve their skills. Nobody wants to be bad at what they do. A guiding hand can do wonders.
It makes their life better and it makes your life better.
Factoring in time to handle my mails, some meetings, and that 6 hours adds up to a working day. If I program private projects after hours, I get grumpier and less focused. For my own health and sense of accomplishment, I need to stop coding at the end of the working day.
I don't switch off entirely. I do read tech books during my evenings, but that's a non-creative activity, so my coding doesn't suffer from it.
He also probably doesn't have a family, a house, or other responsibilities. There are only so many hours in a day and once you have all of those things, you can't spend every waking minute working on code -- if you want to or not.
The two types of programmer do the job for different reasons and came to the job for different reasons.
There are the types like me and presumably him, who are into that sort of thing and enjoy it. When it came to finding a way to pay the bills it makes sense to do what we enjoy and get paid for that, especially at times when the economy offers us good rates for our hobby. We'd program even if there was no money in it (though we'd probably chose to work on very different projects!)
The other type come into programming because they need a job to earn the money to maintain the lifestyle they want, and programming jobs pay far better than many others that are readily available. So those with the ability to learn at least the basics do so and try make their way. It isn't their hobby. It just pays the bills. They want to go home and do other things at the end of the day/week.
Sometimes the second type of programmer will catch the bug and become the first. Sometimes the first becomes completely dissolutioned and becomes the second. Or they can go half way: works 9-5 on work projects then goes home and does something completely unrelated but still programming, like being a C#+MSSQL developer 9-5 and a Linux+Python+Other person in their own time - this can be quite useful for developing new experience that will help you move away from the area you are dissolutioned by.
Also, I find that it's hard to serve two masters. When I do have a side project I'm engaged in, it tends to bleed off any enthusiasm I have for doing paid work where, by definition, I have only so much say in things. It could be that the developers not developing at home are the better ones for being smart enough to save themselves for the big game, as it where.
As developers, we also have to be careful about having too much of this attitude in ourselves, because it makes us, in many ways, rife for exploitation by people who expect us to be so passionate about our jobs we'd do them 12 hours a day if we could.
I don't advocate endless additional work off-hours, unless you are really into it. And in the latter case, I'd suggest it be for your own, personal benefit and not simply to make you better at your job. Unless it's a job you love and you otherwise have what you need.
But, when the job's a dead end in terms of personal growth, you're going to have to invest in off hours (self) development. Or be prepared to: 1) Move to management, if you can get on that career track (given the precondition, not a good sign with respect to the quality of your organization, BTW); 2) Stay in a very protected niche; 3) Face the end of your career before too long.
For example, the other day I wrote several implementations of the burrows-wheeler transform, just because it's neat and there is a non-obvious way take the simple N^2logN algorithm and turn it into a more inscrutable linear-time algorithm.
It's really that simple. We live in cities and work in groups and/or at companies because the benefits of collaboration and casual exchanges of ideas outweigh the detractions.
The world is a lot bigger than that - in and outside of programming.