Music, Mentoring, and Computer Programming

Let’s think about learning programming from a musical perspective for a minute.  It’s not quite as weird as it sounds.  There are a myriad of ways to learn to play a musical instrument, just like programming.  One of those is to play duets with a more experienced musician.  It starts off easy, and once you have the basics down, you progress to more and more complex music.  By sitting next to him, or her, you will learn to see the rhythms, patterns, and phrases, and you will hear how the music should be played.  Each part is different, and even though they are doing different things, there is a leader and a follower.  The same thing can be done with programming.  I’m not suggesting pair programming here.  What I’m suggesting is more like mentoring.

What does this have to do with music?

If you know how to read and play music, this will make a little sense.  If not, just skip ahead to the next section.  When you start out in music, you’re going to learn some boring, slow stuff.  When that becomes easy, you’ll move up.  There’s always something harder and more complex to learn.  Beginning programming is very similar.  The things you will learn in the beginning are not complex, but you will do better later if you fully understand the basics.  The exercises are just practice, so you will learn to think logically and understand the parts and processes, also known as data structures and algorithms.  That’s about as far as the analogy goes.

Just Beginning

If you want to learn computer programming, a great way to do it is to code closely with someone with real work experience.  It doesn’t need to be daily, but it needs to be frequently.  Sitting down with a programming mentor regularly will help you learn and move ahead more quickly.  They can tell you what you are doing right or wrong, and more importantly, they will help you understand why.  You will get to skip over many of the mistakes you would have made, and you will likely hear interesting stories of when your mentor messed something up long ago.  Don’t worry; There will be plenty of new mistakes for you to make.

Whether you do this at work, home, or school doesn’t really make a difference.  I think it is easier to find someone to code with at work and school, but you don’t need to be face to face to do it.  If you can’t find a mentor, find a friend to work with, and work on some small projects together.

Where do you get project ideas?  Here’s an article with a bunch of ideas for you: Martyr2′s Mega Project Ideas List!  I post challenges here from time to time too.

Inexperienced Professionals

Even if you learned programming in school or college, there is still much to learn.  Don’t think you’re done, because you’re really just getting started.  So many times, I’ve seen inexperienced programmers get thrown in over their heads, with barely a helping hand, where they were asked to make judgement calls on things they had no business deciding.  That didn’t serve the employer or the programmer well.  A better way is to have the new programmer team up with a more experienced one.

I had two mentors in my first eight years as a professional programmer.  One was a woman, and the other a man, and they both helped me immensely.  I learned from their experience, and I loved it.  I thought I knew everything back then, but when I began to understand what they were teaching me, I quickly realized that I didn’t know as much as I thought.  Everything is always changing, and I’m still learning.

Seasoned Professionals

Spend some time with the younger programmers.  You will get something out of it too, and it’s unlikely that you are training your replacement.  There is plenty to teach and learn from the younger programmers.  While you have great experience and wisdom to give, you can pick up new techniques and technologies from them.  It can be easy to get stuck doing the same thing and not learn new things.  Don’t let that happen to you.  Look for someone to mentor, and learn new stuff while you are doing it.

Leave a Reply