It has its downsides of course: getting a TS security clearance can be stressful, but that goes away afterwards; not being able to tell your SO what you do other than high-level stuff; career advancement and progression can be a long process and you basically know where your salary is going to go when you first start (because it is standardized); and so on.
So if you're the actual do-the-work peon instead of someone in any of the several tiers of useless middlemen, you work regular 8 hour days, get 10 or 11 paid holidays, and when you get home you are simply done with work until the morning of the next workday. It does not matter much if you do your job well or do it poorly, because there are so many other people working on it that you will never get recognition for a job done well, nor will you get any blame for doing it poorly, so long as it does what it says on the box.
The deadlines also vary by contract, but as every layer of middlemen adds its own padding, it wouldn't be remarkable to have two years to develop yet-another-CRUD-app with zero scalability, compatibility, or interoperability requirements.
No one doing the actual work is a direct government employee, because the uniform pay schedules are completely incompatible with industry norms. The government employees are simply there to make sure the contractors do what is required.
The net result is that you can get all your work done in just 2 hours and look busy for 6, or amble through it at a sloth's pace, gold-plating everything, achieving 100% test coverage, using ordinary software as a teaching lab for industry best practices, and such.
There are plenty of downsides, of course. The work is never glamorous, and you never really have much say in what you do or how you do it. You have zero job security, as you could be out of work if the wind changes direction in Washington, DC. The codebase will always be complete garbage when you are first introduced to it. The unimaginative and slow environment is not stimulating, so you absolutely must have a hobby or side-project that can engage you mentally outside of work.
When he leaves work at 5pm he actually can't access his work email. Nobody can send him anything from work on an unsecured line.
When he leaves work at 5pm on a Friday, nobody can contact him about work related things until he is on site at 8am on Monday morning.
He's a senior level unix admin. That can't ever be paged. I'd say that's pretty okay.
A bit of a simplification maybe, but as a lumberjack there are N+2 moving parts you need to care about, the saw, the tree and N coworkers in the proximity (N < 10) (if there's a moose and I catch it with my falling tree, it doesn't count as an accident, it counts as a bonus). With software there are thousands of moving parts and you can be pretty sure that no matter the amount of testing and code-reviewing, the parts will move in new unexpected ways once they reach the customers. Besides as a lumberjack when you leave work you leave work. You only have to worry about not killing someone during your working hours.
TLDR; its the passion for creation which drives any job.As a programmer having things setup in hours or weeks and then seeing your product being used by a percentage of the 3 billion people[3] who use the www.It brings a hell load of satisfaction in me.
[1]:http://hello-world.io [2]:http://money.usnews.com/careers/best-jobs/plumber/salary [3]:http://www.internetlivestats.com/internet-users/
Most gardeners, plumbers, construction workers etc. are NOT artisans. They are just normal people trying to get by as best as they can with the means that they have. They often have lower level of education etc. etc. This is the real world. Not to mention that most programmers don't actually like programming... it's just the myth perpetuated on these (and other alike) boards. These are 90% of programmers that aren't on HN etc. They just don't care. They don't love programming at all - it's just their job.
This passion for creation is great - but it's simply too idealistic. Most people hate their damn jobs and hate it mostly because of how exhausting it is to make not very much money.
I worked at Lowes in college hauling lumber and I miss it dearly (rose colored goggles and all). I was in the best shape of my life, I didn't think about work (lumber?) at home. It was a simpler life.
That sort of work can really wreck your body as you get older.
I worked at a car wash (vacuuming, drying cars, etc.) for 9 months when I was 15, and I loved every minute of it, despite the fact that it was very laborious. I had many jobs in the year before that, most of which were inside without much labor, and I hated each of them.
Then, I framed houses (first 3 months were basically just carrying things around and making cuts for others) for a year when I was 16, and it was a blast, as long as it was warm outside. However, what was not a blast was making $7.25/hr. I felt great though, super healthy from all the lifting, walking, climbing, etc. The only non-monetary negative was cold weather; swinging a hammer in the cold is no bueno for anyone.
I also did landscaping at 17... for one day. I'm not going to lie. Landscaping is mega hard work, and the 3 Mexican men I worked with put me to shame in less than 6 hours, despite my frequent visits to the gym and +10 years of youth I had on them.
Now, I write code. I love it, but I absolutely hate being in a chair, and standing while I type is not appealing to me. I work out for 45 min every day at the gym after, but it doesn't make up for all the cave-dwelling I do.
In summary, I think that labor is usually really rewarding, even when you feel pooped at the end of the day, but certain labor jobs push the envelope a bit too far to be called "rewarding".
Do you know people who do that kind of work? I spent three years working with a decent sampling of them. Sure, some feel that it's drudge work and that they're stuck doing it for lack of options. They get through their day doing the minimum necessary - you can find those types in our field as well. But a lot do take real pride in what they do, and in doing it well.
Of course many if not most would take an office job for more money if they opportunity were there - but that doesn't mean none of them derive pleasure and satisfaction form the work they're doing.
What fantasy world is everyone living in that they love their jobs and derive pleasure from it? What 1%'s of gardeners are we talking about here? I assure you 99% of them would rather not be gardening.
It's very likely if you are doing a physically laborious job you are making very little money, struggling to feed your family, give your kids the spoils they want, your wife is mad that you can't take her on vacation etc. etc.
of course physical labor does not pay as much, as long as the pool of workers is significantly larger. Doesn't mean that some folks would choose another career path if other fields would pay as much as software engineering does.
You say narrow - I say broad. For most people the 'job' they do is just a thing that brings money in. They have no feelings towards it - it's just a thing they do. They are more concerned with their family, their relationships in general, how they are going to support their kids, how are they going to pay their damn bills etc. etc.
Under this condition I find it hilarious for someone to justify -- sitting from their computer screen with an IDE open on the other monitor no doubt -- the fantasy happiness that can be had from doing a lower paying and physically more challenging job. I don't know gardening, but I do know construction, intimately, and imagine that gardening as a profession is not too entirely different. Most people who do these jobs are not doing it for some fantasy happiness. They are doing it out of necessity.