... so how much coding skill does this require to alter and understand?
I'm not sure how much 'skill' is required, there is nothing overly complex in there as far as I'm concerned, but that's a perspective thing. It's a large amount of code, and you need to understand how a fair amount of it works and interacts with other parts before you could change such things (or change them and expect success, that is).
Ultimately it depends on programming experience and how much time you can put into it. I wouldn't recommend newbie programmers dive straight into it, but any programmer with a bit of experience could be making such changes within weeks/months (depending on time expenditure).
If your not an experienced programmer, become one first. Learn about data structures and algorithms, learn about discrete mathematics, without a solid foundation you will struggle to achieve much.
Good luck, and a final bit of advice, persistence is key, programming can be incredibly frustrating at times (and very humbling, you'll constantly be amazed by your own stupidity) but if you just give up, obviously you'll get nowhere.
Cheers.