It is well worth your time to learn how to do on-page and site-wide SEO yourself. I don't think it is worth paying someone to do that part of it. It is too easy to learn and you should be integrating it right into the content creation process.
The part you might want to outsource is the link building. Building low quality links is easy. However, it is generally a waste of time and also could risk hurting your site depending on what you are doing. So don't even bother with it. And don't waste your time.
Building links that meaningfully affect your rankings is a much more challenging task for an inexperienced internet marketer/webmaster. You can read about link building and how to tell which links from which site and which page might boost your rankings substantially. But, you won't really understand what you are doing with links until you actually try it for yourself a bunch of times in a bunch of different situations. Once you get enough experience, then you start to realize which pages you are probably going to get a decent ranking boost from and how you can go about maximizing the amount of rank boost you get from a link.
Therefore, it might be in your best interest to outsource your link building. Good link builders aren't cheap though. It can get extremely expensive if you want to hire a white hat link acquisition specialist. You can get cheaper links if you buy them from someone who has their own network, depending on the quality of the network and how desperate (or not) the seller is.
Word of advice - don't bother hiring link builders from places like Fiverr.com. Generally, the link sellers on there lie and exaggerate the quality of their links. They prey upon people who don't know better. The best way to find a good link seller is to ask around. Ask people you trust.