A good advice that worked for me is to hack vBulletin. But writing your own hack from scratch can be a task, so what I did was take a wBB hack and convert it to vB3.0 (with permission of course, since it was going to be public).
That taught me alot. Im almost ashamed of the stupidity of the errors that held me up for months and months, but I learned, and not by some generic book or crap. Books can tell you what functions does, but guess what, so can php.net.
It doesn't matter if it takes 6 months (hell, been there done that).
It doesn't matter if it's full of bugs (ditto).
It doesn't matter if it's not a complete rewrite (this will come as your skill improves).
You will learn alot, and you will eventually learn how to write PHP independantly from vBulletin, should you wish this.
And by that time, you will be writing serious hacks of your own either for the good of your own site, pocket book or for the community
At least, if you have the motivation to do so
Happy coding ^^