I think the answer is based on if you are willing to go back to school or not. You did mention "formal training"; ultimately some of the best formal training you will get for computer science is in school.
It also sounds like you already have a knack for programming. You picked up scripting with python through ArcGIS, which is already a really good thing to know. What you need to know now is likely simple things like:
- (OOP) Object Oriented Programming practices vs. Procedural Programming practices
- Static Languages vs. Dynamic Languages
- Lower Level programming vs. Higher Level
- TDD (Test Driven Development)
There are several more I could mention, but these types of principles are the things you will need to eventually learn. Ultimately there are APIs and tools for GIS software development for almost every programming language.. It sounds like you need to learn the fundamentals to make sure your design is good, the best place to do this (IMO) is school.
After going through a lot of it myself, what I found most helpful are the things I learned about OOP. Understanding Object Oriented Design is the key to programming design in today's working environment.