Very good question.
Let me answer with a personal story if you don't mind.
15 months after leaving academia (I have a PhD in Physics with no computer science background), I was hired as a senior developer by JPMorgan. Making six figures and working on the *biggest* React Native (a mobile app software library you might know) project in all Europe.
As a grad-student I got full marks in almost every exam but failed miserably at computer science, which I hated so much.
I only decided to learn software engineering while doing my post-doc at Cambridge University.
I taught myself app development after work and on week-ends using the techniques in this article and published two apps in the App store. I skipped all the computer science theories and laser-focused on the pragmatics of app development for Android and iOS using React Native.
A few months after I got hired by a start up (I did one interview only and got the job on the spot) as a junior developer (they told me i was the best interviewee they met). A year after I got the position at JPMorgan which was highly competitive (a few rounds of interviews, Yankee white, etc). You know the drill if you are familiar with big tech or Fortune 500 interview processes :).
Only when I joined a super duper big projects that I start feeling the limitations of my understanding. Because now I needed scalability, performance, architecture, design patterns, etc. Surrounded by the right people and self-teaching myself the fundamentals and theories of computer science, I deepened my understanding more and more.
The moral of the story is that computer science fundamentals are super important. But not at all at the beginning. Work backward. Build shitty apps and publish them in the app stores. Learn android and iOS dev, bug fixing, git commands, etc. Get noticed. Make some noise. Only when you need scaling and performance that you should go back and look up the fundamentals.
Learn what the situation requires. Don't learn something you won't use immediately.
Believe me if you are a junior dev or want to become one, the last thing you'll do is build custom event loops or abuse polymorphisms. Recruiters will only care about what you've built and how green is your GitHub. So start there.
Build ugly then learn the beautiful.
I hope I made my point.
Reach to me if you have any more questions.
In the UK it takes the average developer four years of work experience to earn as much as I did in a few months.