Craftsmanship without the Man

November 28th, 2009 by comment Victoria

Recently on the Devchix mailing list, aimee brought up the software craftsmanship movement and asked whether other women felt awkward about being labeled “craftsmen.”

Some of our members were fine with it, while others said they felt alienated by the term. Beth explained that it was because of its usage in the movement—“master craftsman” is held up as an ideal that everyone should aspire to, but its male bias makes it difficult for some women to relate to it.

We discussed alternatives like craftsperson, crafter, and artisan. After a bit of brainstorming, Tess came up with “codesmith.” Many of us were excited about this term—it has a fun and geeky vibe that captures the enthusiasm we have about our work, while having the same emphasis on creation present in “craftsman.”  While it’s certainly based on words like blacksmith, I like to think of it as more similar to wordsmith—a person who is skilled at using language to make something great.

As the sort of programmers who get into debates over small differences in syntax and rack our brains to come up with the most appropriate name for some variable, we know language is important. It’s a shortcut for identifying something, but over time it can create expectations and beliefs. Making changes to language can be difficult, but in the case of being inclusive to women in a women-starved field, I think it’s worth it.

ˆ Back to top

Teaching kids, part 1

March 2nd, 2007 by comment Victoria

While chatting with the Obtivians the other day, I discovered that there were 12 kids between them all. “Hey, we should put on a course for them!!” I joked. Couple hours later, the idea of developing a grade school-level programming course had completely consumed my mind. Next week, I’ll actually be starting on this endeavor by mentoring just one of the kids, Dave’s 8-year-old daughter Rose. I thought I’d toss out my initial ideas to you guys before I get too far — I’d love to hear any thoughts you might have!

There are a bunch of questions I’ve been keeping in mind as I work on this:

Code Quality: Is it better to show a child how to write clean code from the start, or is it better to teach a verbose, inefficient manner of coding in order to inspire more appreciation for clean code later? For example, would it be worth teaching the deprecated HTML font tag to help the child understand the benefits of CSS later?

Languages: How beneficial is it to begin with programming languages designed for kids rather than starting a “real” one? Along those lines, which would be the easiest programming language for a kid to learn?

Projects: Is it better to assign projects that mirror real-world tasks (keeping a blog), or should I assign projects that are just for fun? (Here I think of the crazy little MIDI-playing, marquee-scrolling, secrets-filled website I made when I was 15: “Victoria’s Galaxy.”)

Motivation: What’s the ideal source of motivation for kids learning to program? Is it the more intrinsic motivation stemming from solving low level problems and seeing the beauty in well-written code, or the more extrinsic motivation of ending up with a cool product they can show their friends? Obviously, the latter would come more naturally; I’m just wondering which would be the ideal — or if there’s something else that would be an even better motivator.

Health: I tend to believe that in order to really get good at skills that take a huge amount of time and dedication, you basically have to get addicted to the activity for a while… is it possible for a kid to learn these skills without spending an unwholesome amount of time sitting at a computer screen? What are ways to get this knowledge to stick beyond just plain “programming a lot”?

In a week or two, I’ll post on the specifics of the curriculum I’m starting to put together.

ˆ Back to top