I notice that right off the bat, I am being given functions to work with. Such as hero.attack(). It kind of seems like a crutch to me. Will I ever be shown and given the ability to write my own functions?
yes, you will be writing and defining functions. If you look at the bottom you will see a button for Achievements. There you will find a list of many of the concepts you will be performing and learning. CodCom starts out very simplistic for beginners who have never seen anything like this before.