About Me

Thumbnail cover image About Me

Intro

Hi. My name is Tom Caraher. I'm a (new!) father, husband, musician and hobbyist software developer. I spend much of my time traveling around playing the saxophone, but greatly enjoy tinkering with all sorts of fun computer stuff - from Python to React, CSS to bash, and HTML to home servers. I have enjoyed exploring a number of eclectic technologies since beginning this journey.

I'd like to keep the scope of this article under control, so if you'd like to learn more about me personally, go and read my musicians bio, but suffice it to say I have worked as a musician my entire adult life so far, and have lived in a lot of different places, but have now settled in Kilkenny, Ireland with my wife and (currently) 6 week old son. I also like photography, so here is a link to my portfolio, called Outside the Frame.

Coding, music, and art

The art of software development has quite a few surprising similarities to music, both requiring huge dedication, practice, creativity, attention to detail and problem solving. I have found learning to code to be reminiscent of my early advancement in music, which has been a wonderful inspiration for continuing to learn and grow in the field.

I find it particularly similar when compared to the jazz idiom (which, of all musical genres, I am the most familiar with). Jazz musicians, in particular, use their technique and knowledge of music theory to creatively fit spontaneous ideas into specific places in chord progressions, all while following the style and tradition of the jazz language. Programming isn't much different. A developer has to use the style of a particular language to piece together something that functions efficiently, while being limited by multiple factors - logic, performance requirements, user interface design, and others. Quite similar really! As the legendary saxophone player Wayne Shorter said, "you need resistance to fly". So the day to day 'slog' of development is not dissimilar to the 5-7 hours a day I practiced the saxophone during my younger years - there is a beauty and romance to that type of attention to detail and effort that is, ultimately, hugely rewarding.

Coding journey so far

I began my coding journey in 2020 while sitting idle looking for something interesting to do, as, like all musicians, my work disappeared overnight. Regardless of the circumstances, I had always felt drawn to learning to code, so I excitedly dove in! First I spent some time watching youtube videos about what to start with, as it was quite difficult to figure out how to begin -it needed to be engaging enough for me to feel challenged, but also be relevant and useful for me in the future. I eventually settled on Python, and subsequently a course on Udemy with an absolutely wonderful teacher, Giles McMullen-Klein. Imagine a David Attenborough mixed with Jeremy Clarkson, but teaching Python to total beginners. He was hugely inspiring, and I felt extremely motivated to continue. In fact I'll never forget the first of the more challenging coding problems he presented - the thrill I felt after completing it was tremendous - I was jumping around in my office whooping and hollering - absolutely delighted! That course covered programming basics, data structures, easy to intermediate algorithm/interview questions, and some Python libraries - OpenCV (computer vision) being the most interesting to me.

Although from there I felt a tug to learn something that could give me more opportunities for front end development and interface design. Web technologies offered the most accessible path for scratching that itch, so HTML, CSS, Vanilla Javascript, and eventually more modern Javascript and React came into focus. My resources for learning at this point became a lot more varied, but as I became more experienced I began going straight to the documentation for what I needed, and trawling Google for more specific examples, allowing me to learn at a much faster pace . As everyone says In software development, "Google is your friend" (or something like that).

Conclusion

Despite my music work coming back in full force my development as a programmer has not slowed - I am still extremely committed to working on this new craft! So here on the blog you'll find documentation of some of the personal projects I have worked on. It is a wonderful way for me to clean up code and reframe my processes in a way that can be explained to another human. I hope it helps someone who might find it on Google, but primarily its selfish - providing me a great way solidify what I have learned! Thanks for reading.

Written by Tom Caraher on 2023-02-10