A Radical Idea for Professional Programmers

I just read this fascinating article in The New Yorker about “coaching,” and how it might apply to professionals like us. It’s a little lengthy, but it’s an excellent read. Please take a few minutes to read it, and then if you feel so inclined, here are some questions that I would love to see discussed in comments:

  • As a programmer, when was the last time you worked with someone who might be considered a “coach” to help you improve your craft?
  • When was the last time you worked with a “coach” to improve in some other area?
  • Do you think you would make a good “subject” for a programming coach? Why or why not?
  • Do you think you would make a good coach for another programmer, why or why not?
  • If you wanted to find a coach to help you improve as a programmer, where would you look?
  • If you were acting in either role (coach or subject), what would be the ideal format? That is, how would good programming coaching work?
I’m very interested in this idea, and interested in hearing other people’s thoughts and experiences. What do you think?

4 Responses to A Radical Idea for Professional Programmers

  1. jacob September 26, 2011 at 6:03 pm #

    I’ll go first on tackling the questions I asked.

    * The last time I had somebody really act as a “coach” to me as a programmer was probably 15 years ago. I often ask other people’s opinions on the best way to tackle a problem or even for a little help debugging something specific, but the last time someone just watched me program (or looked through my code) and then gave generalized help on how to improve was sometime in the late 1990s.

    * As for coaching in another area, when I was getting my undergraduate degree, I minored in piano performance. I had a piano teacher who was an excellent coach.

    * I would like to think that I can put my ego aside and be open to suggestions on how to improve my craft. I think I can safely say that I’m an expert Delphi programmer, but I know I’m not perfect, and could always improve the quality of my code and the process I use to create it.

    * I’ve been a professional teacher for a very long time, both as a musician and in a more formal classroom. While classroom teaching may not necessarily equate well to “coaching,” teaching music certainly does. I think I could transfer that skillset to coaching another programmer and be effective at it.

    * If I wanted to find a good coach to help me improve as a programmer, I would probably look in various programming “communities,” such as newsgroups, IRC channels, or even Stack Overflow. I would look for someone whose posts communicate both wisdom and experience, and a love of helping others. Then I would try to convince them to become my coach.

    * As for how that coaching would work, I think I would like to have this person actually watch me work, observing what I do (maybe as a silent observer, or maybe asking questions along the way, I’m not sure), and then later offering suggestions – similar to the surgeon in the article. It might also be reasonable to have the coach look at code I’ve written, offering suggestions for improvement, but then that doesn’t seem to differ much from a code review, and while it may help improve the code I produce, it doesn’t seem like it would really do much to change the process used to create that code.

    Your turn….

  2. Dayna September 26, 2011 at 6:14 pm #

    I haven’t been coached since I left a business college “CDI”. I was way above the curiculum there. In face I helped them by rewriting the manual… and I used to give tutorials in the lunch room. I was required to attend 9-5 so since I was only allowed to take one test per day I’d spend the rest of the day giving tutorials in the lunch room. Before I got sick in “real” college I used to *cough* help people *cough* who had $50 to write their lab projects. So in a sense I spent most of my professional (and sometimes illegal) career teaching other people. I’ve always worked in niche markets (small niches I might qualify.) So not a lot of opurtunity for improvement.

    In my current job I was coached in class design and I benefitted a lot but in turn I was coaching in other elements of programming.

    In my current region there are no computer clubs, so I primarily speak to my peers on I.R.C. (EFNet #delphi, #winprog, and #donationcoder).

    Frankly at my skill level its hard to find anyone with better skills who has time for coaching… they’re all working hard and are interested in other kinds of socialising rather than coaching beginners.

    I help people on irc if that counts as coaching.

    When I was working closely with another developer 2/3rs of the continent away… we shared screens using an RDP type tool where we could take turns typing… while speaking on skype. Although the code got written slower (half as many hands) we both learned a lot about coding.

    Dayna.

    • jacob September 26, 2011 at 6:24 pm #

      Do you think it’s absolutely necessary that a coach have better skills than the person he’s coaching? My gut reaction is that it is, but then some parts of the article point out some interesting contradictions.

      From the article: “The famous Olympic gymnastics coach Bela Karolyi couldn’t do a split if his life depended on it.” It also mentions Itzhak Perlman, whose coach/wife was also an accomplished violinist, but is certainly nowhere as good as he is.

      • Dayna September 26, 2011 at 8:05 pm #

        I think those with natural talent can be guided by coaches who cannot perform the task being coached at the incredible level their protoge’ is. They need only recognise that there is potential for improvement if they only reach beyond their current limits. If Nadia was a poor gymnast… would Bela have been able to coach her to olympic greatness?

        I think its field limited. For instance I was coaching on graphical stuff and GUI. I was being coached on class design. Our skills were complementary. We were both good programmers. Neither really better than the other. We all have ‘weak points’ where we have difficulty and could benefit from someone with knowledge we lack. We all know I really have a fear of network programming. A newb could coach me ‘in this area’ in the sense that I can learn from those who know as much or more than me in a given field.

        I’ve never had anyone outside of academia review my work to critique it, but I’m sure that even those who know nothing about coding have told me when my GUI design is flawed… and I have adapted over the ages.

        Dayna.

For programmers, by a programmer

Hi. My name is Jacob, and I'm the creator of Castalia.

I starting programming in 1986, learning Lightspeed Pascal on a Mac Classic. Today, I'm a professional programmer, teacher, and entrepreneur.

I have a Master's Degree in Computer Science, and I still love Pascal and Delphi.

I believe that writing code is the heart and soul of software development, and I love helping programmers write code more effectively.