Over seven years ago, I quit my programming job at a promising startup. The decision was anything but easy and straightforward, but nevertheless ended up being the absolute right choice in the long run.
My job certainly wasn’t the worst in the world. It came with lavish perks. The office was spacious and airy; it had tall ceilings and was furnished with overpriced leather chairs. We had access to complimentary snacks and drinks. We had flexible hours. In exchange for surrendering our precious time, eyesight and youth, the company dangled carrots (stock options) in front of our faces. The best part was being compensated for writing code, a very fun and addictive hobby that I enjoyed.
After finishing a critical project that I was working for several months, I collected my overdue vacation and took a three-and-a-half weeklong trip to Central America. It was one of the first “extended” trips that I took abroad. Unlike my previous vacations, this time, instead of staying at hotels, I backpacked from country to country, staying in various hostels while mingling with other backpackers and locals.
After the trip, I flew back home and rejoined the daily grind. As I attempted to settle into my old routine, something was off. It wasn’t like all my previous vacations where getting right back on the hamster wheel was as easy as jumping off it. This time, the process of going to work became an unnatural and robotic slug. Instead of seeing my work as “important” and “life-changing” (words recruiters love to use to describe a position), I began viewing it for what it really was: driving to office, writing some computer code and going home. Since the money wasn’t a strong initial motivator, It mattered even less that I was receiving a paycheck for it. The work began to feel monotonous and repetitive.
Feeling that continuing along this path wasn’t in my best interest, I met my manager, and informed him that I would be quitting. He was disappointed but sympathetic; he assured me that the job was always mine should I change my mind down the road. We shook hands, and I left the building.
I never did return. Although, I couldn’t initially pinpoint the exact causes of my discontent, over the proceeding years the jigsaw puzzle slowly started to come together. As always, the issue was the most efficient way to spend my time.
Once the fog cleared, and I had a chance to look at things in a more objective matter, I realized that I can either spend my scarce time communicating with a lifeless computer or spend it communicating with real, breathing people. And the more time I spent telling a computer what to do, the more rusty I became when dealing with humans; by perfecting my skills of talking to a computer, I was simultaneously atrophying my skills when dealing with actual living and breathing humans.
Since it’s physically impossible to do both, I had to choose one. In economics, it’s called opportunity cost. Every additional minute that I debug an obscure bug is an additional minute that I’m not reaching out to perspective clients or business contacts. Every additional minute that I look up a vague function is an additional minute that I’m not seducing a cute girl at a coffee shop or at a bar.
The more I thought about it, the more I realized that it all came down to whether I wanted to interact with real, living and breathing humans or keep trying to get some device with transistors to obey my commands. In the end, I chose people.
It also doesn’t hurt that I was deserting a commodity field. Thanks to the plethora of tutorials, manuals and guides available, it’s completely possible for anyone in the world right now to learn and master the same exact skills that I have, enter the market place and begin making money — competing with guys like me in the process. These days, a person doesn’t need much beyond time, dedication and an Internet connection.
Programming is a skill without barriers and competitive advantages. More competition means less job security and lower wages, something that should be concerning to anyone who relies on a commodity skill to pay his bills. That’s a great scenario if you’re an employer but terrible if you’re an employee.
In the new globalized world, in order to matter, you have to add some kind of value. And more often than not, it means dealing with people. The very best skill in the world is the ability to deal with people, whether it’s arranging deals for a new business, or seducing that cute girl in the coffee shop.
After all, it’s the people that make the world go round. And you can’t get really good at the latter if you spend most of your waking hours staring at a computer screen trying to catch some obscure memory allocation bug.
Although I no longer code for a living, I still spend a lot of time staring at a blinking cursor on the screen. I’m using the computer to communicate, but the difference this time around is that I’m communicating via a human language (English) that’s understood by actual people, instead of toiling in some dark cubicle constructing arcane instructions that only a computer can understand.
Furthermore, it makes sense to leverage the fact that there’s a vast army of developers looking for projects and are willing to work for low wages. So, for my next project, I’ll be looking to hire a developer instead of doing it myself.
I’m more than certain that the contractor I hire will be much more capable than me; in several years my programming skills would rightly atrophy as a result of spending more and more time in front of people: arranging business partnerships, seducing women, and writing in English and other human languages instead of funneling my time on a very specialized skill that only a computer can understand and appreciate.