I am a freelance photojournalist and business analyst (writers need backup careers) who learned to code out of self-defence. I create highly specific business and functional specifications and have worked every job in the SDLC except for systems architect. However without formal training my approach to coding is to keep making changes until it works, then stop. Until I add a refinement.
What I was taught was a deep respect for the value of table-based systems that need minimal programming changes over the system life, and a high degree of normalisation for rapid entry and ease of use.