The easiest way to do this is with a script. I can't recommend any as I don't use them myself...
But, if you want to do it without scripting then there's a simplistic but time consuming way to do it. You see, there's no way to add Features to characters or classes through eventing. Sad, I know, but it's an oversight of the developers. It's probably why they let you do scripting to begin with.
In any case, here's how I would tackle it:
Set up a bunch of classes named the same thing. For instance, say your main character is a Soldier. So, you use 3 Soldier classes. He starts as the first of those classes without the ability to use axes. So, he learns how to use axes through the event, right? Well, he can't! You need to have him change to the second Soldier class and then put as one of its features "Equip Axe". Presto, it now appears to the player as if he has learned how to equip axes!
The major problem with this method is if you need your main character to learn a bunch of different things (or lots of other characters to learn them), you're going to be making a new class for each new Feature you're adding. It gets more convoluted and crazy if there's no set order that your characters will learn these in, so you'd have to make a new class for each eventuality and track which ones you've done... It becomes a nightmare if not implemented well.
Basically, you probably want a Script for something like this. Unless, well... you're stubborn like me and want to see what you can accomplish through clever thinking and not using scripts.