For a shop or something, you could do the metal roof yourself. For a house, I'd pass. Laying out and screwing down panels is pretty straight forward. Doing all the trim and angles and gutters is a beeotch. Whatever you do, don't hire M&M roofing, John Mitchell. He did the roof on my shop, put the panels on the wrong way, and had several leaks the first time it rained. He refused to correct the panel orientation even though I had a statement from the manufacturer saying he had done it the wrong way. Said he had been doing it that way for years. I corrected them myself on the front side, and it has no issues. The back is still the wrong way and it collects leaves and pine needles which then siphon water in and cause leaks.
For shingle roofs, I've used Max Baxter Roofing and they did a good job. I've also heard good things about Dockery roofing.