Also..maybe it’s not always about the money. I also find it rather charming that you think a SWE would not have to deal with long hours or certifications or hostile work environment.
Also..maybe it’s not always about the money. I also find it rather charming that you think a SWE would not have to deal with long hours or certifications or hostile work environment.
When I was in school I remember reading an article titled "Teach Yourself Programming in 10 Years"[0], and at the time I found it pretty funny. I was learning to write Java at a rate I'd never picked up anything else before, how could it possibly take 10 years to call yourself a programmer?
Nowadays, I've just about hit that 10 year mark and I feel like I have nothing to show for it. Some nights I lie awake staring at the ceiling, wondering if I've wasted my time learning something as vapid and meaningless as computer science. Time on this earth is so unbelievably valuable, throwing away even a minute of it makes you the envy of the dead. It's been a decade and I still feel funny calling myself a programmer.
What people compensate you for is wasted time. All those nights you decided to fiddle with NGINX instead of drinking with friends, the times you pushed away a loved one or a partner just to polish a commit before you pushed it, the years you wasted talking with people who will never see eye-to-eye with you but demand an argument nevertheless; as I get older and time starts slipping through my fingers like sand, I don't know if any amount of money could fill that void. The only thing I'm left with is a sort of unfulfilled sadness that makes me wish I spent more time with people, or cultivating my social garden, as it were. Instead I find myself past the point of no return on this track though, damned to walk the same path everyone before me did, and then some.
Not everyone can be an SWE because most people have self-respect.
One of the reasons i chose comouter science was that it was an engineering discipline where I didn't have to wait for materials. I can dream something up and build it tonight. That also means you can progress as quickly as you choose. Perhaps at the cost of social relationships. And we often do that at a stage where we haven't learned the value of those relationships yet.
At least for me, what you describe comes out of an unhealthy level of perfectionism and expectations on myself. Expectations I'll never satisfy, hence unhealthy behaviour if I don't address my expectations. A therapist helped make those more recognisable for me. Consider it.
As long as you have balance in work and other activities, there is work in our field that you will be able to look back on and feel a sense of achievement. Look up civic technology. What tech offers is making things feasible and accessible where it wouldn't have been before. Things can be more efficient, like offering remote learning, data collection, analysis and data-driven decision making.
But you don't have to do civic tech to be proud of your work. What tech offers can benefit society in very many ways. It's even justifiable to work for a bank if it's a bank that doesn't exploit people. And as an employee you can help keep it that way.
So don't be too harsh on yourself. And you don't necessarily have to leave the industry to feel you've accomplished something.
The first instinct I had when reading this was to say that had I known that computer science and programming weren't the same thing, I might have done something different with my life.
But I'm really happy I did: CS introduced me to Gödel's Incompleteness Theorems and has helped me learn how to think about problems in a way that I don't know I would've gotten merely through programming. CS introduced me to Cantor's Diagonalization Argument, and that has been a subject I've thought about on and off for a little while. CS introduced me to the ideas of complexity and computability, both of which are somewhat philosophical disciplines, not merely tools for program analysis. I was probably predisposed to think about these things anyway, and it's not as though CS was the only way to learn--but it was a good way to eat, too. (I'm given to understand that pure philosophy tends to make it harder to pay the bills.)
> What people compensate you for is wasted time. All those nights you decided to fiddle with NGINX instead of drinking with friends, the times you pushed away a loved one or a partner just to polish a commit before you pushed it, the years you wasted talking with people who will never see eye-to-eye with you but demand an argument nevertheless;
Work is a per se good, but it isn't the ultimate good. It is dignified and dignifying, but debases us when work becomes a master rather than a servant. Work to live: this is good; live to work: this is bad.
I don’t know anyone who’s had to get any certifications to be a software engineer. I don’t even know what certifications would be useful. The other stuff might be debatable (Amazon does exist), but still easy to avoid (just don’t work for Amazon).
I am trying to understand.
What I'm saying is that if more people knew that software engineers can make surgeon/investment banking money, many of them would choose software engineering instead of surgery/investment banking. My theory is that many people just aren't aware of it, and without that information, choose professions that they're less happy with.
Yeah, if you're doing game engines, systems programming, ML and whatnot, it's a different story. The vast majority aren't doing that, and you don't need all those skills just to be a software engineer.
One might not become a great SWE that way, but must they be great? I've known far more mediocre SWEs than brilliant ones. Even the um... sorta awful ones manage to skate by pretty well.
Eliminate the concepts in the field of programming that aren't required for making a Turing-complete language, and what you are left with isn't that crazy complex. It then comes down more to practice, which most people don't want to do because they don't see the inherent value, don't have their own ideas, or assume they aren't smart enough.
Just with that level of complexity, you need a unique attitude and problem solving ability that many people can't or haven't developed. You need to be willing to stare at a computer screen for hours, without quitting due to frustration or boredom.