in reply to Learning by doing.

Don't be afraid to reinvent the wheel. After you reinveint it, look for other implementations of the wheel and compare them with yours. That can very be educational.