A good programmer should wake up at 6 am in the morning get a solid 2.5hrs of coding done by 8:30 am, at 8:30 leave for work, work till 6 (it goes without saying that the lunchbreak must be spent trying to learn the Haskell or if you are feeling lazy answering questions on stackoverflow). Commute from 6 to 6:30 (it's a bonus if you listen to a technical podcast during this time and no stuff like TWIT does not count, perhaps audio lectures from the Advanced Algorithms course on MIT OCW). 6:30 to 7:00 time for supper and excellent time to catchup on r/programming and hackernews. 7-8:30pm is the time for relaxation by doing some recreational mathematics, doing problems from project Euler and that proof from The Art of Computer Programming excercises which you have been itching to get a go at! 8:30pm to 1 am code contribute to that open-source project, write patches for the Linux kernal and continue working on your startup.<p>Anyone who does less programming that what is mentioned above cannot call himself a "good programmer", I would have serious reservations in calling that person even a mediocre programmer.
Correlation does not equal causation. Asking whether not programming in your spare time makes you a bad developer is the wrong question. The right question is, <i>What is it about certain/many good developers that leads them to program in their spare time?</i><p>Pursue that something and you may end up programming in your spare time. Or starting a company such that your side project is your job. Or finding something really exciting to do at your current job. Or whatever. In words much older than our civilization: "Do not follow in the footsteps of the Sages. <i>Seek what they sought.</i>"
Unless you have a super-awesome job (and lots of people do), programming in your own time may be the only way to discover and play with new things. If you work backend at a C# shop but would like to start writing Ruby, you're unlikely to get the opportunity to learn unless you do it in side projects.<p>Practically, you may be totally happy in your current niche, but you're at higher risk from technological obsolescence unless you diversify.<p>This is as much an argument for '20% time' as it is for programming at home.
I am a research mathematician. I work hard, but I also spend a lot of time pursuing other interests such as yoga, swing dancing, and improv comedy. This takes away from the time I do math.<p>Does this make me less of a mathematician? Of course it does. This is a tautology. I am a mathematician to the extent which I devote my time and energy to learning and doing math.<p>Sometimes I feel guilty about this, but on reflection, this is a sacrifice I am willing to make. We only get one shot at life, and we have to balance all of the activities we find valuable.
"Not programming in your spare time does not make you a bad developer, however, programming in your spare time can make you a better developer."<p>-------------<p>Just about sums it all up
I mentioned to someone that in my spare time I made iPhone games. They asked, "as a hobby or you trying to make money?" I replied that sure, I'd like to make a few bucks. He said to me "If you let your hobby become your job, what will you do for a hobby then?"<p>At that point, I realized that making a distinction between a hobby and a career path is a good move, and you have to know what you are pursuing. For example, I tinker with arduino in my spare time, as a hobby, and I don't intend to sell or make money off anything I make with arduino. There is nothing wrong in learning, say, Ruby in your spare time because you know that it will come in handy and that you could make money with it. But that's not a hobby.<p>Doing iPhone development (among other things) is my full-time job, and I am loving it -- mobile app dev was never my hobby, but a career choice, and I'm ok with that because I am happy at the place I work.
when i'm working a 9-5 job, the last thing i want to do is go home and program more. i'd rather throw the ball around with the dog or rock out on my guitar.<p>in my experience the people who say "you have to have side projects to be a good developer" are either people who do program in their spare time, or people who want to hire the type of programmers who voluntarily chain themselves to their desk.<p>this is one myth i'd really like to see die. good accountants don't balance checkbooks in their spare time, do they? lawyers don't hold mock trials, doctors don't do surgery on their friends as side projects, and construction workers don't pour concrete for kicks on the weekend.
When I look at resumes and talk to candidates, seeing that they don't at least read about programming outside isn't an automatic no-go but as natch says, it's a red flag. I've worked with people who have no interest in programming, they just do it because it's what they do and they need a paycheck. Not programming or showing an interest outside of work is an indicator of this kind of person to me. Of course it's not 100% but it leads me to ask other questions to make sure they will want to learn. That said, there are plenty of corporate places that are perfectly fine with this kind of person, I just don't work at those places anymore.
Not programming outside of work is an indicator rather than a cause of 'bad programmer'.<p>Programming outside of work indicates that you like programming. If you are bad at programming you will not like programming, as it will be frustrating.<p>It also indicates that you are reasonably smart, probably get bored watching television, and are at least a little intellectually curious. If you are specifically programming something 'fun' to unwind after a long day of work, you are clearly comfortable programming, and you have interesting (enough) ideas about what to program.(It also indicates that there are no decent pubs within walking distance).<p>If you are programming in your free hours because some guy on stack overflow said 'this is what you must do to be the greatest programmer,' you are probably an idiot. No amount of outside work programming will help you.
I could see someone who only programs for work or school becoming a competent developer, and a good employee.<p>So, do you have to program for joy to not be a bad developer? No. But if you don't love what you're doing, it's unlikely you'll ever be <i>great</i>. People who are the best at anything reached that point through a combination of natural talent and vast amounts of work. Chris Broderick ( <a href="http://www.youtube.com/watch?v=xkpZ645ztl0" rel="nofollow">http://www.youtube.com/watch?v=xkpZ645ztl0</a> ) wasn't born this way... when everyone else was hanging out with high school buddies or going to college, he had a guitar in his hands 4-8 hours a day. Loving what you do is more powerful than desiring the rewards. If you love what you do, learning to do it better can feel effortless.<p>On the other hand, having a passion for a topic to the extent that it consumes your work <i>and</i> personal time isn't always a good thing. When you do it in lieu of things friends, a romantic life, spending time with your children or simply resting your mind, you may regret that later on.
No, but it probably keeps you from being a great developer.<p>I've worked with a large number of people at a large number of companies, and the difference between the solid "B" developers and the amazing "A" developers is that the amazing developers are passionate about technology and coding, and always have a side project of some sort going on. They are excited to learn new languages/frameworks/ideas and bring that added knowledge to their day job with great effect.
Back in first year uni, when I felt like everything I was supposed to be learning was a bit of a walk in the park I'd program in my free time a whole lot. later in uni when I was swamped with engineering maths and compulsory management subjects I didnt program in my spare time at all (I suck at analog maths and ROTE learning so it sapped my enthusiasm to do anything in general).<p>when I finished uni and got my first job, I was back in the position of being given boring menial tasks and I programmed in my spare time for fun again. I left that job for something a lot more interesting and was quickly given enough responsibility that at the end of the day I didnt feel like programming so I didnt. After a few years there I'm on top of things at work again and I'm back to coding for fun in my spare time again.<p>I dont think that not coding in your spare time is a sign that you're a bad developer; it's more a sign that you're getting enough mental stimulation elsewhere. That said, I think if you've never coded for fun it's possibly a sign you're in the wrong career. You should love what you do enough that you'd do it even if you weren't being paid to do it; not necessarily the exact same work, but at least the same domain. No point spending 1/3rd of your waking life doing something you dont enjoy
I'll preface this by saying that this is my personal opinion.<p>Github (and the like) are becoming prerequisites. You should have a portfolio of <i>personal</i> code you've done that you can freely share. Stuff you are proud of and passionate about (or not so proud of, but are deeply interested in) and stuff you want to learn more about.<p>Would you hire a wedding photographer without seeing personal samples and talking to them about their interests and opinions on how to photograph <i>your</i> wedding? You'll interview a slew of photographers who just do it to make a buck (and that comes through very clear), but you'll also find a few guys (and gals) who do it with a passion.
It doesn't mean you are a bad developer, it means you are a satisfied developer. Some people however have so many things rattling around their heads that <i>not</i> exploring those ideas makes them unsatisfied.
I used to code the night away. Then be unable to sleep too excited about what I was doing.<p>Now I have a fiancee and we live an exciting new city (Brisbane, AU).<p>I've just outgrown it. I think both ways are normal. However, the dude that doesn't program during the day and yet paid to do so IS WRONG... Whoop, that would be me. Back to work!
If you enjoy programming do some development in your spare time. Find a project that interests you. Programming is a tool, master it by all means if that is what you want. However, don't lose grasp of the fact that there are numerous other pursuits you can take up. Learn a language, build a house, learn chemistry, send a rocket into orbit, make an erotic film, excel in martial arts, whatever it is that you want to do, do it. Have a diverse range of experiences and regret nothing in life. Don't just be a developer.
To continue coding in your spare time, you must have a real exciting project to work on: to learn a new technology, or to build something you really love. Without that passion, you won't have the extra energy to do that and it won't necessary to be beneficial.<p>So try follow your passion. If your passion is to write a novel, play guitar, do that. If your passion is to build a new web app, do that. Don't code just for the sake of coding. You cannot lie to yourself.
I wasn't really interested if someone programmed in their spare time. I was more interested if they had written a program, at some point in their career, to solve a non-work / non-school problem or scratch a personal itch. I just wanted to know they had used their skills without outside direction. I always wanted people that saw their skills as useful outside the office / classroom.
Most developers I know - in real life - don't program in their spare time, never mind going to conferences or evening meet ups. If you work as a developer and your hobby is developing then there's a good chance that you'll burn out.<p>That's not to say that it is bad for people who do it, just try to expand your hobbies to something outside of technology.
No of course it doesn't neccessarily mean that. Like most things in life; it depends. If you feel that your day job is fulfilling your interest and happiness as a developer, I'd say you don't need to work on side-projects, you're probably learning plenty during the day.<p>But if your work gives you restricted oppurtunities to try new technology, or burdens you with outdated tech and boring work, working on a side-project can reignite your enthusiasm in programming, which can never be a bad thing for your career.<p>Also, theres nothing to say you need to spend huge amounts of time on a side-project, maybe a few hours a month just to try a few new things. Sure, you won't become an expert in those things, but you'll get a feeling of what it's about.<p>And choose something fun to inspire you, nothing is more mind-numbing that coming home to work on a side-project that actually bores the hell out of you.
It is very hard to push your skills forward without side projects. Do accountants balance ledgers in their spare time? No. But good ones do read up on their craft and push their knowledge forward off the clock. It just so happens that pushing your knowledge of code forward usually involves coding.
I don't think it does necessarily, although it might be a symptom of lack of confidence or dissatisfaction with your work programming. I think having a broad range of interests - reading, playing music, drawing, socialising, sports - makes you a complete human being but programming for yourself, at home, should probably also be something that gives you joy. Rather than asking whether you're a 'bad developer' maybe start from the other end: 'What is preventing me from hacking at home? What spoils it?'<p>The other thing I recommend is to do the kind of programming that YOU enjoy and NOT the kind of programming that you think is necessarily 'important' or 'difficult'. All you need is that ONE opening, that ONE gap into accessing the joy of programming.
Sure there are programmers that don't program in their spare time that are great programmers, but I think the general theme is that doing side projects in your spare time is generally a strong signal you're adventurous, self-reliant, eager to learn, interested in broadening your skills and have a strong desire to get better -- all very important things in anyone hoping to get better at your craft.<p>When I'm interviewing people, side projects (especially successful ones) are _strong_ signals of a candidates value as a good programmer. This doesn't mean I won't want to hire someone without side projects, but candidates having them 90% of the time are very strong.
As long as you re learning, be it newer technologies, languages, frameworks, patterns or whatever it is that interests you most during work time, spare time, any time, you would always be a better developer today than you were yesterday.
Short answer - yes.<p>But it's more complicated.<p>You are not supposed to do programmng all day long, but ifbyou don't feel a need to expand beyond what you do at work its one of the following:<p>1) you work is so great and diversified that you simply get all the programming you could ever need. For most people it's not the case
2) you are already extremely great. I think Linus probably doesn't need to learn yet enother language/framework (although I wouldn't be surprised if he does sometimes). For most people it's also probably not the case
3) you just don't like it that much<p>For most people that don't program at home (3) is probably the reason.
For my internship this summer, I actually write code!
I've found that I do little to no non-work programming during the week. However, I do spend a lot of time during the weekend programming.
I find that the less time you spend programming, more time solutioning the better developer you become. reading and learning how other folk are solutioning is where its at for me. anyone can program, not everyone can design a good solution for a problem.<p>If you enjoy programming as a job, then in your spare time you allow for tech, take the time to read a couple of pages here and there. If you don't read or get exposed to other talented programmers/architects then yeah, you are destined to be a bad developer!
I've been coding in my spare time in and out since I got my first computer. I didn't do it because I wanted to be a good programmer, but because I love creating stuff and programming is the easiest way I know to create stuff. I'm not happy if I'm not creating something.<p>Also, a few months ago I quit my job and I'm now making a living teaching people what I've learned during my "spare-time". I now have more free time than I could ever imagine, and the notion of spare-time is starting to disapear.
Programming is my hobby. I work on a startup product in my spare time, one question I'm faced with - is it possible to balance corporate work, startup idea and have time for side (hobby) projects? If startup product is not my main task when out of work, is it a sign that the thing will fail?<p>I'd like to learn 3d, develop simple games, learn new languages and algorithms while still working on the startup product and maintain my corp job. Do you think it's possible?
do you code for fun? as long as you do, it doesn't matter whether you do it at work or at home. if you can experiment with new technologies and learn new things at work, your skills are going to improve and it's probably healthier to spend your free time doing something other than coding.<p>if your work is drudgery where you are maintaining old stuff and it isn't helping you keep your skill set current, then you should be programming in your free time as well.
Nope. But coding in spare time make you better developer. And.. If you do not like coding - it's wrong career.. But who knows, code monkeys useful sometimes too..
I think the idea that you must program in your spare time and contribute to open-source has a sociocultural benefit. It might be more 'pure' to devote all of your time to your fellow developers and improving your art.<p>Yet the quality of your work has nothing to do with the time you spend on it. Quality over quantity, as they say.<p>Either way, there is certainly some benefit to be had in being passionate about your work and in keeping on the bleeding edge of technology.
Has anyone else noticed that doing totally unrelated activities outside of work often inspires programming solutions? Practicing a musical instrument or other creative activities seem particularly useful to put my brain into a state where solutions or at least new ideas come more freely. This seems more pronounced now that I'm in my forties and I couldn't code the night away even if I tried.
It comes down to caring enough to do it right. You have to love it and be a pedant who pays stringent attention to detail. You can be smart and motivated but unless you really want to know why and how it all works and fits together it's hard to excel.<p>That type of person will always be reading and writing code and solving problems. Spare time and work time all blurs if you are focused on a problem.
For me it is the other way round. When I program in my spare time, I do it because I need a certain piece of software and no one else (I know of) is building it. I even switched jobs to become better at a specific platform because I was frustrated how slow I am programming for it only in my spare time.
Is there a site where programmers can post their side projects for the rest of us to look through? I am always working on a side-project... usually something built on Facebook platform. I'd love to see what you other hackers are working on in your spare time.
Yes, you are a very bad programmer!
just follow reedF211 advice to improve yourself, and be prepared to loose everyone around you.<p>good programmers do not have friends :)<p>and by the way do not forget to meditate on sarcasm, always make the other feel bad for being alive.
Interesting post! I posted one not long ago saying the opposite. The reactions were staggering and felt the need to update my post to clarify my point.<p>Regarding your post though, i think that no one is assuming extremes - you can easily manage a few hours a month to do some mad science experiments. You might even surprise yourself with the outcome or renew your passion that made you take up development in the first place.<p>You also don't always get the full perspective in your day job - even if you work at an amazing place.<p>Development isn't a music skill. It isn't about repeating a piece over and over to train your mind, motor skills, and dexterity until you can reproduce it perfectly.<p>Every day people are pouring tons of new and interesting ideas into this discipline and more often than not, they have excellent ideas which can be shared and studied to your benefit. Take advantage of it.
Something I've noticed over the years is that my productivity and ability peaks don't correlate with time spent programming, but rather with time spent reading other people's code.
I'm sure that 98% of programmers who are of indian origin dont code in their spare time. They do it because its a good living and nothing else.<p>And a lot of them are good at what they do.