Learning is a process of acquiring new skills in your portfolio. To learn anything one needs to devote dedicated time to understand the hooks of the skill. This is a passive style of learning where one understands how to pull out any task.
Working is when we apply that learning to pull out that creates value for the other. Generally, people live with this mindset that they are learning to get a job so that they can have a decent amount of money to run their families.
These people do not like getting up. Show up in the job and they live for the weekends. This is a choice but people who practice this becomes miserable as they have to spend a huge amount of time in their workplace where they hate to be at. When the experience of life is miserable it reduces our productivity and living itself is a challenge.
If you have chosen a life of coding, you must be prepared with the set of expectations that comes along with that. Those who do not understand the expectations are living in their imaginary world and when their imaginary expectations are not fulfilled they start blaming the circumstances. You can be that guy but do you want to be that guy?
There is another way of life where you can love what you do. No, I am not talking about finding purpose or your passion. I have a simple workable plan for you. Try to give at least 1 hour to your learning every day. While you learn, apply that learning to create something, this is your practice. By practicing it every day will not only make it a habit but life works in compound interest. In the beginning, it may appear you are not growing but with consistent and persistent efforts you will not just good in your job but will add huge value. Things that may appear impossible to many will look like a child play to you.