>Shouldn't you just be doing this anyway if you want to be a good computer scientist?
Rather depends on the material. Writing code to learn something new, yes. Writing the same linked list inversion routine over and over, so that you can do it flawlessly on a white board during an interview not so much.