Programming & Music

Bruno Barberi Gnecco
Corollarium
Published in
2 min readFeb 27, 2018

Whenever a classical musician talks about his career, he mentions his teachers. They usually had one to three experienced musicians who taught them in such a way that it changed their playing and careers. Real mentors (in fact, to enhance my point: I started to write this a while ago, but I recently met a pianist and he told me about his mentors). Even rock stars and other non classical musicians do something similar; you often hear them saying “and when I was 12 I bought a record by SomeFamousMusician, and I played along with it until I was as good as the record.” These are two things that are really helpful, and that are rare in computer programming.

It’s interesting that other professions also have the concept of mentors. Physics is one; there’s a whole essay by Alan Lightman (“Students and Teachers”, in “Dance for Two”) about it. Visual arts also have them (although not as much as before, I gather). But we don’t have that culture in computer programming; I think I only met one programmer in all my life who told me he had a mentor. All the others had learned mostly by themselves. I can’t explain why this happens: is it difficult to find those mentors? Are programmers naturally good at self-teaching? I really don’t know. And it’s a pity that it rarely happens.

It’s also rare to find someone who has taken time to read good code written by others — but not that rare. This is a trait that I almost always find in good developers, and I highly recommend doing it.

For instance, one of the best lessons in OO that I ever had was reading the code for GTK: they do OO in C, so there is no syntactic sugar to help. A lot of things that are given in C++ or Java had to be recreated in C, and understanding why and how they did it was enormously instructive to me. One of the beauties of open source is that: you can understand how they did it. It is also an important trait for good programmers, understanding other people’s code and dealing well with large projects.

So pick one of your favorite open source projects and learn a bit more about it. And find a mentor — or become one.

--

--