How do you find time for improving your programming skills? [closed]
Asked Answered
P

18

18

I'm a Java/J2ee programmer working in India. I'm very passionate about programming and I constantly strive to hone my programming skills by reading blogs, solving Project euler questions, learning new technologies, developing small apps etc;. But I find it very difficult to manage my time. Working for 12 hrs a day in office leaves me stressed out and spend my weekends with my family. So i hardly have like 5-6 hrs per week to actually work on something of my interest which will help me improve.

How do you manage time so that you find time to improve your current standing?

EDIT: 12 hours includes 1hour of travel & 1 hr of break(lunch/coffee). Effectively I work for 10 hours per day in office which is mandated by my organization.

-Snehal

Panarabism answered 5/4, 2009 at 10:51 Comment(2)
Either move to a job that requires you to learn new stuff or get a job that requires you to work less?Linden
This question is off-topic because it is not within the scope of questions appropriate for this site, as defined in What topics can I ask about here? Please also see: What types of questions should I avoid asking? You may be able to get help on another Stack Exchange site. However, be sure to read each site's on-topic page prior to posting.Chickie
B
21

If you spend that much time at work, in my opinion, the remainder of that time you should spend with your family and friends, doing the things you like to do.

I would expect 12 hours at work to enhance my skills, but not everybody is blessed with a job that is on the cutting edge of technology, and it is understood that some programmers dwell in old technology or methods, leaving them no room to advance themselves.

So the question becomes "How do I advance my skills given a minimal amount of time?". The answer being maximize your effort on things that bring you real value.

  • Reading blogs is nice, many of them tell good stories. But do you get good technological value from them?
  • SO is a great resource, but don't spend too much time on it if you find it is a time waster.
  • etc...

I would try to get more out of my workplace. For example, try to initiate technological trainings at your workplace. Suggest to your superior that you research a new and interesting technology, which can be related to your field, spend a few hours on it, and give a talk about it to your colleagues - to the benefit of everyone.

Bordeaux answered 5/4, 2009 at 11:2 Comment(0)
S
7

I think you could learn more by having a pet project that you really like. That way you can work on it in your spare time and yet have fun. Its also a great place to apply those new technologies that you otherwise dont get an opportunity to apply elsewhere.

Also it helps to think about something else and forget about programming totally for sometime, like learning to cook or gardening etc. It kinda refreshes the mind and next time you start programming you got a fresh brain to hack around with. :)

As for time, well an hour each day is generally good enough.

Sago answered 5/4, 2009 at 11:1 Comment(0)
G
7

Working for 12 hours is a reality in many wealthier nations too. I wouldnt put this down to a culture thing.

I live in a country with one of the highest standards of living in the world. I create software for the resources industry. Within this industry a 12 hour work day is often standard regardless of whether you are a truck driver or a programmer. If you are working in a remote area is it common to work 8 (or up to 14) 12 hour days in a row before having a few days off at home.

It is totally counter productive and very unhealthy - I wouldnt recommend it to anyone. But yes, you can manage to still learn stuff. Here are my tips:

  • If you have a problem that you are unsure how to approach, read MSDN, blogs, stackoverflow etc and really try to get a grip on ways to solve your problem. Then try and implement a solution immediately. This is essential to reinforce your learning. If you leave the implementation till 8 hours later you are likely to have forgotten what you have learnt and you'll just end up wasting time.

  • If you dont have a particularly daunting problem you need to solve - try and figure out how to implement at least one part of your code in a more efficient or elegant way. For instance, if you have a trivial task such as creating some code to consume a web service, perhaps look at how to load this web service dynamically.

  • Formulate your problem or question and post on Stackoverflow just before you leave work, This way when you arrive back at work you will hopefully have a number of responses to guide you with your challenge. Which brings me to my next point:

  • Do your learning in the morning whilst you are fresh and alert.

So here are the steps that work for me:

  1. find some small part of my code that I think can be improved in some way
  2. research it (30 minutes max)
  3. implement it immediately to gain the benefits of reinforcement learning

Now even though you may only learn what seems like a trivial amount, if you do this everyday your knowledge of programming will gradually increase and with it the complexity of the ideas you can tackle within 30 minutes.

I have found 30 minutes is a good window because it is generally small enough to avoid interruptions from phone calls or colleagues.

