It's a balance, really, IMHO. One needs to have an idea how the modules work otherwise one can't use them intelligently. But at the same time one has to let them do the work otherwise there's no point. But my guess is that most beginners err on the side of *not* using modules, and will always find ways to practice their skills by re-inventing a whole load of wheels. I too learnt a fair amount by rolling my own, but I think I would have learnt other things quicker, and been more productive, if I'd made the jump to modules sooner.
Also, a fab way to learn good programming style is to look at how the modules do it. So instead of learning by rolling one's own, one can learn by getting to grips with the real thing.
§
George Sherston