I recently came across this comment:
I can't tell you how many times I've heard "oh, I just COULDN'T stare at a computer all day lol".
If you want a decent job, it's probably going to be an office job staring at a computer all day.
This certainly matches my experience. My degrees are closer to engineering/physics. Heavy on mathematics, not so much on programming. When I was in school, I always dreamed of getting a job where I could apply the my technical background, which seemed more "challenging" than the usual run-of-the-mill programming jobs out there.
I got that job.
And it sucked.
I'll grant: The technical challenges were interesting. But:
- I had to sit in front of a computer all day.
- The work was a lot more repetitive and tedious than I had imagined. Yes, although I was making use of my sophisticated knowledge, the mechanics of the job involved a lot of grunt work with repeated clicks and incessant typing. It felt closer to an assembly line than I had expected.
- The software tools I used were horrible. Random crashes. Entering
the same information in multiple places. Horrible user interfaces.
- The more "advanced" the technical skills, the rarer the jobs. The rarer the jobs, the smaller the market for good tools. Hence, no one puts in effort to build quality software. Also, there is a higher likelihood the tools you use will be built in-house, by someone whose primary job is not to write software (i.e. a side project).
- Your colleagues reflect all I have written above. They do not mind doing
boring repetitive work. The management insists you are whining too
- As a corollary, if you modify the software to remove several headaches, as well as improve team efficiency, management will not reward you much for it.
- Pay was not particularly high.
After a few years, I moved on to a programming job that required a "lower" degree, and arguably less sophisticated knowledge (not dealing with advanced algorithms, etc). How did it compare to the "more interesting" job?
- More autonomy.
- Obviously, much better 3rd party tools.
- By its very nature, there is more emphasis put into thinking deeply
about a problem before coding it.
- Thus, less time dealing with a computer, and more time pondering on a notebook or whiteboard.
- Even when I sit in front of a computer all day, I type/click much less than I did in my previous job.
- Programmers really care about improving the workflow, and those efforts are rewarded. I guess it's a culture thing.
- Pay is better.
Is the new work more intellectually interesting? Nope. The lesson, though, is that the work environment and work conditions (including the tools you will use) matter a great deal!
Getting back to the quote: It really is funny that people go into non-programming technical fields, only to end up becoming more of a slave to computers than the typical programmer is.