person
a leaderboard wouldn't really be 'pushing' yourself, it's just learning something new
once you learn keyvalues/callbacks you're set and you need no 'pushing' for something basic like a leaderboard
you only really 'push' yourself when you take something learned, and apply it at an extreme like how dragonfire was trying to make real-time multiplayer
teachers will argue otherwise, but I feel that learning something and pushing your knowledge of something are completely different
someone teaches you what a sin function does by drawing a triangle and saying "this side over this side". boom, you know it, no pushing yourself. taking that knowledge and then figuring out how to apply it is pushing yourself.
similarly, with keyvalues, once someone tells you how to getKeyValue() that's pretty much all it takes to make a leaderboard, not much thinking required (unless you have trouble with like one or two variable declarations/if statements)