There is a saying that the only way to learn is from mistakes. Only geniuses learn from others.
I think this applies in a high degree to programming. That is why it is difficult to read good books that show how it should be done. You have to do the mistakes yourself. And so I agree with what many state above, start writing code immediately. When it doesn't work, or you have problem to find out how to design it, then you go looking for answers in books and Internet.