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.
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
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
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.