TITLE: Fixin' What's Broke AUTHOR: Eugene Wallingford DATE: November 12, 2004 10:26 AM DESC: Sometimes the best way to address a weakness is to make it go away. And that takes practice and reflection. ----- BODY: On Wednesday I blogged about helping students succeed more by cutting their projects in half. I haven't tried that yet, but I did take a small step in that spirit, toward helping students learn in a different way than usual. In my agile development course, we've been reading The Pragmatic Programmer, and recently discussed the idea that professionals are masters of their tools. I've been encouraging students in the course to broaden their skill sets, including both tools specific to the agile arena, such as JUnit, and tools more general to their professional needs, such as a command shell, an editor, and a couple of programming languages. But I find that most students (have to) focus so much on the content of their programming assignments that they don't attend much to their practices. So, I made their latest assignment be specifically to focus on skills. They will use a new tool (a testing framework other than JUnit) to work with a program they've already written and to write a very simple program. At the same time, they are to choose a particular skill they want to develop -- say, to learn emacs or to finally learn how to use a Linux command line -- and do it. With almost no content to the assignment, at least not new content, I hope that students will feel they have the time and permission to focus on developing their skills. I am reminded of one of my favorite piano books, Playing the Piano for Pleasure, by Charles Cooke (Simon and Schuster, 1941). Cooke was a writer by trade but an ardent amateur pianist, and he used his writing skills to share some of his secrets for studying and practicing piano. Among other things, Cooke suggested a technique in which he would choose his weakest part of a piece, what he calls a 'fracture', and then practice it with such intensity and repetition that it becomes one of his strongest. He likened this to a bone healing after a fracture, when the newly knitted bone exceeds the strength of the bone around it. I try to have this mindset when working on my professional skill set. And I'd certainly like my students to grow toward such a mentality as they develop into software professionals and happy adults. I hope that some of the students working on my new assignment will attack their own weakest areas and turn them into strengths or, at the least, grow to the point that they no longer have to fear the weakness. Overcoming even a little fear can help a student move a long way toward being a confident and successful programmer. -----