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 have approx 9 years of experience in the IT field. I've mainly worked on web applications and currently am looking forward to become a technical architect for J2EE applications.

I usually face this challenge; in order to learn a new technology in depth I usually refer to a book. I was recently going through 'Java Persistence with Hibernate' to get in depth knowledge on Hibernate. It takes usually a month for me to complete reading the books/doing some R & D to know about how the APIs work and writing some sample program from books. I should mention that my reading is mostly done in spare time out of my regular project work.

At the end of this exercise I get a decent idea about the technology and how it works (its uses in applications etc...).

However after couple of months, I also start forgetting about what I read in my previous book (or about previous technology). Mainly because the project on which I work on do not use those technology, so if you do not practice, you will forget those things.

For ex: I recently read about FTL, but in my project at the same time we were using plain JSPs, so I did not get chance to apply my FTL knowledge there and I forgot most of what I read about FTL.

On one hand, I love to know more about the technologies around us and at the same time I want to keep that knowledge with me so that I could use it in future when needed.

What am I doing wrong here? I sometime think that:

  1. I should spend more time on one technology before switching on next, so that I could remember most of it.
  2. My approach towards learning about new things this way is wrong.
  3. Learning through Books might not be a good approach.
  4. I need to do something extra to keep my learning up to date (but frankly what is that extra; I don't know).

I need some help here.

share|improve this question

migrated from stackoverflow.com Apr 18 '11 at 10:36

This question came from our site for professional and enthusiast programmers.

@Vicky, Even I am facing same problem... +1 for asking this question –  Shekhar Apr 19 '11 at 7:50

3 Answers 3

up vote 3 down vote accepted

I think this is a very common problem for most people that are interested in a new area but can't apply the knowledge.

  1. This seems like a good anwers, spend time on one tech you know, and if you decide to change, give it a crossover period, so "IF" you find any serious flaws in your new choice, you haven't tied up your entire new design to it. Get enough info to see if changing tech is infact a good choice for your next project.

  2. I would say Yes and No. Yes, as in you seem to read and learn about stuff you have no solid plans of using in a near future, but at the same time No. Since you will have a easier time relearning things you learned once if you decide to take that track later.

  3. Learning is a hard subject, it really depends from person to person. But, rather then just following the books examples from begining to end and put the book a way. At the end, try to implement something small that resembles something you usually do. Otherwise you might just learn to copy the samples, but never focus your brain to use the knowledge on your own.

  4. Small hobby project. Make small things in a area your comfortable with, if all the tech you work with is in a simular area you could easily compare the results between techs i guess?

I hope thats some help in someway...

share|improve this answer

Book knowledge is no substitute for experience. As they say, "use it or lose it".

share|improve this answer
That is to say, unapplied knowledge is not retained. So, apply your knowledge. Use it to build something. –  Rein Henrichs Apr 18 '11 at 18:02

Do you tend to remember all the little details or more of the big picture after reading a book? I'm asking because depending on which end you tend to be may be a clue as to how you may be able to set things up to be better for you. As I know I tend to be a big picture person I'll remember some high level points so that should I think, "Where did I see something like this previously?" I can remember a few books or Google queries to do to find the specifics as a follow-up to getting what I want.

Have you considered what learning styles and memory retention methods you naturally use? For example, consider a telephone number. You could read it, hear, or feel it for a few ways to accept the value as input. Similarly, there are also a few ways to express that value such as saying it, writing it with pencil and paper or typing it out. Which of those works best for you to remember it? Is there a number of repetitions of it that makes it work best? I'm tempted to suggest more of figuring out what kind of information assimilation strategies work for you rather than just hoping that immersion will give it to you.

If you remember the big picture and what the names are of reference books for when you want specifics, how is that a bad combination? I like the idea of knowing what to try in Google to find the specifics when I need them but at other times letting my internal DB grow to hold more useful stuff.

share|improve this answer
I too remember big picture for sure, but usually forget low level details. For ex: I was reading Java Security couple of months back, If you ask me today.. I can tell you on high level how SecurityManager, AccessController etc work.. but If you ask me which method of security manager class allows to add/remove permissions..or something like that.. I just can't remember. –  Vicky Apr 19 '11 at 3:34

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.