Are there even any field in software engineering/development where the core knowledge has remained true over the course of years? Designs and paradigm changes.
For example, basics of graphics are same over 50 years. But the way things are built have changed multiple times. Apparently, no one pays for someone who knows only the fundamentals. People need experience in practical aspects too.
Another example is AI is like a rat race going in circles and trying to catch up with the latest ideas. Contrary to hard engineering where basics remain true for a long time until we find new ways. But the basics of engineering a product or solutions translate no matter what.
So what do you think are skills that are going to be relevant no matter the hype?
I also agree with others that soft skills are incredibly important.
As for fields of expertise, I am looking into many diverse topics such as urban planning, sociology, civil engineering, aerospace engineering, electricity production. I feel like at least in my environment there are a lot of problems that I could help solve if I had knowledge in some of these areas. Besides that I am doing a PhD and recently there has been a lot of emphasis on interdisciplinary research.
Technology comes and goes, engineering fundamentals are still behind it all.
It is mostly at th interview stage that the above skills can be demonstrated. Most effective by showing that you know exactly what they do, what they need, and how hiring you will help get there.
But remember that skill building and job seeking is quite different things. The latter is mostly about finding out what people want to hear/see, and communicating that.
Most of the hype is generated by people who did not wrote a line of code in their life, and lack any understanding of software complexity.
Strong fundamental CS skills (e.g. getting through MIT/Berkely CS core courses with all assignments and projects done properly) if you don't like working with people. (don't get me wrong, still has to work with other people, but you get to choose which people to work with)
It's about
1. Knowing your product, who wants it, who is hurting because they don't have it.
2. Finding a way to reach out to the people who will benefit the most. Understanding sales/support channel. Cold calls and FB ads work for some things, but good sales people learn that there's plenty of other channels that work.
3. Explaining your product to the customer in a way that makes them go "shut up and take my money"
Nurses, doctors, pilots, have all needed to become competent with computers. Financial people needed to learn Excel. Farming requires more mechanical and chemical skill.
That is not to mention entire categories of jobs that no longer exist (telephone operator, appliance repairperson, non-luxury travel agent, etc) or jobs that only came into existence in the past few years (social media director, devops engineer, prompt engineer).
You also never know when a new technology will come along that disrupts everything. Being a cabbie used to require an incredible level of study and diligence to understand the roads of your city. That understanding is now worthless, as we all have the equivalent in our pockets. Somebody writes the weekly jobless claims articles at news agencies. A human won't be doing that in 5 years, if they are already.
I am playing around with Midjourney and I can see a lot of lower level freelance work like logo design getting utterly annihilated by it. Spinning up basic web apps is pretty easy with ChatGPT, even if you don't know very much code either.
So there is no skill I would be comfortable relying on to earn a living for 20 years. You might work for a company that doesn't update as quickly and get away with it as a result, but that is luck of them not firing you.
The jobs that are the same as 20 years ago are the ones that do not require training or skill to do.
The current situation seems quite similar to me, tools to make code easier to write, but not easier to maintain. I think programming jobs are safe.
So I think you should refine your skills
:(
Seems super boring to me.
Sales.
Being a good human.
Learning how to communicate well, will serve you well no matter what industry you're in.
Knowing how to sell will serve you well, and also solve problems for LOTS of businesses.
Being a good human involves a hell of a lot more than just technology.
We'd do ourselves well to get out of our collective tech bubble. There's a MUCH larger world out there than just we see on the screen.
It seems as if there is perhaps a narrow-minded view here that assumes technological skills are the only ones worthwhile.
Nothing could be further from the truth.
ESPECIALLY in this era where folks are so paranoid about AI replacing people/jobs.
Being more human will win. Those are skills absolutely worth investing in.
Public speaking just takes everything to the next level. How can people be so confident about themselves?
For example some technical blogger post it like they own their posts. Going through that feels like the author is a all-knowing being.
How does that even kick in within a person?
And some other kinds of public speaking (e.g. Trump’s or Biden’s speeches) are so bad that I sincerely believe any moderately intelligent person should be able to do better.
Technical blogger videos are not public speaking - there is plenty of editing.
This is FAR from given. Super far. I'm sorry to say that you may have to study psychology to understand why in a way that makes you go "holy sh*".
But I get the general reasons for the uncertainty, they are usually about "please welcome your exciting new replacement" concerns. Which _can_ be a thing in some cases, already have been, and so on.
> Are there even any field in software engineering/development where the core knowledge has remained true over the course of years?
Not to be disagreeable, but the core principles are generally always reliable (true|belief|etc I don't really go there with principles in tech especially) even if aspects have changed. It's still really applicable in sign painting which I do myself sometimes as a hobby. And then it's pretty wild but the same principles translate exactly into digital signage.
> Apparently, no one pays for someone who knows only the fundamentals.
No, BUT it's not a dichotomy:
- Know the fundamentals only
OR
- Know the specific new hot practicals
...it's way more than that. You can still lean to the fundamentals side and get paid well! Part of doing that involves really interesting stuff, which can be described as "developing my/the new fundamentals." (Adding the "my" part because it also can just be scoped to what you need to know to be effective at your job, it doesn't have to be discovery of some universal fundamental, and you will get recognized more easily for focusing on $JOB's details anyway)
A lot of people enjoy this part of their career in tech, and it helps them find a relatively peaceful psych-interface through which to be more OK with the ADHD-style new & changey particulars stuff.
Also sometimes it's a matter of social interface. It may be a matter of describing yourself so that people understand what you're good at, and making sure not to focus on describing what you don't like, or hate, in your career.
> Another example is AI is like a rat race going in circles and trying to catch up with the latest ideas.
This is a good example of what I'm talking about. If you can just dissect your experience a little further, you might find that it can divide up into e.g. "stuff I personally think and like about AI" and "what everybody else does and thinks with it (rat race)".
If you keep working on the former, you can eventually build some really cool community bridges and in ANY case, you'll still probably be way ahead of the people who want to pay you to interface with AI for them! Their fear of tech will never really end. Find those people. Tell them you get AI. Or whatever excites you. Get a job, get paid, enjoy.
Just some ideas & good luck.