> I don't think I ever caught myself writing code for my employer and thinking "hey, I really enjoy this"
-----
> Our job is not to program, our job is to create value.
It's supposed to be the job of every worker out there. Even janitors (believe me, clean toilets are quite valuable). Or maybe you think our job is to think about what creates value, then do it (or have it done)? That part is not programming, it's business analysis. The OP was a junior programmer, and as such likely had no say on BA. Heck, in general, junior programmers don't even get to chose their programming language, nor their build system, nor the high-level architecture of the programs they write. Genuinely thinking of creating value? That's a pretty good way to get fired. Just do what you're told, and watch (edit: and learn from) the consequences as they unfold.
-----
> You should be getting your jollies off of making cool shit happen, solving real problems, not necessarily that you just invented some sophisticated new algorithm.
True. However, the OP said:
> Imagine coming to work to spend hours googling, wiring together unbelievably shitty, amazingly poor documented frameworks and battling Javscript and CSS.
This is not making cool shit happens. It's loosing untold amount of time battling accidental difficulties. Solving "real problems" is precisely what the OP would have liked to do:
> There were a lot of really hard problems that programmers had to solve that didn't exactly involve javascript hacks to make internet explorer users happy
Working around a problem (such as IE6) that could in principle have been avoided in the first place, is not the same as solving real problems. Computers were supposed to augment the damn human intellect, and now they're mainly used to extract money from other people. This emphasises the short term and zero-sum aspects of our economy, both of which are poor at advancing humanity forward.
Sure! Can you provide for my family while I do?
Once you have kids, you can't as easily say, "well, we'll just sleep in the car for a year", or "I'll just stay at work ten hours a day and take advantage of their free meals" (or something). For most parents, our risk-taking preferences change dramatically once we have something to lose, and the pressure from our spouses makes it a little bit harder to take on risks of catastrophic failure.
My advice to anyone who doesn't like their job: please don't come to work in a shitty mood all the time, bitch and moan, and spread your poison around. You don't have to love your job, but quit making excuses and being lazy and go get yourself one you will love.
Finding a job I love would require me to change my career and–in the best case–would most certainly offer a starting salary that's far less than I need, given my current financial responsibilities (e.g., my family and $130K in private student loan debt).
Furthermore, I would most likely have to earn another Bachelor's degree.
See where this is going...?
Also, how can I fulfill my financial obligations with an entry-level job in Archaeology?
Poor guy. I write stuff I enjoy for my employer all the time.
Writing code that gets used by others no matter how cumbersome makes me feel like I've won the lottery.
Why do football players, musicians and movie actors get payed 1000x as much as the software engineers who made the technology to make possible their success? TV, Internet, radio, now all HD quality. So that some people can enjoy their work and earn millions while we who invent and produce the infrastructure should suck it up and call it work?
Does our society really encourage people to do stuff they dont really want to do, stuff they dont find enjoyable?
Just my twist on this.
They don’t. The notion that they do is laughable.
Let’s look at baseball. Baseball players are known for having huge multi-million dollar contracts, right? But that’s only major league players. The vast majority of professional baseball players play in the minor leagues, where they earn just a few thousand dollars a month (and they don’t get paid in the offseason). And that’s not all; minor leaguers are still really really good at baseball. They’re all easily in the top 2-3% of baseball players. There are simply no jobs for the other 97%.
The average minor league baseball player making $15k a year playing baseball is a vastly better at playing baseball than the typical senior developer making $120k a year at $BIGCORP is at programming.
As for the couple hundred guys making multiple millions a year who you hear about all the time? Well, there’s even more engineers who have struck it rich with a startup, and no baseball player will ever come close to Zuckerberg-level wealth.
You are comparing employees to a CEO and business owner (which doesn't have anything to do with technology, other than for the initial lines of code). Of course he has more wealth.
Do you think their jobs are cake walks? You think football players really enjoy the training, really enjoy destroying their bodies on a weekly basis? You think musicians haven't toiled for years and years making no money at all before reaching the level where they can make a living?
Even if you believe that they enjoy every minute of it, you are pointing at an extreme minority. Software engineers are in the top 5 best paid jobs and frankly, our jobs are ridiculously easy and enjoyable.
I always say Tom Cruise, Christian Bale, etc. (pick any major actor) would have been successful in their life no matter what since they have the incredible drive and discipline to achieve their goals.
I also get just a bit frustrated when we boil everything down to "software/tech runs the world" so we should be glorified in some way. Well, sewage systems also run the world. I certainly don't recall or care who built that.
It reminds me of a quote from Muhammad Ali:
“I hated every minute of training, but I said, 'Don't quit. Suffer now and live the rest of your life as a champion'.”
Now I'm not going to say that every athlete or musician is like that, which is part of the point; reality generally defies generalizations, but I will say that discounting the work professional athletes put in is a bit narrow minded, regardless of any perceived pay-hardwork or pay-joy ratio.
And the gorilla is never tired.
Alternatively if you compare all aspiring athletes, musicians, and actors to all programmers, you may find that programming does pretty well.
The closest you can find in the programming world is probably John Carmack, who found a way to earn a large sum of money based directly on his programming talent.
Athletes' bodies are taxed to the maxed. Most of the above are in the public light 24/7, they might feel unsafe and have to hire bodyguards. That's not something everyone is going to enjoy. These people work hard, sometimes long hours. They are on the road, sometimes away from their families for long periods of time. This might be an exciting life at first, but wears you down after a few years.
Your average working musician has a "day job" playing for weddings, churches, and corporate events anyway. Not the life of luxury you seem to imagine. They are spending their off time marketing, networking, and planning their next event.
Most actors don't "make it big" and spend most of their time auditioning for roles, networking, and spending time looking for more work. I know a actor. She actually quit and got a "day job" because of the unstable nature of the work. If you get a role, you're still working under a deadline, and you're still working under the authority of someone else. I've heard in an interview somewhere that TV actors can work up to 12 hours a day.
After all, while preparing for the Australian Open Serena Williams said "I don't love tennis today, but ... I've actually never liked sports."
What about the people who support the infrastructure that make your job possible? The people who get paid less than you. The people (probably immigrants) who work in farms and factories and slaughterhouses to bring you food? The cooks and servers in the restaurant. The workers in China who build your computer/computer parts.
Why does this "every single second" strawman keep cropping up? The complaint was not that every single second of programming isn't glorious, it is that every single second is shit. The idea is not "other jobs are perfect because they are fun all the time", it is "other jobs are better because they aren't 100% pure shit all the time". If you don't agree that programming is 100% pure shit all the time, then argue against that. But don't stoop to lame strawman arguments.
Personally, I don't find single second of my job to be shit. I really enjoy my job for the most part. There is some time spend on mind numbing tasks, but I tend to take those in stride. I wouldn't want to do anything else really. There's pros and cons to every occupation.
They endure that life because they know the door that opens to the field where they can do what they want is only reachable through this muddy road.
I program both for work and for fun, and I can understand that. (I also act, only occasionally, and yeah, regular programming job is a lot more stable and low-risk, so it's understandable that the upside is a lot lower.)
I can't pay my bills with enjoyable.
This bears repeating. Rare is the job that allows the job-holder to write code for the sake of writing code. Most of us have to build software that adds value to some other business process.
That takes a lot of thought and research, a little bit of code, and a lot of testing, documentation, and maintenance.
If we're lucky, we get to pass off what we consider the most mundane of those tasks to other employees. BUT! If we're good, we can (and do) perform all of those tasks when needed.
Just as rare is the job that allows the job-holder to clean up toilets for the sake of cleaning up toilets. Janitors clean toilets for a reason: allowing people to poo in a clean, healthy environment, therefore diminishing their stress and health problems, therefore making them more productive at whatever they do, which means more money for their company. On the other hand, getting paid for cleaning toilets up without reflecting on those good consequences is quite common.
Programming is the same. Many, possibly most programmers, are paid to implement specifications handed out from above, few questions asked. They are definitely not paid to think about the actual business value of the solutions they are told to implement. The bigger the company, the more junior the programmer, the truer this is.
The nice thing about computer science is you can make a decent living out of your hobby. The not so nice thing - you have to do what people pay you to do, whether they are customers are bosses. It's still a much better living than a poetry expert makes.
I think the author is delusional if he thinks any programming anywhere doesn't have large swaths of time that are a bit mind numbing. And my experience has been the programmers who think themselves 'above that' are the ones that provide the least value.
Our job is not to program, our job is to create value. You should be getting your jollies off of making cool shit happen, solving real problems, not necessarily that you just invented some sophisticated new algorithm.
I spent three years rebuilding video games I grew up on a really limited cell phone platform, it was a blast from a technical point of view. I've spent the last three years building fairly rote software that is used in developing countries, it is satisfying more because of the end result that software will hopefully have.
Go get a job someplace where you care about the end result of your work, or go work someplace where your technical side is challenged, but programming is not terrible, your attitude is.