The down side of abstraction
I normally put the telephone numbers of my friends in my mobile phone. So when I want to call one them I simply choose the person from the list and the phone rings the number. This is great until the battery on your phone dies or you forget to take your phone with you and you realise that you are so used to selecting "John" from the the dropdown list that you cannot remember John's number.
So what has this got to do with computing ? Well I find I often have the same problem at work.I am sure I can't be alone. I have written a Data Abstraction layer which means I don't have to manually code all the ADO.NET stuff. This is a great example of re usable code. Just like storing the telephone number under my friends name until of course you work on a project where you can't use your "helper" classes and need to use all the ADO.NET stuff and you have forgotten it. A simple example but I could give many more.
The same thing happens when you have to move between .Net development and classic VB/VBA . Suddenly all that stuff that you have pushed to the back of your head you suddenly have to remember.
I was recently updating my CV and of course you write down all your experience. When I started I was developing in Coral 66, RTL /2, PLM 86 etc. I write this all down on the CV but to be honest it would take a while for me to remember how I programmed in those languages