Programming theory: Initial code layout

Many years ago when I was learning BASIC as a kid, I heard about using pseudo code as a way to prototype the actual code that you were trying to write.

I also remember hearing the suggestion of writing functions first.

However I wanted ask if there are any modern resources to learn how to plan code writing.
Why waste time puting on paper a thing that you are not sure it would work, when you can try to code on the fly with incremental changes?

Planing is OK if you don´t spend too much time with ideas you don´t know they would perform in the real world.
Yes, start by reading Casey's method of "Semantic Compression" which is, start the usage code first and then see what needs to be pulled out into functions/files etc.

http://mollyrocket.com/casey/stream_0019.html
Also, Day 27 - "Exploration based architecture" is slightly relevant here. Plan your goal rather than how you'll get there.
So if a game is made up of input, graphics, sound, physics, and network, build up code in each section, test, repeat until you have a finished piece.