So, to my question: how do I find my niche in the broad field of Computer Science, and hone my skills, so that I become invaluable? For one, I'm really interested in operating systems, the Linux Kernel, the concept of Embedded Systems, C programming language as a whole, etc.
How do I get started if I want to revamp my learning? How do I become a proper software developer?
Thanks.
Don't worry too much about optimizing for the best company, niche, tech stack, whatever. Focus on getting a breadth of knowledge, learning how businesses operate and how you contribute to their profit centers (great advice here: https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-pr...), how to work well with people, and various approaches to software design.
Keep an open mind (fight overzealousness in your opinions) and approach your work with a positive attitude and you will see all kinds of opportunities to specialize present themselves. Then, your hardest decision will be which specialization creates the most leverage for you.
Don't get bogged down by AI, mass layoffs, or any of the other doomsaying. If you're made to feel fearful, it's because someone is trying to profit off you.
I am a self-taught developer so take all my advice with a grain of salt ;)
Baloney. Pants.
What is currently called "AI" is merely Markov chains on steroids
If an "AI" can do your job, you have a very low-level job (most likely internship or lower)
Find hard problems in areas that interest you to work on, and don’t spend even a second thinking of whether it’s useful for your future career. You can’t predict the future, so you’ll probably be wrong anyway and the time will be wasted.
The point is to get good at solving hard problems in general. I’m on my third Spring project in a row now, and every project has so many NIH idiosyncrasies that no skills transfer at all. The only actually useful skill as a pro dev is to pick up weird, unexpected and even misguided code fast and be productive.
Ignore that; there is no such AI, and no particular reason to think one is imminent.
Never make decisions on the basis of forward-looking statements of the "thing X will totally change the world in Y years"; for every steam engine there's a fusion power plant (practical fusion has been 20 years away, every year since 1950).
See if there are clubs which support your interests in engineering and computing.
J
Your niche finds you. Or it doesn't. Either way can work out fine. Sometimes your niche goes away (Flash programming for example). Often diverse experience is useful in solving novel problems.
You hone your skills by working hard for many years. You are just starting out. You have fifty or more years of career ahead of you. Keep in mind that people skills are more valuable than technical skills. People skills don't become obsolete. Other people are the best way to good jobs, interesting work, and good times. Be someone people want to work with again.
We are mortal. Nobody is invaluable. Many people are very good. Some are happy.
Good luck.
https://www.amazon.com/Five-Dysfunctions-Team-Leadership-Fab...
https://www.amazon.com/Creativity-Inc-Overcoming-Unseen-Insp...
https://www.amazon.com/Managing-Yourself-Measure-Clayton-Chr...
Good luck on your journey, the fact that you're even asking these things is a great sign. :)