Growing up with limited capabilities (e.g. sh or ksh on headless SunOS/Solaris and AIX servers) and a lot of room for failure is what did it for me. I learned to think before typing, break things and fix them again. I still learn that way and I find that life without crutches and with lots of tinkering improves my understanding of how most things work and makes me more efficient in the long run.
Also man pages.