A few mistakes and general childishness in early adulthood have left me in a situation where I work a menial job, with no possibility (in the near future) of attending school. I aspire to one day work in the programming field (gaming specifically), after proving myself on the indie end of things.
I've gotten very confident in C++, java, and python, and I find I'm able to solve any problem I want either from previous experience, or from scouring the web for help. The solutions work, and with each attempt they become more readable, maintainable, and extensible. But this is because I'm learning from mistakes and bad programming and design habits I feel I might have avoided with actual schooling.
General tips like:
"if it's hard to read or getting long, or you're writing it twice, it should be in one or more functions."
or
"design all your classes before you start coding, so you don't have to rewrite classes later when you discover an unforeseen dependency"
Is there a good book or website for learning general good programming practices and design habits?
Also, naming and format conventions. I realize sometimes development houses have their own conventions, but things like "Classes in python usually have the first letter of each word capitalized". I'd like to be able to show some source code to a potential employer, and be prepared when for what's expected on a team. Is there some central database of naming and formatting conventions somewhere?
Also, feel free to give any thoughts on whether or not the self-teach, garner some indie sales, use them as your resume' route is realistic