If you check out the map I posted a while back(Create-your-own-Hero-Dota-map), it uses that kind of system. Set the skills into variables and also use another variable to store their level. Example Skill1 = stormbolt, SkillLvl = 0. For hero skills, just give him dummy skills, like "First Skill"; when he learns it, give him Skill1, increase SkillLvl = SkillLvl + 1, then set the skill level of Skill1 to SkillLvl.
The only downside is they wont be able to view their selected skills when leveling up their skills. You can solve this problem by maybe adding an info tool to know their skills.