If I find that what I want to achieve involves more than 30 minutes research, generally I have to push it aside and look at it another time when I am unencumbered by work. Some concepts are difficult and cant be easily digested in your 30 minute lunch break. There's not much anyone can do about that.

Gouty answered 5/4, 2009 at 12:1 Comment(0)
L
3

1hr travel - listen to software engineering podcasts.
1hr lunch break - eat at your desk while working on your pet project.

Find another project within your company or find a new company that would allow you to work on interesting stuff, so that 'work' becomes 'play'.

Choose a job you love, and you will never have to work a day in your life.

Ladner answered 7/4, 2009 at 11:49 Comment(1)
I get two hours a day to listen to podcasts in my car, and though losing a commute would make me much better off I would really miss my podcast time.Orbicular
O
2

In the order of importance: 1. Start looking for a job that requires not more than 10 hr a day 2. Join an open source project and become a contributor there - you'll learn faster 3. Tell to your boss about Google that allows their employees spend 20% of time working on other projects. I'm sure you constantly stay in the office for 12 hours not because you are always behind on your projects, but because of the "culture" in your group, which is usually a result of poor management.

Oballa answered 5/4, 2009 at 11:37 Comment(0)
O
2

I find time by using Nike's trademark: Just Do It. You'll always find a time not to learn, but once you force yourself into that mode of learning, you'll want to keep doing it.

As for specific methods I use:

Viral: I follow people on Twitter whose interests match mine (namely programming), and I'll click on the links they supply about any given programming subject. I'll follow those links, and learn everything I can, and then I'll follow the links on those pages; all the way down until I either have an idea of what I don't know, and will search for that specifically, or move on.

Step two is Doing it: I started a blog that details my efforts to put what I've learned to use. If you take the time to write something down, you codify it in long-term memory (no pun intended).

Then all I do is Rinse, Lather, and Repeat.

Overstrung answered 5/4, 2009 at 12:11 Comment(1)
I like your blog! I've only read your last 8 or so posts but I like the diversity of topics and the deep meanings that you analyze. adds to Google ReaderJacques
C
2

Short answer: Join an open source project which interests you.

Cowskin answered 5/4, 2009 at 12:13 Comment(0)
C
1

