Personal Productivity Stack Exchange is a question and answer site for people wanting to improve their personal productivity. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am a programmer but this can apply to any field. There are many technologies that I want to know. So I start to read some book and then I jump to another book and so on. This makes me feel bad. Any advice of how to approach learning?

share|improve this question
Concepts are more important than concrete executions. Do you have some examples of the technologies you have started/learned? (Before going to a new one of course.) – Josh Bruce Mar 21 '13 at 21:45
up vote 10 down vote accepted

Try to apply what you learn by implementing a small project, don't just read. Have a project in mind and you read a book, you will internatilize the concepts better.

If you don't know what to develop, I can give you a few ideas, I am running out of time :)

share|improve this answer

How do you learn everything?

You can't. There is simply too much knowledge to learn everything. But... it sounds like you want to learn how to learn, which can be done!

A good place to start would be the learning questions already asked here. The rest depends on what you want to learn.

  • Khanacademy is a great resource for a large variety of topics: math, computer science, humanities, and economics.
  • Lumosity offers many different brain-stimulating games (free and paid).
  • Instructables offers tons of tutorials on how to make stuff!

You can find more sites like these on this article: top 40 useful sites to learn new skills.

Edit: I noticed I didn't really answer the question very well. Here are some points to focus on to improve your approach to learning:

  • Having an intrinsic desire to improve yourself (which can be seen by you asking the question in the first place)
  • Time / Commitment. At least one hour to indulge in the new information. Allot time to come back to it later in the week. Not only will you build on what you already know, you will have a chance to remember what you learned from the previous session(s).
  • Optimal working environment. This varies for everyone. Do you work best at 72* Fahrenheit or 75*F? How much light do you need? Do you have adequate desk space to work? Are you free of distractions?
  • Do you know someone who is experienced on the subject? Learn of their trials and errors so you do not make the same mistakes.
  • Do you have someone you can teach this material to? There is saying that the best way to learn is to teach.
  • Apply yourself. Do a project on the topic you just learned. Learning how to use the knowledge you just picked up will help you retain it for longer.

Since you seem to want to jump from topic to topic prior to finishing the previous, create a First In, First Out queue of topics you want to research; meaning as you find new topics, add them to your list, and progress sequentially.

share|improve this answer
Thanks for great links! – Steed Mar 23 '13 at 11:12

I have the same problem. I always read a different book every time I come across some interesting technology that I can't get enough of.

I realized that repeating this would not make me any better.

Right now, I try to focus myself on learning only one language since I wouldn't get anywhere if I try and learn all interesting and existing technologies. To get around my curiosity of other things, I read different blogs on different days, reading a thing or two about a new technology.

In that case, I only focus my attention to one language while still being up to date with other technologies that I am interested in. Just limit yourself to one or two posts as it will be the start of the cycle of trying to learn everything once again.

share|improve this answer

As a programmer, I struggle with the same problem. There's simply too much out there to learn. That's the first step, accepting that you can't learn everything. From there, I would recommend keeping a list of things you want to learn, along with why you want to learn it, and prioritizing it. Then, keep focused on the top choice until you feel satisfied that you got what you wanted from pursuing that topic. Maybe you just want a high level of concepts in a particular technology, maybe you want to be able to use it reasonably well for a specific task, maybe you want to be an expert in the particular field. It doesn't matter. You have to set targets for your learning, otherwise you'll end up meandering off and just reading a bunch of books with no concrete goal, and you can spend forever going down those rabbit holes without ever feeling satisfied, which is my guess as to why you feel bad.

share|improve this answer
Agreed. You can't learn everything. You can learn to learn faster (in fact, this is exactly what college and liberal arts degrees are for). But to be truly productive, you have to decide which things are worth learning, and which specialties are better off delegated to someone else (like a spouse, best friend, or child). Almost all truly productive people have an 'social circle' of experts for this reason. – Muz Mar 23 '13 at 3:24

I'd recommend looking into "The First 20 Hours" by Josh Kaufman. I recently listened to the audio book, and I was on this site looking for advice to deconstruct the task of learning a language into sub-skills.

Basically, the crux of the book's argument is that learning basic competence in a skill requires only about 20 hours of concentrated and well-prepared practice to overcome the initial difficulty and frustration that is inherent in learning most skills. This is a counterpoint to the "10,000-hour rule" popularized by Malcolm Gladwell in the book "Outliers". Essentially while mastery in a skill typically takes 10,000 hours of sustained practice, most of the key concepts are learned in the first 20 hours. This is particularly valuable to programmers and other technical professionals, as we often have to learn to be proficient in many different SDK's, protocols, programming languages, operating systems, etc.

One of the interesting things about the book is the time Kaufman devotes to explaining how he uses his technique to learn Go, yoga, programming in Ruby, windsurfing, playing the ukulele, and touch typing. The basic method is easily summarized in the first three chapters, but the application helps to highlight how to apply the technique to very different skills and the little pitfalls that might not be obvious in the beginning.

share|improve this answer

Like everyone is saying there are tons of knowledge out there which one can't learn all in one's lifetime..

Since you are beginner

Choose only one programming language and try to master that language...

1)First choose a best textbook on that language learn the theory

2)start working out some samples on that language.working out what you learned is more important because you'll come to know the difficulties and understand very well only when you work out.

3)Join a forum or some programming community ask questions answer some questions if you know.

4)work on real projects.

5)Contest on some code competitions.

6)Contribute to open source

After you mastered a language you could easily learn multiple languages in short span by comparing one language with other.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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