Keep programming fun and do a normal job. Imagine that you decide to pay for your car bills by working on some type of car garage place, either doing mechanics or serving customers. By being part of this business you will learn many skills that may not seem as important as the latest Tensorflow coolness, but are best learned now rather than later. Learn how to put the customer first, learn how to negotiate, learn how to survive being on your feet all day, take on responsibility, have great camaraderie with the team, learn how to be an entrepreneur, learn about how much effort a company has to put in to pay taxes, staff and suppliers.

Sure you will be too tired when you get home to do all that wonderful programming, but this is not a forever job, it is a job that gets you solid experience that may be more useful than you think.

For instance, imagine some fantastic Tesla gig comes to town. You want to be programming that centre console with some Tensorflow coolness. You are up against some other guy that wants to do the same. You just so happen to know how to sell a car because you have done it, you have also done it as part of a team and appreciate the nuances of it. Your idea of what shows on the centre console will be better than the other guys because you have seen how customers behave on the showroom floor. So for you it is not just a programming job, it is about customer satisfaction and the bigger dream.

I provide an automotive analogy here, I recommend any 'normal job' and that can be in retail or in factories or an office, it matters not. Specialist sales is true retail, stacking shelves or sitting at a till is not what you want.

Essentially all software is for someone or some industry, clearly there is 'plan9' exceptionalism, but the general deal is that software solves a real world problem. So you can do normal jobs in this real world, to therefore understand the world of the problems that the software is trying to solve. So if you work in retail and learn how to put the customer first, that will come in handy if you have to do online sales stuff. Will they want the guy that sat in the basement programming, or the guy that spent time hard at work learning the core thing the hard way? I suspect the latter.

With this strategy you can keep programming fun. By that I mean not patching some legacy system that needs a complete rewrite but that is organisationally impossible. It means not being micro-managed. Also, with 'normal' jobs, the hours may be long but you don't take your work home. With software there is none of that, it is as bad as studying for always having more one can do.

With a lot of normal work there is an aspect of where you are making the world a better place and making a difference. If you find your work is valued by customers or the local community then there is job satisfaction that is quite hard to find if sat behind a screen.

Every business has pinch points, these can often be automated by someone who can code. So in that apparently mundane factory you might see an opportunity to solve a problem or two, in code. It is for you to see these opportunities, however they are everywhere and you can develop a niche new product for your company, if you polish it beyond MVP you might be able to sell that across the sector. For instance, returning to the car analogy, you might find that a common problem in a particular dealership where a product puts you through a hoop or two more than needed. You could be bright and fresh to the problem and get it right for those too encultured in the old ways to see that better is possible.
Having solved the problem for your original employer you could then put a 'v 2' version of your software out in a specialist marketplace, then learn how to support and sell a full commercial version of what you originally built. You can also do this whilst keeping the original normal day job. In making such a creative solution out of thin air you have got on with the job and not stood around waiting chicken and egg style for someone to hire you.

Regarding creativity, there is a lot to be said for getting programming gigs in fiercely competitive creative industries. Here technical talent can be hard to find, particularly those willing to cross the line of being actually creative. It is easy to hide in the programming world and to be a 'dunno' with creative decision making. But if you can straddle the both then there are plenty of non-technical types wanting to give you work.