For 23 years, every time a discussion like this the same answers come up:
- People aren't craftsmen like the used to be. (new gen is worse) - Young people learn faster. (youthful vigor has advantages) - The industry changes so fast. (tech is like that) - People are only in it for the money. (as always)
The older I get the more I feel like nothing actually changes besides the colors of our IDE.
All said, some things are easier. There will be restarts/reboots/refactors/refreshes and new tooling that makes the old tooling easier to live with. Docker made LXC better... Rust makes WASM easier (and so much more).
I do think that too many places have jumped too many sharks along the way. You don't always need kubernetes and five 9's of up time. You also don't always want to break every minute action into a separate lambda/function. I feel so much for the gray beards from when I was in my 20's. Keep it as simple as you can. If you must add complexity, make sure you wrap it in such a way that makes everything else simpler. Don't create a large application for what you can do with a small script. Automate anything you have to touch more than a couple times.
There will be times where you are slogging, and times where it is easy. You will work with brilliant people and certifiable idiots along the way. Such is life.
If you are passionate about the work, and love to constantly learn. You'll be okay. If you aren't, then find that balance in life, and do what you need to in order to keep up.
Honestly, I think it's time for me to find another line of work.
I don't know anything else apart from technology and I feel doomed -_-
I do DirectX Graphics and native programming for fun on the side, but it doesn't seem like there's any good money in it. I look up DirectX jobs but a lot of them are AI using GPU pipelines, and AI is really uninteresting to me
Young dudes are way more respectful of other engineers' actual skill, and less likely to ask female coworkers on dates or do other weird things that drive them away. My mom has actually seen a few younger guys step up and defend her after like forty years of handling these dickbrains on her own. The social side of things, at least in most companies we've seen, has become moderately better for everyone who isn't at work to get a date.
The existence of Visual Basic and VBA support in the Microsoft Office Suite made it possible, and even practical, for most domain experts to build usable applications that allowed everyone to get their jobs done. If there were performance problems, or it needed to be made more reliable, professional programmers would be brought in to rebuild things in a more properly designed manner.... it was at this point that we almost shifted to being actual Software Engineers, and professionalized.
Since then VB was cast into the pyre as a sacrifice to the very unnecessary migration to .Net, and the bloat that ensued as desktop programming lost a decade of productivity, people decided to just shove everything onto the web.
It was only as this was starting to happen that Steve Jobs further crippled programming by introducing the iPhone, and suddenly GUI applications were expected to work on tiny screens (in either orientation) without proper input hardware like 3 button mice and keyboards, connected across a slow and unreliable network connection.
Needless to say, the last 2 decades have been a total loss as far as programmer productivity goes, with one shining exception.... GIT. Git has its flaws, mostly arising when people don't realize it's a set of snapshots that fake storing deltas, and not the other way around.
GIT/GitHub, et al... are fantastic. The ability to just keep multiple machines up to sync without hassle in seconds is sooooo good. I used to keep stacks of floppy disks with ZIP files of source code, all manually managed.
In the future, we need to recover to the point where you can drag/drop GUI elements and have them work anywhere, like we were with VB/Delphi/Hypercard.
When we get there, we'll let users build basic applications, and we can finally professionalize and apply actual engineering practices to the art of programming.
Until then, please stop calling it engineering. We don't put in anywhere near the effort that Margaret Hamilton (the first actual Software Engineer) and crew did, in safely getting men to the moon. We're programmers, not Engineers. As Uncle Bob said, we don't profess anything. We certainly don't use engineering practices as described by The Engineer Guy.
---
Example: You can plug a lamp into an outlet, and in the US, it can draw up to 15 amperes, and under almost all circumstances, you can't damage the wiring in the house via a fault in the load.
We have no equivalent in software. Chroot, sandboxes, etc... are far too unsafe. We have no standard way of letting the user choose resources to give to applications at run time.
The worst part is, most people don't even see the deficiency. Imagine the current power grid with no fuses or circuit breakers.... the first wiring mistake would crash civilization.
We can do better, we must do better.