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 work 40 hours as a programmer, and by the time I get home, the last thing I want to do is code some more. However, I feel like I am not getting better, and I do love software engineering. So how do you guys find the time/motivation to improve your craft outside of work?

share|improve this question

closed as not constructive by Jim G., gnat, Walter, maple_shaft Jun 28 '12 at 19:44

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
congrats! you already made a first step by asking good and essential question. –  Yusubov Jun 28 '12 at 2:44
13  
Yeah, I'd be tired too if I worked 40 hours before going home every day. :) –  Greg Hewgill Jun 28 '12 at 3:08
1  
Two things. M.O.N.E.Y - build something valuable! L.O.V.E - the project your working on outside work! –  Jeremy Thompson Jun 28 '12 at 4:51
10  
Are you sure you're really working 40hrs a week? Almost nobody does that, it is nearly impossible. Numerous experiments in time tracking showed that a coder would actually work on a current task no more than 4hrs a day, normally much less. Switching tasks is essential. Identify your time killers and replace them with learning and experimenting - your employer would not spot a difference, you'll still be doing the same amount of work as usual. –  SK-logic Jun 28 '12 at 7:46
add comment

12 Answers 12

Find a non-programming topic that you love, and build around it. Love pro wrestling? Write the comprehensive database of Wrestlemania results in whatever technology you want to learn. Love birds? Create a program that identifies birds based on photos taken. Love french literature? Write a parser that improves upon Google Translate.

share|improve this answer
1  
I agree. Plus you become a more well-rounded person. –  bwalk2895 Jun 28 '12 at 3:13
8  
@bwalk2895 You mean you add more and more kg/pounds, right ? –  Radu Murzea Jun 28 '12 at 8:58
1  
Awesome hobby examples :) –  JBRWilkinson Jun 28 '12 at 16:45
add comment

Small Steps

I'd recommend to either:

  • find something you want to code and/or need in your daily life at home,
  • or to train at work, either by way of:
    • attending company-paid training sessions (they're important too!),
    • developing small tools for small tasks.

Those 2 approaches mainly work for me, especially the second one.

It's Not Just by Programming...

... that you get interested in programming. Maybe some other stuff can get your motivation going. These are amazing books to inspire you to do great things and learn how others got into it before you, and built and modelled the computers and their systems you use today.

For more on this, read my answer (and others') to What are some things you have read that inspired and guided you as a programmer?, where I detail this a lot more. But my top-list for this would be:

share|improve this answer
add comment

Don't code as soon as you get home then. Take a little break and then when you've recouped a little, then start into it. Make it fun.

But honestly, I know plenty of programmers that work 40 hours plus and have no problem finding the time for personal projects. If you love it then you'll find the time.

share|improve this answer
add comment

I think motivation is a KEY. As a start you may get involved to a local developer community events. Speaking/networking with the actual developers can bring new things and ideas to your ordinary developer life. Question is where to find them?

There is a number of local user groups where you can meet geek developers. Most of them will be passionate about things that they do. Depending in which area are you living, there are different local interest groups. Here you are some info that might be helpful.

share|improve this answer
add comment

As everyone said you gotta find the thing that you enjoy. I have never been able to just go home and program as a hobby so for years I didn't do any of that. Then one day I found something that I was interested in and then it was simply a case of doing it. Rather than watching television, or surfing the internet I found myself wanting to work on my project.

Another solution I found interesting (and find it easy to get motivated) was creating my own website blog etc It's amazing how you can find yourself interesting and have the time to write all about yourself and your amazing attributes :)

share|improve this answer
add comment

One small tip I've got that I find useful is to incorporate some learning into either your commute time or into a daily exercise routine. E.g. you could watch some free online courses or screencasts on the way to or from work, or listen to a podcast while you are doing some exercise.

share|improve this answer
add comment

About the time:

I started writing my "hobby" code in the evening, after dinner: back then I was "almost" single with no kids. And having a GF that works nightshifts helped a lot.

Now that I have kids the time dedicated to my evening projects is much smaller.

I don't code every evening, and I code more during the winter and rainy days: the summer I mostly enjoy the outdoor places.

Motivation:

In the beginning I wanted to do some extra money, but then it became an open source project (little money, I just pay part of the rent with that) where I experimented new things, IDEs, profilers, tools, etc.

Some experiments were reused in my regular workplace.

Also, it turned out to be a massive help when you need a new job. People could see my code, my documentation, my interest in learning something after work, etc.

share|improve this answer
add comment

Working after coming home actually never worked out for me. What worked out (well, most of the times, not always) was working on hobby projects BEFORE going to work.

So, get up 1-2 hours earlier, grab some coffee, read a book or write some code.

(The problem is that this requires a fair amount of discipline... still, I found it easier than coding late in the evening.)

share|improve this answer
add comment

Just to throw in a different perspective:

Although lots of people say, only coding teaches you coding, there are (fairly often) times I come home after coding for 8 hours and the last thing I would do is sitting (again) in front of my PC and code my own stuff.

Would it be better for my coding skills to do so? Maybe. Would it be better for myself? Don't know, everybody is different. Many different things may be more important than programming - children, girlfriend, family, hobbies, whatever.

I prefer the more theoretical stuff after work - read a book about some interesting stuff, learn some theoretical CS, whatever. Just not sit (again) in front of my pc.

Never done anything with databases? Read something about it. Computing complexity of algorithms? Dig into it. Functional programming? Crazy stuff to do. There are tons of stuff that may be done with only a sheet of paper and a book while relaxing on a beach.

Every now and then, I think for myself: Wow, building your own Video game would be fun. Then I pull out this big pile of paper and write all that awesome stuff together that comes to my mind. Then I go out for research, look for stuff I may use to accomplish my goals, build large theoretical buildings, throw them away, build new ones and so on. Will the idea ever go into code? Don't know. Maybe in 30 years when I'm retired :-)

One thing is important:

Be curious about new things. Even if you just read about all that crazy stuff, think to yourself: Where would this be really cool to be used? Which problems in everyday programming may it solve? Maybe one of this thoughts will escape and bring you to your home pc to hack it into code. But don't force yourself into it.

share|improve this answer
add comment

Get time and motivation?

Time: this is our precious resources. Work on its management

Motivation: point attention on fun and personal out-of-work passion. leave money away from your mind, they bring you to people that does not care about the real essence of the job.

share|improve this answer
add comment

How to get motivation? Find a local business that needs a piece of software developed and work on it. Make sure you get paid for it, even if a small amount because you will feel more committed when you are paid, and that will make you persistent working your way through hard problems, otherwise it will be easy to give up when the going gets tough.

How to get time? You need to be very careful here. If you end up taking time from your family, friends or from sleep, you will burn out soon and will loose all motivation. What worked for me is 2 hours a day (from 10pm to 12pm) 4 times a week. You are the only one that can determine how much time and what ours will work best for you.

share|improve this answer
add comment

When I first started out and wanted to improve my skill set beyond that of my work life (at the time I was more SQL than anything else) I decided to find a project that would not only teach me something but also be rewarding.

I found a local charity that needed some database work done, not just the data warehousing but a GUI to interface with it. This gave me a reason to work at home later in the day and felt very rewarding knowing that I was stopping a charity from shelling out a lot of cash to some faceless software house.

That mixed with a lighter working environment (my trance playlist and some big speakers) helped a lot. On days that I felt I was being overly distracted I would take my laptop to the local Starbucks and work there (no TV to distract me!), I even found that after a while the staff would come and refresh my coffee for me so I didn't have to leave my laptop!

share|improve this answer
add comment

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