If you look at projects, development overwhelmingly consists of websites, mobile applications and backend systems. And backend systems overwhelmingly REST APIs or some message consumers that just translate the call to couple database calls to translate the response back to the client.
Even if you go somewhere like Google you will find most of their systems are just REST APIs as described above.
Now, there obviously is a lot of interesting projects for you compiler or OS lovers. But there is so much choice you don't have to be ready to work on them. I mean, I don't need to learn robotics just because 0.2% (entirely made up number) of projects on job market are about writing software to control robots.
So, to sum up:
-- if you are in it for money, don't waste time on studying CS, just learn basic programming and hop on any project.
-- learn on your employers time. How fun it is being paid and learning?
-- you don't need to get every job. You only need to get one (every three years...)
-- most projects are boring from the point of view of programming techniques you are going to be using. Learn to find fun somewhere else.
-- if you want fun projects you can always learn what you need on your own (on your or your employers time). You aren't going to be good developer if you don't spend considerable amount of time learning for the rest of your life, anyway. Just get used to spending time learning new stuff every day.
Even if you go somewhere like Google you will find most of their systems are just REST APIs as described above.
Now, there obviously is a lot of interesting projects for you compiler or OS lovers. But there is so much choice you don't have to be ready to work on them. I mean, I don't need to learn robotics just because 0.2% (entirely made up number) of projects on job market are about writing software to control robots.
So, to sum up:
-- if you are in it for money, don't waste time on studying CS, just learn basic programming and hop on any project.
-- learn on your employers time. How fun it is being paid and learning?
-- you don't need to get every job. You only need to get one (every three years...)
-- most projects are boring from the point of view of programming techniques you are going to be using. Learn to find fun somewhere else.
-- if you want fun projects you can always learn what you need on your own (on your or your employers time). You aren't going to be good developer if you don't spend considerable amount of time learning for the rest of your life, anyway. Just get used to spending time learning new stuff every day.