I found myself often getting lost in decisions such as "should I use a helper List for intermediate result storage?" and "should I create a helper function to do this?"
My advice for this: read The Little Schemer. You can follow it in Erlang. It's a good book to drill a sense of this into you.