I personally would rather work at the shittiest programming job than go out and work on a farm. But that's just me.
I personally would rather work at the shittiest programming job than go out and work on a farm. But that's just me.
Most non-developers see programming as tedious, mind-numbing work that involves zero creativity.
Most people who have never worked on a small farm or built a table/shed/house/whatever think of the manual labor as tedious, mind-numbing work that involves zero creativity.
Both working on a farm and programming are surprisingly creative professions. I grew up on a farm, and farming requires a love of creating and building and an incredible amount of creativity. ("Big agriculture" is a bit different. I'm referring mostly to single-family operations, though many of those are quite large.)
In both, you have to love building things from the ground up. You have to be willing to get your hands dirty and put up with occasional tedium, be it fixing a particularly annoying corner-case or riding a tractor for 12 hours.
In both, you have to solve complex problems with limited resources under time pressure. (The things I've seen my grandfather fabricate or fix with random broken junk and an arc welder are simply mind-blowing.)
Most farmers I know embody the "hacker culture" more than most self-proclaimed "hackers" I know.
I'd argue that going back and forth is less of an extreme than you'd think.
But if he loved/liked programming and the problem is just not working on something of his liking, nothing prevents him from either finding another more endearing programming job or working on his own thing.
I believe the parent spot-on: not everyone is into programming because it is his/her own calling in life, for many people it's just a mean to an end (making a living) which has the benefit of being somewhat more creative and commanding an higher pay than many other jobs.
And by all means, there is absolutely nothing wrong with it, it is clear that the blogger was unhappy with his life (while he was clearly happy when doing something else rather than programming in the past), so it wasn't his thing really, I wish him all the best with his new adventure.
Risk and lack of a safety net prevents people from working on their own thing.
For all the shit rural culture gets around here, I'm usually impressed by the ingenuity of its homegrown hacker-like culture. I sometimes get frustrated with my overly automated urban life. Apartment/condo living with a low maintenance car/appliances/technology and a worklife where I'm shuttled to and from via public transportation doesn't leave a lot of room for fun little hacks or impromptu solutions. The room that's left is often trivial gimmicks like tying something to tasker or messing around with whatever platform or language is hot right now.
Then I bought a fixer-upper house. As frustrating as this can be sometimes, there's just a great rewarding feeling of learning new things, fixing things, adding value to your home, etc. Real life hacking that isn't servos or screens is surprisingly rewarding. A small farm must be this x100.
One of the most striking differences to me has been how many more abstractions there are for people living in a city - and as a result, how much less those people know about their surroundings.
You don't need to live anywhere special to do this. It's easy. Just fix it if something breaks. Try to make things instead of going out to buy them. It's not even always cheaper to do this, and the effects are certainly less polished than what you can buy (it gets better over time), but the feeling that you did something real is very worthwhile.
I'm living in a tiny apartment and I gathered some tools like this: http://www.dremel.com/en-us/Tools/Pages/ToolDetail.aspx?pid=... for working with small pieces of wood, leather, metal and glass. Good tools are very important, you don't want to be fighting with your tool when making something, it's frustrating. I made something like this: http://i00.i.aliimg.com/wsphoto/v0/2042435968_5/Electronic-C... out of an old leather belt, fixed a few bedside lamps and some flashlights and built a bedside table, among other things. It took me from one week to one month to make them, in contrast to going out and buying them in 30 minutes tops. But I learned many useful skills, and - in some instances - made things much better suited to my tastes than any mass produced equivalent.
It's like Linux or Mac OS thing: if you want your computer to just work, go with the latter, but if you want to decide yourself how most of your computer works you need Linux. Needless to say I'm using Linux wherever I can :)
With software I just seem to have patience and enjoy getting every little detail right. So I feel like it's been the right path for me, I've never really felt any urge whatsoever to switch careers.
As much as I love programming sometimes it's play that's most important. You need to gather fresh ideas from the world around you. It can be isolating to be stuck in the rut of progress and innovation that is so endemic to our culture. Learning to fix, build, and create things that I depend on is worth investing in; even if it doing so isn't rational.
I could have simply called a contractor to re-tile my floor and they probably would have done it in less time and for less money than it cost me to take the time off work and do it myself. But I learned how to do it on my own. It hurt, it took a long time, I screwed up a bunch. But I walk on that floor everyday and my family loves it. It makes me proud and happy and I think I did a fairly good job. It'll last for decades. The code I wrote last week will probably not even compile in a decade.
Autonomy, mastery, purpose - family farmers have all three of those.
I have in the past worked in the most corporate programming environments writing insurance processing systems. Even within those parameters there were all kinds of adventures and problems to solve. Perhaps I wasn't in control of the "grand vision" of the company, but I was solving the little problems that pertained to my assignments. I found the possibility for immense creativity even in these supposedly mundane programming tasks.
I don't say this to blow my own horn or anything but I feel like programmers who truly, truly love it - it's almost irrelevant what project they are working on.
I think that's only partly true. I absolute love programming, and as a result, yes, I have been able to find enjoyment in even the most pointless projects.
And yet, over time, that's not enough for me. For some reason I just cannot help but feel worse and worse eventually when I get the impression that my work has no 'higher' purpose (by whatever definition of 'higher' I employ).
Perhaps this is because I grew up with parents and in environments that were very idealism-driven. Perhaps it's personality. I'm not sure. But with any 'pointless' work I always reach a point where I can fully enjoy much of my day, but I feel drained and a bit depressed at the end of it.
I could see how a programmer who truly loves programming, and nothing else, might feel the way you describe though.
But who am I kidding.
(I'm not in love with using the term life-hacking, but, alas, it really is the best fit for the concept in question. Still, it need not be done as a fad or because it is "cool" in a certain set... it can simply be a useful way of improving yourself.)
For example, two weeks ago I picked up the muscle-a-day routine and already I'm feeling way more focused and energized. The concept is very simple, today is butt-day so any time I'm not thinking about anything in particular I contract my glutes. It's really a fantastic concentration and fitness exercise that keeps you focused until the end of the day when your attention begins to drift, and restores the balance between your over-stressed mind and under-utilized body.
And part of my point was not to let the terminology stop you too much. I don't know a great word for the concept that doesn't have trendiness (the most obvious, mere "self-improvement" or "self-help", has its own baggage!), but the fact it's got a silly word in it doesn't mean it's a bad idea, nor does the fact some people go way overboard with it show it's a bad idea.
I also find time to volunteer with the local Code for America brigade and interface with folks in the government and non-profit area on a regular basis. My son and I also go up to a hacker club in the city where folks are always building something cool.
Perhaps rather than monoculturing your life, the lesson here is to diversify on a daily basis?
Besides, I fail to see how this can be considered manual labor or even the possibility of allowing average programmers to fill such positions.
And maybe we have a little while longer to be the elite, but already children can build websites and applications so our days are numbered, soon everybody can know what we know and do what we do and as you mention, tools will be better as well and that empowers them to be closer to us too.
It takes a bunch of programmers to keep a fleet of servers running, vehicles will be maintained by programmers too, but it takes less programmers and less good programmers with every advance we make.
Just consider web development. There was a time you could make decent money with 'simple' HTML/CSS work. Clients were happy with that. Then you had to move to CMS-based sites, because people demanded the ability to add and edit content easily. Then you had to start offering plugins and more complex tools because everyone needed more than just a contact form to interact with their site visitors. And now everyone wants web apps, which are significantly more complex than simple websites.
I suspect that people who love programming and are good at it will keep moving up along the ladder of abstraction, and if anything there will be more and more need for experts at every rung of this ladder as companies get stuck with 'old' technology (for example, I could make a killing as a Drupal consultant).
There's almost nothing manual about it: you just dictate actions to others (people or machines.)
>manual work is physical work done by people, most especially in contrast to that done by machines, and also to that done by working animals.
Here, inconveniently, "physical" is left undefined. And in fact, it's being used to mean "non-linguistic/non-social."
Heroku and other PaaS systems eliminate server administration and scaling for many companies. That same work is still fundamental and critical for organizations like Amazon. But it is really just an inefficiency we are learning how to automate completely, with manual labor in the interim.