Possible Duplicate:
How can I motivate myself to start learning more?

It's always interesting to learn something new - operating system, programming language, framework and so on. But the problem is that people tend to give up when the first problem appears. How to motivate a person(even myself) to continue learning?


6 Answers 6


At our company we experienced, that it is very important to have "early wins", meaning that there has to be some kind of reward for learning it. I don't mean a financial reward, but a feeling that this new knowledge is useful to the team and to the project. (Examples are: learning a new framework, why not make a prototype with it and present its benefits to the team. learning about an operating system, why not sharing administrative responsibilities at some point of the system landscape,...)


Jeff Atwood has a good article Nobody's Going to Help You, and That's Awesome

The Key can be found here The Ultimate Productivity Blog

Imagine a situation when you have only two options: win or die. What will you choose? It's not far from the reality. The amount of programmers is growing. If you waste your time others will take your place. The choice is yours.

  • 4
    ROFL, I just grabbed a bag of cheetos and got ready to click on the Ultimate Productivity link.... :) Aug 2, 2011 at 9:34
  • "Know when to hold 'em. Know when to fold 'em."
    – JeffO
    Aug 2, 2011 at 11:51

If the individual hasn't got any intrinsic motivation ("likes the topic", "wants to learn") then you must set up some form of extrinsic motivation ("money", "reward"). You can reward yourself, too: "When I have succesfully learned this then I'll reward myself with something." For some people, the achievement itself is more than enough as a reward.

However, extrinsic motivation becomes increasingly hard, it depends on the needs of the individual. The best method to stay intrinsically motivated is to find groups of other people who want to learn the same thing. Competition and social factors ("Everyone's doing it", "I need to adapt to this culture", "I'll be the coolest guy around with that piece of knowledge!") have a huge influence.

But the most important thing is not motivation. It's discipline, for the sake of it. Train your discipline.

  • yeah, I agree with the last sentence. However, how do you find groups of people who want to learn the same thing?
    – Sergey
    Aug 2, 2011 at 8:44
  • Internet forums, chats, local user groups. All around you are people doing the same things, you just don't know them yet.
    – Falcon
    Aug 2, 2011 at 8:47

I don't think most programmers give up at the first sign of trouble. Most will take too much time trying to solve it on their own before getting help. There's a string compulsion to figure it out. I tend to dismiss new things when I don't have a problem that uses them as the solution or there are just matters that are more critical. It's tough to learn a new language for the sake of learning the language. This fits the "lazy" programmer.

  • Set specific achievable targets to reach. Formulate the targets so that there can be absolutely no doubt when they have been reached so that there is no confusion or discussion about this.
  • Make sure that the first of these targets will be reached quickly and easily to create a feeling of achievement and progress.
  • Have the discipline to keep formulating and reaching targets. There's actually three elements to this. First that you keep moving goalposts. Second that you keep trying to achieve these goalposts. Third that you clearly mark when you've reached those goals.

Some really practical things that I've used to motivate myself, not just for learning, but for ALL work:

  • At the end of the day make a note of how much time was productive and how much wasn't. Just be brutally honest with yourself, though you may have to hide this information from co-workers or bosses if you're in a less-than-understanding environment. Push yourself to get your amount of productive time up.
  • Set a timer. I have a "cooking timer" widget on my desktop set for X minutes (start with 10). I start this timer and just dig down, maximum concentration, for this time. I try to get as much done productively as possible within this time, and only THEN allow myself to de-focus.

I think fun is an important part of it.

If you need to motivate someone to learn something, give them a problem you think they should try to solve, plus, have them pick another one themselves.

They may not necessarily be happy with whatever challenge you give them to tackle, but the problem they pick for themselves will -most likely- be something they enjoy getting their head around.

And if someone gets stuck at some point, to avoid frustration, give hints in what direction to look, without giving away too much.

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