For over a decade I fix computers on both hardware and software (installation/configuration) as a freelancer. Although I have a compsci degree, I wasn't able to develop my programming skills further because I was only able to use a PC at college (much to our chagrin we studied COBOL when every other school were teaching OOP), but never had my own because PCs were then very expensive at the time I graduated ('98), so I wasn't able to catch up with, say, Java or C++ programming and other newfangled arcana, and eventually forgot most of it, except for some batch file commands in the DOS window.
Instead I developed a knack for fixing rigs, and then was employed for a time as a resident tech at an Internet cafe, which then allowed me to learn Photoshop and DTP software.