I would add learning a few of the most popular languages and frameworks depending on your area of interest.
Without those practical skills I'm pretty sure you will be passed up during interviews.
When hiring, I look for people who can get stuff done first and foremost. I don't care if they have to look things up and don't have things memorized. Efficient "stack overflow driven development" is real world development.
Then if they have those skills I look to see what kind of theory and architectural understanding they have. Those are secondary.
The more senior the candidate the more I expect them to have CS and architectural background so I would normally forgive not knowing the CS theory stuff for junior developer candidates.
But practical "get it done" skills in the relevant language and frameworks are a minimum requirement for everyone.
One other thing that I would add is to customize your study plan based on where you want to apply. Startups will favor more practical skills during the interview. Larger companies and enterprises will favor more of the traditional CS during interviews.