In each work-related projects, I often use to try some new ideas. I do that only in little amounts, in order to reduce the likelihood to completely fail at a project... For instance, on a number crunching project, I played with the SSE instruction set. Or I try a few funny tricks with templates here and there (I'm a C++ guy), always in little amounts.

Correctitude answered 5/4, 2009 at 11:3 Comment(0)
A
1

Whenever I want to learn something new ( a new framework, a new toolset, whatever), I usually bring it up during a talk with the customer.

I tell him, that investigating this venue could potentially save him big bucks in the end, and he usually agrees to a modest set of hours to be spent (say, 20 hours).

Some times I'm right, other times, not so much. But I still get 20 hours to play with my new toy.

Anility answered 5/4, 2009 at 11:34 Comment(0)
F
1

12 hours at work!? horrible bro!
I'm using a printer to print articles, and to read 'em when the dead time's running greedily to no avail!

Ftc answered 5/4, 2009 at 12:16 Comment(0)
M
0

Working for 12 hrs a day in office leaves me stressed out

???

Don't work so long. That's a stupid number of hours for a non-personal pursuit. Especially if it doesn't include time for expanding your skills.

If you're constantly trying to work 60 hour weeks, your life, health, and overall productivity will suffer.

If the company requires/allows these hours on a regular basis, look for a better company.


When you're healthy, your productivity can improve drastically - whether you're learning new things, or simply applying what you learn - so try the following:

  • Don't constantly sit at your desk, take breaks when needed, and especially have a proper lunch break (go outside and get some air!)
  • Get plenty of exercise - at the least, try two good walks a day.
  • Eat a good, regular diet.
Mythology answered 5/4, 2009 at 11:2 Comment(7)
Peter, you should remember that not all cultures are the same, and in many places (India, for example) these long working hours are more or less average.Bordeaux
I'd argue culture is irrelevant - unless the human body is physically different in those places, then spending 50% of your life working in an office is not good for you!Mythology
I wouldn't say it's culture, but capitalism. I think it's easy to say "don't work 60 hours/week", but hardly done (especially if you want to keep your position in a well-paid field).Nomography
I totally agree that 12 hours/day working takes it's toll on an human body. I'm just saying that in many places, people have no other option.Bordeaux
Well, if there is no other option, create one. If enough people can get together and reject unrealistic demands, it might start to make a difference. (Possibly idealistic, but twelve hour days is just dumb.)Mythology
People may have an option, or they may not, and telling somebody with a family to support to gamble their livelihood on the offchance that something better will come along is unhelpful.Orbicular
In countries where labor is easy to acquire (e.g. China, India), you either work long hours or your employer will find someone else who is willing to do so. It doesn't matter how "dumb" it is, when it comes down to it, people will do what it takes to put food on the table and take care of their families. Changing supply/demand and the cultural norms of a country is not something that is easily done.Roue
K
0

We are craftsmen and as such, as we partake our craft, whether for personal or professional use, we should be improving it and honing our skills daily. It's not as if you're tied to a language such as VB6 where I can understand it would be hard. Java/J2EE should provide abundant opportunities for improvement. If the platform itself is getting you down, there is no reason why you can't spike some code or algo in Groovy/Ruby/Lisp/ECMAScript and then implement in Java for example.

I don't know of any decent 'boss' that would turn down a request for his staff to expend a little time here or there for personal improvement. If you're in such a situation, you need to change the situation.

When I was young and single, I often worked 100 hour weeks because I loved what I was doing. If you're being pressured to work 12 hour days and not enjoying it, not achieving any personal accomplishments, then you are not being 12 hours productive. You'd be better to spend 2 hours playing twice a day and 6 hours producing what you're asked for. You'll probably find, over a 2 week period, that you'll produce more.

In the end it comes down to personal time management. You're responsible for your life and for your family. If, at the end of this job, you're unhirable because your skills are out of date or not up to scratch, then you've not taken your responsibilities to heart, only focused on the short term problems.

Kimball answered 5/4, 2009 at 11:28 Comment(0)
S
0

There is no shortcuts. If you want to be a professional in any sphere, you will work that much and more, and you will need years and years of hard work. Only what you can do in your situation is: try to be more effective in that 12 hours. Try to do parallel things. Use situations when you are waiting something: in transport, waiting for a bus, waiting for a doctor...

I have a few techniques of my own to share:

-I have two visual studios open, one is project that I am working and second is plane projects for experimenting new stuff, for example IronRuby or datastructures algorythms or anything that I didn't work on yet.

-I am reading in the toilet :) . For example instead of a reading blogpost on computer, I print out post and read it in toilet :)..and yeah, try not to spare too much time on internet, it is wasting of time if you compare how much time you spend on it and how much you have learned...try to maintain focus on net only on things THAT YOU NEED.

-In bus from home and back, I am listening podcasts: dotnetrocks, hanselminutes, alt.net podcast...

and I try to spend spare time to enjoy life, see my friends and family, go outside and be as much as I can, on the open air...there is no time anyway, why I should bother, I'm trying my best and that's it! :)

cheers

Solicit answered 5/4, 2009 at 13:7 Comment(0)
S
0

If you need more time, you should learn how to sleep less.

Explore polyphasic sleep, http://en.wikipedia.org/wiki/Polyphasic_sleep

Slaveholder answered 6/4, 2009 at 10:45 Comment(0)
E
0

12 Hours horrible? I work in an organization owned by the family and my workday is typically 14 hours.

Luckily I do my learning on the job... Sometimes when I am bored I just sit in my office and read SO, or a book, or blogs, or articles.

You won't find me complaining. I like the work I do, and it pays.

Escalator answered 6/4, 2009 at 10:49 Comment(0)
O
0

I'd like to mention 43Folder's (10+2)+5. Its ostensibly a procrastination hack, but could be tailored for your use. Get a book, or an article, on your desk. Work for a bit, then read for a bit. It won't impact your work, but you can get a lot read

Orbicular answered 13/4, 2010 at 7:11 Comment(0)
A
0

I strongly suggest you read the following essay on "finding time":

http://www.gutenberg.org/ebooks/2274

That shouldn't take too long. Now research "deliberate practice", a concept proposed by psychologist Anders Ericsson.

Take your newly found time, combine it with "deliberate practice" and voila!

Albi answered 6/5, 2011 at 16:16 Comment(0)
L
0

If you could cut short your travel time from 1 hour to 20mins, you'll get 40mins/day and 2 hours/week. That means you've to stay/live as much as possible near to your workplace.

you could definitely invest 2 hours/week in something fruitful.

Lariat answered 28/2, 2017 at 9:42 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.