Taking your programming skills to the next level

What's the next steps to take to further your expertise/knowledge in programming a game once you're beyond (or at least seeking beyond) basic syntax and understanding the tools available that you could get out of a reference manual? Games don't really have tutorials that something like photoshop has -- I can look at tutorials of other works by people in photoshop and advance my own technique in exchange by learning what they did. In game design, there's not the same sort of knowledge base -- at least readily available -- I'm assuming because of how much of a varied artform coding actually is. I don't really care about HOW to code it, so much as guidance on how to approach things.

There's clearly a knowledge gap between ways experts can approach problems and ways someone newer can. A well-known example is something like A* path-finding. If you hadn't heard of something like this, it's a bit daunting of a task to try to accomplish -- but once you are aware of the technique, either there are examples you can implement in your own work or at least you have the logical steps required to do it yourself. Is this just something you learn with getting a computer science or equivalent degree, is it something you learn with practice, etc. What's the secret!

Tutorials for games are just as plentiful as tutorials for Photoshop. Also, you do not need to seek out Unity specific tutorials as any game concept can be used in Unity, but if you're a beginner then that's perhaps the easiest.

Do it under pressure, to support your family. You will learn that doing something without a plan gets you nowhere fast. And that being a cowboy and doing whatever you feel like when you want doesn't show that you're smart. Instead, it leads to costly mistakes and the unemployment line.