Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I enjoy programming, but programming at work is just that, work. I would like to further develop my own personal interests in programming. Throughout the week I imagine myself completing a small project on the weekend or finishing up a programming related book. However, in reality I often fall short of my expectations. I often will get just one or two chapters of reading done and even less coding. In reality I will spend time surfing the net, watching television, or visiting friends and slacking off... because it is the weekend. But when Sunday evening rolls around I often reflect on my weekend and I am sorely disappointed with my use of time.

So my question is how do you maintain your productivity outside of work? I am sure some programmers could care less about programming on their free time. Although, I think the majority of programmers, especially on stackexchange, are passionate about programming.

  1. Should I spend the weekend programming, or will I burn out and resent programming if I dedicate that much time to it?

  2. How should I go about programming on my free time? Should I set a schedule? How much time should I dedicate to it? Most importantly how do I follow that schedule? Its only human nature to procrastinate.

I know there is a lot of questions here. Feel free to answer the ones that relate to how you remained focused outside of work. I am passionate about programming but after 40 hours of programming it can be difficult to maintain that enthusiasm.

share|improve this question

closed as primarily opinion-based by gnat, GlenH7, MichaelT, mattnz, Bart van Ingen Schenau Aug 25 '13 at 17:59

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
+1 Good question. It's seems most of our energy is spent at work, where stress makes it so easy to be super-productive even for stupidest of tasks. –  AareP Dec 20 '10 at 6:06
    
Refer to Jon Nolans Answer on stackoverflow about The Pomodoro Technique and Getting Things Done. –  snmcdonald Feb 26 '11 at 16:54
    
@snmcdonald This question has been over a year. during this time i hope you found a better way (your way or the question you have found here). So, i'd like to ask you which one works for you? have you found a better way? Please post it here, I'm the same situation you were. and i really like would like to know you experience too. Thanks :) –  Achu Mar 14 '12 at 15:21

8 Answers 8

up vote 11 down vote accepted

Don't spend your entire weekend doing any one thing anyway, otherwise you'd simply loose interest.

Programming in your free time is definitely a very strong recommendation. Don't choose too many programming languages -- just 1 or max 2, and along with that choose a domain where that language is used and make sure the domain excites you as much as the language itself.

Personally, I don't look at it like this is a weekend and I'd spend time coding or studying. The trick is to do something (albeit small) daily. If open source is your thing, consider adding something new on an ongoing basis. If you like studying about programming, schedule some time on a regular basis where you could put your kindle (:P) or whatever to good use.

Finally, after 10 years in the coding business I might sound a bit cynical but believe me when I tell you that life is an ongoing learning process. Age finally tells you that Newton was right when he was collecting those sea shells :).

share|improve this answer
    
I really like this suggestion. As our free time is limited, it is hard to diversify and learn many new technologies. I think you are right, to be effective you have to really narrow on what you like. –  snmcdonald Dec 19 '10 at 22:02
    
+1 for introducing me to that quote from Isaac Newton. Puts things in perspective. –  Robert S Ciaccio Dec 19 '10 at 23:06
    
@snmcdonald, @calavera thanks! :) –  Fanatic23 Dec 20 '10 at 13:12
3  
"I do not know what I may appear to the world, but to myself I seem to have been only like a boy playing on the sea-shore, and diverting myself in now and then finding a smoother pebble or a prettier shell than ordinary, whilst the great ocean of truth lay all undiscovered before me." -- Isaac Newton –  Jesse Buchanan Dec 20 '10 at 14:23

Do you have a specific application that you would like to develop in your free time? By the sound of it, you just haven't found an interesting enough application or challenge to catch your interest yet and so you fall back to surfing the net.

I suspect if you found a project that interested you enough, this topic would be a non-issue, you would just naturally work on it whenever you can.

share|improve this answer
1  
I don't think anyone would choose uninteresting projects to work on for free, on their weekend. It's more of a problem of loosing interest when thing are not getting done. It's really hard to stay productive on weekends, after stressful week of normal work. –  AareP Dec 20 '10 at 5:58

