Sunday, January 23, 2011

Private vs. Public Schools (or, How I Was Wrong)

Disclaimer: I'm not an education professional.  I barely know enough to make a decision for my own kids.

Today, the family and I went to an open house for a private (non-parochial) school in Dayton, to see if our oldest son (Alex) would be comfortable attending kindergarten there.  I had been pretty adamant in my assertion that public school was fine, and that I had gone to public school, so clearly there's nothing wrong with it.

My own parents sent me to public school; at least partially due to financial restrictions (my younger sister, on the other hand, went to private school).  However, they were extremely interested in my academic performance and made every effort to be involved in everything I did.  In typical Indian parent style, they constantly pushed me to do better.  When I was discussing public vs. private schools with my wife, I always came back to the same central point: above a certain minimum threshold, the level of parental involvement is a better predictor of success than the school itself.
Clearly we were going to be involved parents, so why worry about sending him to a private school instead of a public school where he can be with the kids from the neighborhood?

Then I went to the school.

The open house started off with the headmaster saying some words, things about how they were committed to creating better "global citizens" and how they wanted to foster an attitude of "continual learning".  He bought up some statistics about college acceptance rate and schools. Pretty standard stuff when talking to parents that obsess about their precious little snowflakes doing as well as they can.
Then, he invited some of the current students to speak.  I guess they have "ambassadors"; and we heard from 2 seniors.
Many of my friends are outgoing people, and I may have some high standards for public speaking...but yeah. These kids were amazing.  They were engaging, they were funny, they were articulate...more than what they said (all praising the school for their experiences there), the manner in which they spoke was incredible.  They had confidence and poise, and it was obvious they were speaking from their personal experiences, not from material prepared by others.  Granted, I'm sure the school picked its best seniors ,but still.  I remember valedictory addresses from my school and (apologies to my former classmates) these blew them away.

When I spoke to the teachers, they all seemed to think that it was more important to promote an (for lack of a better term) organizational culture that rewarded learning.  The social culture of the school itself meant that being smart didn't set you apart.  I remember quite vividly the mental effort I had to put forth to fit in in elementary school, a non-trivial matter for a kid coming from a different country, with different color skin, who spoke English with a distinct, thick accent.  It's hard enough to fit in without having to worry about seeming "too smart".  I'm not certain, by the way, that my son IS smart.  I think so, but I'm biased.  I just don't want him to be socially outcast for it.

I didn't get a chance to talk to the other parents, but I'm guessing (hoping?) that they'll be as involved in their children's school lives as we plan to be in ours.  It's always easier to be around people like yourselves, and I wasn't looking forward to PTA meetings at our local public school...but I think they might be enjoyable here.

Anyway, I think I just had my mind changed.

Saturday, January 22, 2011

How I Learned to Program

Or, Do I Even Know How to Program?


Recently, I was thinking about how to teach programming, and that naturally led to me thinking of how I learned.

A little background. 
I moved to Vancouver, BC (Canada) when I was 5.  My mom was in a Ph.D. program at UBC, and because of this, we had a computer on loan from the university, presumably so she could work on her thesis. I remember her spending a lot of time on it.

Fast forward 2 years.  We had moved to Chicago. We had another computer, I'm not sure what it's official purpose was.  However, I remember my dad connecting to BBSs and downloading zip files for various games (Centipede, Commanche, Pac-Man).  My mom used LaTeX to typeset her papers, and I was amazed at what the various sequences of symbols would lead to being displayed.  I remember trying to read The TeXbook and not really getting how it all worked.
We also had a computer at school, and because my parents couldn't pick me up until 5pm, I would spend the last 2 hours of every day playing BubbleBobble or something on the AppleIIs that were in the school computer lab.  I used to take copies of 3-2-1 Contact and type in the BASIC code from it in order to "load" new games.  I couldn't save any of them, so it was usually about 1.5 hours of typing and a half hour of playing. I'd change some of the numbers in the programs to see what they would do, and sometimes they would change the colors, other times it would just not work.

I remember one of my parents' friends showing me C code at that age, and me not getting it AT ALL.  The idea of immediate execution was too tightly ingrained in my head.

Back to the present.
An entertaining diversion, but how is this relevant? Well, 22 years later, I think I can say that typing in those programs and changing them was probably the start of me learning to program.  I didn't get any formal training in programming until about the 7th grade, when I went to a computer camp and programmed in LOGO, and had it control a LEGO car.

One of my favorite metaphors for programming is to compare it to carpentry.  They're both used to create items, and thing created by them have an esthetic value as well as a functional value.  They are both dependent on tools, and both have a wide variance in individual skill.  They can both be used to create small, personal projects, or giant industrial ("enterprise") constructions.

I learned to program essentially by whittling a block of wood, and then picking up the tools as they were introduced to me to learn how to make bigger and better things.  Is this the only way to learn? Probably not.  There are some extremely talented programmers who learned the "formal" way... picked up a programming class in college and fell in love.

Regardless, the common thread between all the excellent programmers I know is that they are all interested in programming.  They see improving their abilities as an end in and of itself, not just as a means to a better job (or whatever). Without it being a labor of love, I think it's impossible to be a good programmer.  That's not to say that you can't get a job programming (and even get promoted) without loving it; but it's unlikely that your job performance will match the guy who constantly talks about type-discrimintating unions and lock-free algorithms.

I'll leave you with a quote from one of my favorite authors, and leave it as an exercise to the reader to figure out how it relates to teaching programming:

"Quand tu veux construire un bateau, ne commence pas par rassembler du bois, couper des planches et distribuer du travail, mais reveille au sein des hommes le desir de la mer grande et large."
If you want to build a ship, don't drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea.



Friday, January 21, 2011

Twitter has failed me for the last time.

I need a place to rant about things in longer than 160 characters.  Also, occasionally I like to have these conversations with myself that I think would be generally edifying.

Topics I plan to talk about:
- How to teach programming
- How to learn programming
- What I've done with my kids that's awesome
- Books I like
- Anything that irritates me on a given day
- Anything that I think about on my drive to work

I'm also open to people giving me topics to rant about, such as "Hey Sandy, what's your opinion on XXXX" and I'll respond with appropriately violent offense/defense of XXXX.  That should be moderately entertaining.

I've got to go to a work holiday party at the aquarium.  This is despite 1) it not being a holiday 2) my employer has literally nothing to do with fish/marine biology/aquarium science 3) having no alcohol, can it really even be a party?
Regardless, my wife will yell at me if I haven't showered for it.