tags:

views:

496

answers:

10

I want to learn a new technology, but don't have time in the day. I am a coder by trade, which is fine in keeping up to date with stuff. I go to the gym at lunch time, to break the day up and not get overweight.

When I get home I am mentally tired and on the weekend it's kids or girlfriend "quality time"... I need 8 days in the week.

Think this is subjective and hope it doesn't get closed within five minutes of posting. Anyhow, question is, how do you learn new programming skills, when you have a hectic lifestyle ?

+4  A: 

You don't, really. If you want to learn, really learn, something new, then you have to devote a good block of time to it. 5 minutes here and there will result in a "5 minutes of reading here and there" knowledge base.

That said, not being able to give multiple hours every week is no bad thing. Plan learning time into your vacations, persuade your boss to let you take some learning downtime between projects. If you commute, use public transport, and read on the train/bus. If you really want to learn it, you'll have to find the time.

Adam Wright
Totally agree. Forgot to say I cycle to and back from work. But I agree you can find time if you really want to learn.
Ferdeen
+11  A: 

For me, I have to find time during the work day when I'm waiting on other people, or there's just downtime and I find something that I can loosely justify as work-related, and get into it for a few minutes (or hours, depending on the workload at the time) before my attention is required again.

Also, i've found that getting up an hour or two earlier is a great way to get more time for myself, as long as I can get in bed consistently early (e.g., 10pm).

Believe me, I understand your situation. I'm married, have 3 kids, and about to have one more, and this is what's been working for me.

Of course, you also have to realize that at some level, the choices we've made for our lives preclude us from being able to keep up with uncommitted, single twenty-something guys - it just isn't possible.

Ben Collins
I might try the get up and hour early a day and probably will benefit, compared to what I do now. I did the extra hour a day when I was swimming in the morning and found I was tired towards the end of the week. I'll give it another try though. Thanks.
Ferdeen
For me having a consistent bedtime is the linchpin to keeping a schedule. It's everything. If I can keep a consistent bedtime, I can find the minimum amount of sustainable sleep (i.e., it's enough to do it perpetually).
Ben Collins
A: 

You could ask your boss to give you an hour a day for learning the new technology. If it's relevant for your job, you could explain him/her why it is important for your development and the success of your team/group/company. Sometimes you just need to ask to achieve something :-)

Stas
This would be good, but the technology (objective-c) is not what we do at work (c#). I think he would say no way.
Ferdeen
A: 

I have never been employed as a programmer, but have learned everything I know on those little "extra hours" you can find every here and there. I still consider myself a decent programmer.

In the morning, you can open three or four blog posts on your laptop before you leave for work, and then you can read them on the subway, and even try out some of the ideas in an IDE while you're travelling. A night at home every now and then isn't impossible to make free - but if you have family of course there's not going to be as many of those.

Also, make sure to use the possibilities given to you within the projects you're already working at. If you want to learn Entity Framework, and you're supposed to make a .Net Application that accesses data - why not combine them, and use EF in your project? It will make your projects take a little more time, but it will also make you a more dynamic programmer in that you'll learn how to start working on a project without having all the knowledge on beforehand. Combine production with learning.

Tomas Lycken
A: 

If you can, do one of your projects using that particular technology you want to learn (well, I wouldn't start anything big in Scheme, but it was pretty interesting doing a script for GIMP in it, instead of Python, for example). You have to leave time for yourself, though. Depending on how fast you can learn, you'll have to extend the deadline more than usual.

If you can't, then you should schedule it somewhere in the weekends, or stay up longer than usual. The latter solution will pretty much screw up your daily routine, though, so I don't recommend it.

rhapsodhy
+1  A: 

When I get home I am tired

That's the problem you need to solve.

You shouldn't be tired, so either your diet and/or your exercising is broken in some way.

As a two-birds-one-stone solution, why not investigate using some new technologies to create a diet/exercise software. You'll almost certainly be re-inventing the wheel, but you'll also be learning. :)

Peter Boughton
I think he means tired from programming / staring at a computer. I completely understand. After 8 solid hours staring at a screen programming, who could possibly want to go home and do even more programming? Just because you like programming doesn't mean your passion for it is insatiable.
Cybis
Well if that's the case, simply make evenings family time, and allocate some hours at the weekend for hobby time.
Peter Boughton
@Peter. I meant mentally tired. Good idea about the diet software! lol.
Ferdeen
Being mentally tired can still be a sign of bad diet - I've had plenty of bad days/weeks where I simply can't get my brain to work, only to realise I'd not been eating properly. Not saying this is definitely the case, but still worth checking that you are eating enough of the right things.
Peter Boughton
It depends indeed on what you do the whole day: if I'm not behind the computer I notice I can bring it up to do some computing in the evening. My experience is also that you shouldn't use your computer about the last hour before you go to sleep, otherwise I won't fall asleep for another hour.
Roalt
+1  A: 

My suggestions:

At home: Plan ahead and make sure your family knows when you are "sort of working". Separate the quality time from your training time. Once the ball & chain approves this, make sure you have the dicipline to follow it. ;-)

The occasional bribe: "Honey, I need to dive into a thing for work, why don't you and the kids take a trip to the amusement park this sunday, tickets on me?" That way your concience is clear as well.

At work: Incorporate training into your work. Spend an extra hour here and there to do something slightly differently, while still being beneficial to your employer. A bit of ajax effects would perhaps be useful for the old web app? Perhaps that new plug-in could be done using test-driven development?

Console
I like the ball and change comment. I did tell my girlfriend "we are gonna be rich beyond our wildest dreams!, once I complete the killer iPhone app". She replies on a daily basis "have you finished it yet?" - I am still on chapter two of the damn book.
Ferdeen
+1  A: 

Ben Collins already suggested getting up a little earlier and using the quiet time for reading or self-paced study. I enthusiastically agree.

I'd also suggest involving others. You might join a users' group, organize some of your co-workers with inquiring minds to have periodic "brown bag" lunches to discuss/explore newer topics, and watch some of the excellent recorded presentations available from InfoQ, Parleys.com, and other such sites.

joel.neely
+2  A: 

Make use of downtime as much as possible. Listen to technology podcasts at the gym, during commuting or when doing groceries. If you ride the train, do some programming while on it.

Get excited about things you pick up so you get the energy to try it out. It works better if you have fun doing it.

soemirno
I listen to StackOverflow podcasts in the gym - a great way to keep at least some RSS feeds in check :)
MaxVT
A: 

Learning new stuff is part of normal career development for an engineer.

Either you have a manager who understands this, and things will work themselves out, or you need to renegotiate your terms of employment anyway.

In practical terms, simply set aside one hour of your workday, or a half-day every week, to work on honing your skills. You don't need to ask permission for this, as long as - and this is really important - you're getting your work done.

If you can arrange things so that your learning contributes to getting your work done, then that's an even smarter way and less likely to raise eyebrows.

Example: a few years ago while working on a Java project I coded up a prototype for an entirely new module. It was to be a throw-away prototype, intentionally incompatible with the main project so as to remove any temptation to use it as-is, so I coded it in Smalltalk (which I'd had a hankering to play with for a while).

Morendil