Having a happy, healthy life is all about finding balance in the things you do. Some weeks you'll find yourself coding all weekend and wonder where the weekend went. Other weeks you'll find that you didn't even open up that book you'd plan on reading.

Don't get too down when reality doesn't meet your expectations, life happens. If you set small, simple, concrete goals then it will be much easier to keep your weekend programming needs moving forward. But also set aside time for yourself... there's nothing wrong with being a couch potato every once in a while.

share|improve this answer
2  
+1 Great point. As we all want to improve our programming skills, it's important to balance that with life's other needs. –  user7676 Dec 19 '10 at 17:54

Perhaps you need to adjust your expectations of yourself. Weekends are supposed to be fun and relaxing, so spending time with friends and the other activities you mention sound more appropriate to me than spending your whole weekend coding or reading computer books. You have to give your brain time to recharge. Now if a project strikes your passion and you want to spend time writing it on the weekend, go for it. Or if a new technology interests you and you want to read a book on the subject outside of work hours, great! But it sounds like you are trying to find better ways to force yourself to do something you don't really want to do, which is spend your weekends programming. Give yourself permission to enjoy your weekends and leave work at the office.

share|improve this answer
    
this post is rather hard to read (wall of text). Would you mind editing it into a better shape? –  gnat Aug 25 '13 at 9:25

Its tough, I had thought the same way but now I usually don't feel like programming outside of work, although I do read books from time to time.

I recommend trying to move your career in the direction of doing work on the things you like, such as if you are working on PHP (just as a random example) web apps but you really want to do Android mobile device development, maybe try to find freelance projects doing this or eventually find a job doing this (emphasize that you have plenty of programming experience and that it does translate over to this new field, when applying).

Other than that, something I have done a little and have been wanting to do more (and will do when I have more money) is to hire one or two part-time offshore freelancers to work on projects with me (such as through Odesk). This way I can get some things going on projects that I don't have the time to work on myself and step in to do coding when I want. It takes some work to find a good offshore person to work with but it can be done, you just have to maintain a close relationship with them and do code review, etc, at least at first.

share|improve this answer

Another tip would be to study some "new" technology or concept that could benefit you and your colleagues at work. Read books and do some Proof-Of-Concept-programming with that technology. Just doing ASP.NET Web Forms development? Learn ASP.NET MVC and demonstrate it to your colleagues!

Then, most importantly, set a date and time and give a presentation at work on the subject. (Perhaps you can get your company to sponsor the lunch? Mine does.) I find that an excellent motivator to get some learning done in your free time.

share|improve this answer

If you have the freedom, you can try separating out your 'work' programming from your weekends. For example, if you are primarily .NET coder at work, look at other avenues such as Ruby on the weekends. I've found that that helps keep things separate without that little nagging feeling that you should be learning something 'for the job'.

Also, take a look at the projects and OSS tools (if you use any) from the work week. Sometimes you can achieve both goals (learning and coding) by reading, reviewing, and participating in open source projects. In my experience, reviewing how other projects work--especially if they're outside your comfort zone--is a fantastic way to learn while not having a predefined expectation to produce.

share|improve this answer
    
I like your suggestion to segregate your work and hobby language. If you use an interchangeable language there is a good chance work projects could follow you home (or worse you could start sneaking your hobby projects into work). –  snmcdonald Dec 19 '10 at 22:03

I find that my home programming is reasonably proportional to the amount of joy I feel going to work. When the office is a terrible drudge that makes me want to gouge my eyes out with a spork, then no programming gets done at home (and frequently I won't even turn on the computer/console to play games. When I'm in the mood/place of "woo hoo! it is 6am! time to get up and rush to work!" then I'm doing a lot of coding at home as well.

Spending too much time doing work, or work-like ventures is a path to burn out. Go with Walter's advice above.

When I am learning a new language or framework for the office, I try to devote about 4 hours on the weekend for it. Usually it ends up being on Sunday morning-afternoon, because that's where the largest single block of time I haven't promised anyone else is located (it is also the time when some of the folks in my life are in church, so they aren't going to be calling me on the phone).

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.