All depends on the size of the program. It never hurts to have something in writing, but flowcharts will greatly improve your understanding of how the program should work, be laid out, and make it overall easier to code since you already have it all set up in your head.
I brainstorm more than anything, I have a notebook and pencil sitting next to me so that I can scribble down any ideas I come up with, do whatever math that I visibly need to be able to see, and the translate that into a pseudo code example. I try to play the code through my head to make sure it'll work properly, and then try to add it, or start fresh, to a program. You'll find something that works best for you, but I know a lot of people have, or still do, write a lot of information about their programs down, especially if it's a new concept for them.