Being a professional comes at a cost of your time, professional people always care for their profession, they are always upgrading themselves, always evolving, you never see a professional who didn't write a line of code for learning on a daily basis.
So how do they do that?
If you are working full time for some company or startup, you are expected to work for 40 hours a week, you should plan on working 60 hours a week, the first 40 is for your company, the other 20 is for you, learning more and spending more time on learning and improving
This way you ensure that you have a solid weekly routine of rigorous learning!
For instance, am studying backend and Clean Coder which is this series is built upon, so am giving every day 2 hours of my time during weekdays, and then in weekends, I study the whole day, so am doing more than 20 hours a week for just learning
In a short time, I was able to make a restaurant system and do the home screen of its iOS client.
But, should I do that myself? shouldn't my employer be responsible for teaching me and buying me books?
No, They Shouldn't.
It's your career, your responsibility, even when employers ask you to read books and buy you some courses, it's not their duty to do that, you should be the one to learn, and you should be the one to evolve, all by yourself
Know your domain
It's an absolute must for any Software Professional to understand the domain of the solutions that they are programming, If you are building something about traveling, you should read more about Travelling, interview the customers, ask the experts in your company, If you are working on Food Ordering Platform, understand the business perspective, why those features make sense to the business people, and how it would help customers or the target segments
It is the worst kind of unprofessional behavior to simply code stuff according to specifications without actually understanding the goal behind it or how it would help the company, heck, it even means you won't challenge the business requirements to get a better goal which is even worst, that means you are only here to code, not to actually improve and take part in improving the product
Your employer's problems are your problems. you need to understand what those problems are and work towards the best solutions...