How can you build complex things? How can you learn to speak a language? How to design a website? How to write a book? All these questions can often be answered by: "Through multiple iterations". I will show you how iterations can lead to great results.
Divide and conquer
This one is pretty simple. When you want to build a complex thing you can try to divide it in much simpler things you can do with ease. Build things step by step, one thing after another. Sometimes you will think the complex thing almost built itself.
It's the way to build complex algorithms made of simpler algorithms. Build one algorithm after the other.
You can't know what users will think
You have that great idea. You spend countless hours to implement it. You share it with your users. Bang! They hate it. "Why?" you ask. Maybe the users are wrong to hate it, maybe it's not well implemented, maybe... Whatever you can avoid to spend too much time on ideas before a validation from the users.
To do so you can create a fast mockup of your idea, show it to users and get comments. Then go back to implementation or to find a better idea.
Write the draft version
So you want to write a book? Well, just write a draft version and get feedback.
You can learn through many trials and errors
When you want to use new vocabulary in a foreign language you will probably make akward sentences. Native speakers will correct you and you will improve your skills. Note that you need that first iteration when you try to use the new vocabulary.
You can't foresee all the issues
Create something. Try to do it good. Then when bugs appear, iterate to repair.
If you want to get any good, iterate fast. You are responsible of the first iteration. Do it fast. Then get opinion and iterate. Thus you will reach your goals.