Pros
I don't think I've ever had the opportunity in my career, either before or since, to work with people quite as smart. My chain of command all the way up to the top were all extremely technical; I could talk C++ as easily with my coworker as I could with the VP of Engineering.
Even better is that Mantech has so many contract opportunities that you will have the opportunity to work on pretty much anything you like. While I was there, I got to work on kernel drivers, firmware vulnerability research, Android development, JQuery front-end technologies, Jenkins, and thanks to the fact that management has a strong mentorship and dual-track program, you never feel like you're sacrificing your career or wind up getting stuck just because you prefer to code.
Training? Sure! Whatever you like, you get to spend up to a week going somewhere to get training on that thing. And Mantech doesn't attach strings; if you want to get your training and then quit, they let you do it.
You like your private time? Excellent. Most contracts are on a time-and-materials basis. You are paid for every hour you work. After your 40 hours, you go home. No exceptions. Unless you want them, of course--in which case, you can work as many hours as you like, provided your manager approves of them.
Cons
If you're not top talent, then watch out! This company will bend over backwards to put its smartest people on internal research and development to hold on to them between contracts, but if you're entry level, expect your job to be on the line when your contract ends.
You've also got to be aware that the organization is incredibly federated. The extent of your interaction with the rest of the company will probably be the weekly pestering you get from HR about filing your timecards on time. If not for that, the people above your site director might as well not even exist.