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

On code and luck and the start of journeys

February 14th, 2007 by comment Victoria

I still remember how it was when I first started programming, as it was just a couple years ago. It was like a game. The first thing I ever coded outside of book exercises was a mini command line RPG in Ruby. It was fun, like a complex, living version of the HTML and CSS code I was used to. As the months went by and it became more apparent that my organization was desperately in need of experienced developers, programming seemed less like a game and more like a rare superpower I did not yet possess. I couldn’t help but look down on my design and CSS skills as I sat in on meetings regarding our need for senior programmers. During one of these discussions, such a strong feeling of inferiority and helplessness hit me that I actually burst into tears (yes, the one thing I dread doing most in front of my all-male IT department… groan!).

But I was lucky. The very same day, we got a call from Ryan Platte, a developer who had been doing some contract work for us. He was looking for someone to mentor. In the next couple months, he introduced me to practices like test-driven development and refactoring and essentially gave me eyes to see the artistry in code. I came away with a new passion as well as a need to someday pass on his goodwill by giving back to the community, just like how he did. Programming was now much more than a game, or a power, or some skill superior to design. After my organization sent me to a couple amazing developer events over the next year and as more developers invested in me, it became more clear what it was. But I didn’t see it completely until my first college Java course last fall.

I skipped the intro course and went straight into the intermediate course, even though an advising professor said I couldn’t. I was too hyped up to listen. I read through the textbook the couple weeks before the semester began and entered the classroom on the first day with a smile and a huge desire to learn more. What I found in that room shocked and almost horrified me — everyone was completely lacking in the excitement and inspiration I had become accustomed to. Most of my classmates were not college students but rather people who had been sent here by their employers for work reasons; but no one, not even the professor, seemed to regard the Java learning experience as anything above work. By work, I mean the kind of irritating, difficult, tiring work that makes one yearn for the weekend. And it began to make sense.

Despite the fact that students should have already taken a year of programming-related classes before entering this one, we were never told to use anything more than the easiest, messiest methods of doing things. One time when I was asking how to convert month names to numbers (I was needing SimpleDateFormat), my professor’s first suggestion was to write 12 if statements. She never bothered looking at our code; we only had to show her that our programs ran to get the credit. But I couldn’t blame her; the stuff we were writing was practically too mangled to read. How could anyone be excited or inspired by stuff like this?

I’m grateful for that experience because it helped me fully appreciate everything that had caused me to regard programming as a profound art and a life-long journey. A journey that’s about to get way more exciting, because I lucked out again! Just last month Ryan notified me that the software company where he works, Obtiva, was looking to hire apprentices. I’m beyond thrilled to say that I’m one of the students they’ve decided to take in. These are people who not only specialize in agile and test-driven development, they actually teach classes on the topic. I expect to have many more things to share with you as I progress :-)

ˆ Back to top

Life is short; do everything you can!

September 28th, 2006 by comment Victoria

Hey, I’m Victoria Wang from Naperville, IL. In the last couple years I’ve been doing web development, mostly front-end, at a non-profit Christian organization nearby where I’ve also been learning Ruby/Rails. I’m in my second year at college studing computer science, currently learning Java. Still figuring out my life, so who knows what will happen. I do know that I’m REALLY excited to have found myself in this bunch of female developers and I hope to learn a lot from you guys!

My other interests include digital illustration, comics/manga, playing viola, jogging, nature, vegetarianism. Two projects I hope to start on as soon as I have more time are a web comic and a rails app idea I have. I’ll be asking for feedback on the latter at some point ^__^.

ˆ Back to top