It’s nice to know I’m not the only person doing this.
In fact, computer sciences is a very vast subject, so it’s impossible to be up to date in all of it’s fields. It’s much wiser to just keep a “cache” of knowledge, and fill it as you need. Of course, you have to be a fast learner, and avid reader for this. For example, I was able to learn C# and .NET in under a week to start a project, as well as learning the Twisted Python framework as I programmed a server in it.
Now, if you ask me something about Twisted, I’d probably know the answer, but in a very general way, no details. My cache has been flushed and filled with something else (VB.NET, SQLServer, TurboGears, among others) and so I just have a vague remembrance of whole things I was using earlier. But when I start using them again, things fall in place much faster, because I already know how things work, and even if I don’t remember which class did XML serializing, I know there IS XML serializing and the documentation does the rest.
As Dave W. points out, you gotta be careful though. When the projects schedule is small, and time is tight, you better use the tools you better know and, only later, refactor or create a new version using the best practice.