I strongly believe in "as simple as possible, but no simpler"...
To coin a phrase... give a newbie some code, they'll be able to code for the exercise, give them some direction, they'll be able to code for life...