Write a functional specification document first. It can be as simple or as complex as you like, but you need to determine what the application is to do and how it is to do it. From there, keep adding more and more description of how and what the application is to do, breaking it down into greater and greater detail until you finally get to the point where the only next logical step is to change one of the simple description statements into code. Obviously, at some point you will need to become familiar with a compiler/assembler or interpreter and an appropriate language.