Most of my programming skills are self taught to solve data processing problems in my astronomical research. It started out completely procedural, and only step by step I included more and more concepts of Object Orientation and to read more about Computer Science methods. And each new role helped me to adopt new ideas and methods, mostly by looking at other people’s code or thanks to code review and pair programming.
While programming was a necessity at the beginning, I noticed the joy of improving my scripts and applying my skills to more and more difficult problems. In my last research project, programming was the biggest part of my tasks.
Besides the programming projects for work, I also worked on project for my own pleasure. Be it the processing of GXP files to get elevation and speed profiles from cycle rides (before Strava became a thing), the storage of weather information from a weather station, or calculating primes.
Examples of my code can be found on Github (Ronny Errmann).