I have been programming for a few years but have not been in a position to do it full time, I am really a lead install tech that can also program. I would like some input from the group on how to widen my programming abilities. It would seem like most of the things learned would come necessity. what i mean by that is that I learn how to program code for a specific piece of gear because I need to for a job. But what are some thing I could do to basically prep myself for upcoming needs? Any input would be appreciated.