This story sounds a bit depressing. I hope you will find a way to do what you love. Maybe there are some hardware startups where you can work.
This story sounds a bit depressing. I hope you will find a way to do what you love. Maybe there are some hardware startups where you can work.
Also, adding to the fact that I am entirely self taught I sometimes wonder maybe I am missing out on a lot of theoretical stuff they teach in a CS degree.
Short answer is very probably not.
Theory helps, and it can help a lot depending on what problems you're solving. But if you know the basics (Why's and How's) of the code that you write, that'll be enough theory to get you where you want to go, especially in the late teens/early 20's (in my experience).
Source: I'm also self-taught, and proudly so. I don't really find that people ask why I don't have a CS degree, as long as I write good code.
A CS degree is useful for a software engineer, but most of what you learn is only tangential to software engineering. Many of the best engineers are self taught.
That said, some of the basic stuff from CS is pretty useful. I'd definitely encourage you to learn data structures and algorithms. Just pick up a good textbook and go through it! (I like to recommend this one: https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena...).
Another suggestion I have is to seriously think about why you want to do work in lower level stuff. The large majority of jobs are in web development right now, so trying to avoid that really limits your options. There's really nothing more sophisticated or interesting going on at the low levels. I've seen a lot of people come into a software engineering career with preconceptions about exactly what sort of work they want to do, and at the end of the day, I don't think those preconceptions have made any of them happy.
I will definitely check that book out. Thanks