I'm a java developer. I struggle with how to keep all this technical stuff in my head. As we all know, if you don't use it you lose it. But even if you are working heads down you are most likely only touching a samll portion of your knowledge.
I never hear of anyone talk about how they deal with this challenge. There are a few tools out there for new acquisition of knowledge but fewer tools address this need.
I'm looking for ideas about how to systematically review this material from time to time to refresh my memory. I keep all my books but I can't always be near them and wading through the book looking for the essential information is not a productive use of time.
I've thought about developing learning objectives for each subject matter. And then developing a tool that helps a person evaluate and review their recollection of the topic.
I'd consider even writing a tool if I knew more about the requirements.
1) I'm in daily contact with code, mostly work, so basic language skills stay up. (I don't think this is a big problem area). 2) I study a specific topic, currently design patterns, for however long it takes to get a good deep understanding (the topic may be strictly technical, java only, broader programming skills, architecture, ect.. ). 3) While studying I make a short list of good reference areas/books. 4) I have a daily routine that hits several java sites, browse the headlines, ect... to stay abreast of new tech.
I don't fight very hard to keep all the knowledge in my head. I try to keep a heads up as to what I will be working on, and if it something that I have studied I have a good place to get a refresher.
I find that if I get a good deep understanding of a topic, even if I can't remember the details I can always remember enough to know what/where I need to look for the answer.
I understand and agree with Lee's predicament perfectly. It is hard to keep up with all the latest new technologies, let alone keeping all the learnt ones fresh. However, I have found some things that help me.
Going all the way back to High School, I discovered that I learn a subject much better when I actively take notes. I find that writing the information down helps me retain it much better (I'm sure Kathy Sierra could give us the cognitive theory based reasons as to why - I figure it is simply because it engages different parts of my brain). Anyhow, to this day, I keep the practice up. When I read a book (or otherwise learn a new technology) I take notes as if I will be having a final exam on the subject. While this does cause the learning process to take a bit longer, I find I learn the material much better. This helps with long term retention. Then, I also have study notes readily available that I can review from time to time to help keep thing fresh. For anything coding related, I also actively "play" with the code samples rather then just reading through them. This also helps me tremendouslywith retaining the material (yet other parts of the brain getting involved I suppose).
In the same vein, a second thing I came to realize is that the things I remember the best from my college days are the things I wrote research papers on. Therefore if there's a particular subject I really want to learn extraordinary well, and be sure to retain very well, I write a "research paper" on it. Crazy, I know, but it works. It takes time, but that time pays off in the long run. I have been thinking of submitting some of those "research papers" as articles to some online trade magazines/websites. This would give me additional motivation & incentive for putting in that time and effort.
Anyhow, I hope these suggestions help. I would be curious as to the techniques others use. [ January 20, 2005: Message edited by: Mark Vedder ]
Originally posted by Mark Vedder: Going all the way back to High School, I discovered that I learn a subject much better when I actively take notes. I find that writing the information down helps me retain it much better
In my opinion, part of writing down invokes 'muscle-memory' combined with several parts of the brain. I also take notes, and it helps a lot.
In reply to Lee Chalupa:
Perhaps, make short notes on technical methods, summaries, rules, et cetera. During study, especially subjects which contain a procedure to do things (like certain mathemathical equations, e.g. Laplace transforms), I make a summarised sidenote of what to do for each step.
Or just a list of keywords in notebook form, stapled together. Run through the list randomly, and attempt to associate a keyword with any particular event or technical information. If you have the extra time, maybe sit down and ponder further on just one keyword.
If it isn't keywords, I sometimes simply flip through books - looking for nothing in particular. Whatever catches my attention, I just read it - even if I've read it recently.