Ted Leung on the air: Open Source, Java, Python, and ...
Last week Jon Udell wrote a post titled Open source education describing how the transparency of open source projects can be a great value for people who are various degrees of learning about the field of software development.
Open source software development, to a degree unmatched by any other modern profession, offers apprentices the opportunity to watch journeymen and masters at work, to interact with them, and to learn how they think, work, succeed, and fail. Transparency and accountability govern not only the production of source code but also the companion processes of design, specification, testing, maintenance, and evaluation.
As the parent of small children, I would live it if kids are able to gain this type of insight about the fields that the choose to enter, before they enter them. Modern society is increasing the pressure on young people to make up their minds about what they want to do earlier and earlier in life. It (now) seems insane to me to slot young people into careers so early in life. I am fortunate that I am able to work in a field that I really enjoy, but I didn't really have a good idea of what it would be like to work in software before I got there. Judging from the number of people that seem to merely tolerate, or even hate their job, I'd say we're in need of a better way of helping young people figure out what the want to do when they grow up.
[ Julie posted briefly about this -- here's my side of the story ]
Shortly after Mind Camp in November, the girls were really getting interested in doing some more Python stuff (their interest had tailed off a bit, and our crazy summer meant that we didn't get to spend as much time on this as I wanted). The two older girls both wanted their shot at the computer, which made it harder for them to get a long session in front of the machine. Also, the Thinkpad X20 that they had been using developed some odd behavior where it would shut down instead of going to sleep, which meant that the kids were losing their work semi frequently, which was frustrating.
Up to this point, they had been working by clicking a Windows shortcut that opened Python in a DOS box. From there, they could type in the commands to start up turtle graphics and then just enter their commands at the interpreter prompt. The only computer "literacy" required was turning on the power, logging in, clicking a shortcut, and learning to deal with windows being selected or not. Now, they were going to have to learn about files.
The new regimen involved another Windows shortcut to pop up Notepad. The girls then had to learn to save a file, switch windows (on purpose, not by accident) to the Python interpreter window, reload the module, and look at the Tk output window. I found myself barraged by questions that had nothing to do with turtle geometry or programming. All the questions were about the environment -- forgetting to save a file, getting windows out of focus or behind each other, forgetting to reload the module, etc. I suppose they were learning computer "literacy", but it really reminded me as to how much stuff you need to know in order to do some simple programming. In a way, it was easier when I was doing AppleSoft Basic on the Apple II -- no separate editor, no windows to lose or have out of focus.
At Mind Camp, Todd Blanchard brought by a copy of "Squeak: Learn Programming with Robots", and the girls got excited by paging through it. It looked pretty good, and Squeak/Smalltalk certainly has the programming constructs that I want my kids to be exposed to straight off (at least if they are going to be programmers). Also, one of the original motivations for Smalltalk was for allowing kids to do programming and simulations, and that heritage seems to have carried through into the Squeak community. For a great/depressing look at some of the learning applications, you can check out this video from ETech 2003.
Some caveats. Using the "Robots" book involves using a customized Squeak image that has been tailored for educational purposes. Some might consider that "cheating", but I'm looking for the best environment for my kids to learn about essential computing concepts, so I don't really care if it's "cheating" or not. Also, using Squeak doesn't completely get you out of the file problem because each girl still needs her own image to avoid stomping on her sister's work. But the overhead is much lower. Michaela, who is 5, came to me and told me about all the stuff that she did in Squeak - creating multiple robots via direct manipulation and then issuing a stream of Smalltalk commands - that she was able to figure out on her own (with a little help from the book).
It's nice to see that Nat Torkington followed up on Julie's wish for interviews with people who became hackers (the good kind) as children (although I've noticed that a number of folks who were interviewed started a bit later in life). I don't know that I became a hacker when I was a kid, but I certainly got started with computers as one...
Before I was introduced to computers, I went through roughly one hobby or new interest per year. This usually involved me going to the school library and checking out all the books that I could find on the topic of the moment. Of course, I was limited by the number of books that I could have checked out at any one time.
In sixth grade, we had a presentation about computers in one of my classes. It involved making a computer out of a file folder. I remember cutting strips of cardboard to represent the program counter and a gluing on a sheet of paper for registers. For most of my classmates, this was a nice guest presentation, but I actually took the thing home and tried to write a few programs for it. I think that I barely knew what I was doing, but I was motivated.
The motivation really kicked in during the following year. The junior high school had just gotten its first batch of microcomputers, Apple II Plus', with around 4k of memory and cassette tapes for storage. There was even a quarterly elective for learning about computers. There was only one small problem. That elective was only open to eighth graders, and I was a seventh grader. Undeterred, I asked on of the math teachers if I could come after school and spend some time in the computer room. I think that he figured I'd come for a little while and then get bored, but it ended up that I came just about every day for the rest of the year. I read all the manuals that came with the computers and wrote small programs to play simple games. These were the days of Byte and Creative Computing magazine, and somehow I managed to get a hold of those magazines, which served as a rich source of information. I learned about computer hardware by comparing the specifications of various computer parts, figuring that the more expensive parts must be better, so I cobbled together some knowledge about RAM, processor clocks and all that. Of course, the content of the magazines helped as well.
Actually I do know where those magazines came from. Around the time that this happened, a Computerland store opened in a local shopping center, which was a huge event as far as I was concerned. Apparently, during my first visit to the store, I made a circuit of all the computers on display and crashed/locked up most of them. I don't remember this, but I have no doubt that it happened. The owner of the store told his wife that she shouldn't let "that kid" back into the store. And sure enough, the next time I came to visit, there was a sign on the door, stating that children under 15 (I was) needed to be accompanied by a parent. So I trudged back out to the car, and came back with my mother in tow. I bought some magazines there, and after more uneventful visits, things started to go better for me and the folks in the store.
Somewhere around this time, I started bugging my parents for a computer of my own. I was spending lots of time after school, and paying an occasional visit to Computerland -- learning what I could from the people in the store. Access to my own computer seemed reasonable, at least to me. For my parents, who had watched me chew through hobby after hobby, this was pretty disconcerting, I am sure. Especially since in 1980's dollars, the price of an Apple II class machine was a lot of money. In hindsight, I couldn't really fault my parents for turning down my request. Everything they had observed suggested that this would just be another of my one or possibly two year long fads. It was my grandfather who stepped in at this important moment (and if you don't think it was important, then you should read this on the impact of access to computers and involvement in free software - and software in general). My mother's father and I had a communications gap. He spoke Cantonese and very little English and I spoke English and very little Cantonese. Somehow my mother must have mentioned the whole business with the computer, and my grandfather agreed to put up the money for an Apple II Plus.
So off we trundled to Computerland to purchase a computer. The acquisition of a computer only served to further warm relations with the store folks, as I was now dropping more frequently to look at software and magazines. I think I probably talked to a few customers in the store, because I was there so much, but I can't really remember. All I do know is that one day, the owner's wife took me aside in the store and told me that they wanted to offer me a job working in the store. This was a young computer geek's dream come true (ok, so I didn't have very ambitious dreams). Not only was I going to get paid to talk to people about computers (which means I needed to learn all about everything in the store), but I got access to lots of computers, I got an employee discount so I could buy stuff much more cheaply, and I was in the store a lot. Out of all the benefits of working in the store, this last was the most important. In the early microcomputer days, lots of the customers of a Computerland store were microcomputer hackers. We had a guy who had written a Prolog for CP/M, several local consultants (like David Moskowitz), and other folks who were very knowledgeable about computers. Some of these folks took it upon themselves to improve my education. They'd suggest books to read, or tell me about stuff I had no idea about, - precisely the kind of stuff that was incredibly valuable to a young person interested in computers.
And some of these folks were real hackers (they liked to take things apart). I still remember some folks who used to stop in with games which they had bought, and subsequently cracked the copy protection on, just because it was there. I learned a bunch about Apple II disk I/O and booting from these folks, and I still remember the day when one guy was in the back trying to demonstrate how he could copy a disk using Nibbles Away, a bit copying program, when all of a sudden a siren started playing from the computer doing the copying. Of course, the writers of the copy protection had exploited a buffer overrun in Nibbles Away, yielding the police siren. I can still remember the looks of shock and astonishment.
Meanwhile, back at school, I was carrying on with my subjects. There wasn't much of a computer curriculum in those days, and because of my job, I had access to resources that were very rare in those days. Today, of course, any 15 year old kid can get on the internet and have access to a staggering amount of information. Even before computers I was involved in the science fair circuit -- I started out in electrochemistry (batteries). The fairs had a math and computer science category, so I began to enter projects in that category. I remember an assembler, and a compiler for a simple object-oriented language based on Smalltalk. Yep, Smalltalk. There is a now famous issue of Byte (my copy is still in a box somewhere in our garage) that detailed out the working of Smalltalk. (I had also learned a little bit about Lisp from Byte, but the coverage was nowhere as a good as the Smalltalk issue. It wasn't until I got to MIT that I was fully Lisp indoctrinated).
The fair that happened during my senior year was particularly important. It turned out that one of the judges worked for a company called Burroughs, which in those days, was a large computer company. This judge took an interest in the work that I had done, and managed to get me a summer internship at a Burroughs subsidiary near Paoli, which housed their Federal systems work, and a research group. I ended up working in the research group, where I saw my first VAX (an 11/780), my first Unix (BSD 2.9), and (Gosling) emacs. That summer I did some projects with lex and yacc, and in subsequent years, I was working on a research compiler for a combinator based compiler for a functional programming language.
It's been interesting to review the course of my involvement with computers as I've been writing this. I spent a few years working at Apple, fulfilling a childhood dream that was intimately involved with my introduction to computers. Lotus introduced the 1-2-3 spreadsheet during the time that I worked at Computerland, and rare was the machine that we sold without a copy. Today I'm working for the man who designed that highly influential piece of software. Hard to believe.
I was very fortunate that at almost every step of the way, there were adults who (one way or another) fostered my interest. Without them, I highly doubt that I would be doing what I am doing today. I owe them a debt which is just about impossible to repay. Over the years I've tried to take an interest in young people who are in the same position that I was in, like my friend Sarah.
School played a very limited, and if you are ungenerous, obstructionist role in all of this. Everything that I learned about computers I learned outside of the established school system, and I actually had to work around one of my (well intentioned, I"m sure) teachers. I learned on my own, and at the feet of actual practitioners. Perhaps it's not all that surprising that Julie and I have chosen to home school our kids. Some of you know that they've done a little Python, and they're just about to get started on Squeak (more on all of that in future posts). Whether they turn out to be hackers is not for me to say, but I'm at least going to do my best to make sure they got the kinds of opportunities that I got.
[ via Technology Review ]:
The MIT $100 laptop project is getting closer to fruition.
Three kids, three hundred dollars. Sign us up.
Abigail is getting old enough to be ready for some music lessons. Actually, some people would say that she's getting started a little bit late -- more on that in a bit. We're planning to start her on the piano, and a friend of ours who is herself a good pianist recommended a teacher. The teacher prefers the students to be a little older before starting them, and Abigail is close to that preferred age. So on Saturday, I took Abigail over to the teacher's house to sit in on a student recital.
The students spanned ages 8-18 and the selections included Chopin Nocturnes, Liszt's La Campanella, and a Prelude and Fugue from The Well Tempered Klavier. Abigail sat very quietly and seemed quite interested in what was going on, particularly when the younger students were playing. I was very impressed with what I heard and also with what I saw. Despite the fact that some of her students have gone on to a very high level, I didn't get the sense that the players felt in a pressure cooker, and a number seemed to be enjoying the pieces that they were playing.
It was fun, enjoyable, and the music was good. It also brought back memories of my own musical endeavors: some piano lessons when I was young, a few years of violin lessons, a hiatus until late in high school, and a humanities concentration in music as an undergraduate. As I sat, I found myself in the grip of parental aspirations -- wanting Abigail to really enjoy music, hoping that she might reach the level of some of the students (I was particularly impressed with the 17 year old who played La Campanella). I realized that I was going to have to curb my own (well meaning) desires for my girls. It is easy for parents to get super invested in having their kids succeed at something, whether that be sports, music, or academics, and there's a fine line between the role of a parent helping a child to learn discipline or to push through a difficult spot, and a parent driving a child for the parent's sake as opposed to the child's.
I'm also shaped by my own childhood musical hiatus. I was the one who wanted to stop the violin lessons, a decision which I now (of course) regret. I think that part of what happened there was that I just didn't see the big picture of what was happening. I didn't like the practicing, and I wasn't that good. I didn't have the counterweight of hearing lots of classical music and the inspiration that it might have provided to pull me through the difficulties of practicing. One thing that we are trying to do at home is to expose our kids to lots of music and different kinds of music. The ability to check out CD's of music from the local library is a huge resource -- it gives you access to a repertoire that you'd be hard pressed to assemble on your own. Today when I came out of my office for dinner, the first thing that happened was that Elisabeth looked up from the dinner table and announced "I like Jazz" (it me a moment to understand what she had said). Julie and the girls came home from the library with some new CD's.
Back to the piano lessons. Pianos represent a significant financial investment, and I've been trying to read up on the pros and cons of pianos (new and used) and digital pianos (the teacher said that we should look for weighted keyboard action if we went that route). If there are any readers out there with opinions or experience in this area, I would be grateful for a comment (or two).
Doc is continuing the conversation around his flat world post. The conversation has turned to the distribution of intelligence, or more accurately, the distribution of scores on the IQ test, which is a proxy for intelligence.
We love metrics -- turning people into numbers, sorting and then classifying according to which sections of the histogram they land in. My experience is that turning people into numbers is extremely unreliable. I've worked with people who've had their degrees from the finest universities in the US. Some of these people I'd work with again in a minute. Some of them, I'd prefer not to work with again. Most of them probably scored quite well on some combination of IQ, SAT, AP, GRE, or other quantitative proxy for intelligence. I've also worked with people who have either no degree or a degree from a university that I'd never heard of before. And again, there are some who I'd work with again, and some that I'd prefer not to work with. The point is that "intelligence", which is a proxy for being successful in life, is not nearly as useful as we'd like to believe. Other factors matter, too. And different fields of endeavor require different skills and qualities for success.
In Benkler's paper on commons-based peer production, he advances the notion that
What peer production does is provide a framework, within which individuals who have the best information available about their own fit for a task can self-identify for the task.
People find a task which they have the skills for and which they are interested in performing. At the end, the person either completes the task or does not. If they don't, that's pretty self-evident. If they do, then their contribution is evaluated. Self selection is not the only factor involved. In peer-production, once people have self selected, there's an important balancing mechanism to ensure quality
This is why practically all successful peer production systems have a robust mechanism for peer review or statistical weeding out of contributions from agents who misjudge themselves.
But notice that these mechanisms operate on contributions -- that is, on the merit of something that a person contributed to a project. They do not do quality control based on the person's grades, IQ, SAT scores, their position in an organization, or anything other than the work the person actually did.
Doc Searls has spilled our beans. Using Thomas Friedman's new book "The World Is Flat: A Brief History of the Twenty-first Century", and essays by John Taylor Gatto, Doc makes the connection between open source and home schooling.
Stop and think for a second here. How much of the world's best open-source code is being created by people who were trained to write that code in school? How much of it is the product of mentoring and self-education instead? How much of the intelligence behind it is as different as fingerprints?
What if the old industrial schooling system is as threatened by open source as the old proprietary software system?
If I had fallen in line with my teachers in school, I might have never learned to program a computer. When I was in 7th grade, our junior high school got computers. Problem was the computers was an 8th grade activity. So I begged one of the math teachers to let me come after school and learn. I think he figured that I would get bored after a few days. Instead, I turned up every day after school for the rest of the year, copies of Byte and Creative Computing in hand. I never had a formal course in computing until I got to college.
Writing about Friedman's book (in Part 1 of his essay):
He also credits open source with a contagious value system:
The striking thing about the intellectual commons form of open-sourcing is how quickly it has morphed into other spheres and spawned other self-organizing communities, which are flattening hierarchies in their areas. I see this most vividly in the news profession, where bloggers, one person online commentators... have created a kind of open-source newsroom.
This value system is the value system of open source, of blogging, of home schooling, and other trends towards decentralization. And the value system of the traditional/industrial school system (not just public -- many private schools have the same philosophical orientation) are the reason that we prefer to homeschool.
I say all this because it's clear to me--and probably to Tom Friedman, too--that the flat new world isn't big on fitting. Here we reward differences. We value uniqueness, creativity, innovation, initiative, resourcefulness. Every patch to the software in the server that brings you this essay was created by somebody different, with something different to contribute. Yes, a meritocracy is involved. But I can assure you it has nothing to do with grades or IQ tests. It has to do with quality of code and with the virtues that produce it, only some of which are fostered in school.
The flat world is different. The flat world really does reward individuality, creativity, freedom, initiative. Tom says that too, but he also seems to think school can solve the problem when, in fact, school may be a big part of the problem. And not only in the US. Other countries may have better educational systems than we have in the US, but those countries also produce plenty of intellects whose self-education is far more helpful than whatever they obtain from school. And the ability to self-educate is essential in the flat new world
I want my girls to be ready to thrive in the flat new world.
Reason Online has a good article on homeschooling, particularly the parts about how corporations are insisting on education reform on the one hand, while backing the status quo on the other:
If today’s corporate reformers don’t know much about history, they do display a well-developed sense of irony. In one breath, they argue for more “school choice.” In the next, they advocate the development of “best practices” that can be franchised from classroom to classroom and lobby for legislation like the No Child Left Behind Act, which essentially coerces all schools everywhere to teach the same subjects using the same methods and materials. To streamline an education system where “the vast majority of students and teachers are struggling against bureaucratic constraints,” IBM introduced its Reinventing Education program, which, in impeccably fluent Educratese, proudly touts its “student assessment practices, continuous teacher improvement models, and teacher instructional planning.” If there’s anything that can get apathetic students and teachers energized about learning, it’s “student assessment practices” and “continuous teacher improvement models.”
This month's Wired has the story of four "undocumented" students from Carl Hayden Community High School in Phoenix, who won an undersea robotics competition against teams from a number of universities, including MIT. I read the article last night on the Web, and then discovered the issue of Wired buried in the unopened PyCon mail backlog. The article begins with a picture of the team holding up their robot. The entire story brought to mind the movie Stand and Deliver, which recount Jaime Escalante's successful effort to teach a bunch of poor students A.P. calculus.
I'm not at all sorry that these four beat out my alma mater. Motivation and talent are as important as training, and I've worked with many fine engineers who didn't graduate from any big name schools with any fancy degrees. It stories like theirs, like the PBS televised MIT 2.70 final contest, like the scramble of trying to rescue the Apollo 13 command module, that fired my imagination when I was a boy. I'm glad that these four have had this experience, and hope that something can be worked out so that they can continue their studying and building. I'm going to do my part.
I was catching up on blogs this weekend and I encountered two bits of commentary on schools. I found the juxtaposition interesting...
[via The Seattle Times: Education: Gates "appalled" by high schools ]:
WASHINGTON — Bill Gates blasted the state of U.S. high schools yesterday in a speech before the National Governors Association education summit in the nation's capital.
Using words such as "ashamed" and "appalled" to describe his reaction to the failure rates for students, Microsoft's co-founder called America's high schools broken, flawed and underfunded, and said the system itself is obsolete.
[via Seth's Blog: The ever-worsening curse of the cog ]:
Since you were five, schools and society have been teaching you to be a cog in the machine of our economy. To do what you're told, to sit in straight lines and to get the work done.
In the early factory era, there was great demand for trained cogs, the cogs even had unions, and cog work was steady, consistent and respected. There were way worse things than coghood.
Over the last decade or two, that's all gone away. ...
Meredith Patterson put up instructions on how to "How to Purify DNA Using Common Household Items". She did this live at CodeCon a few weeks ago.
WorldChanging had an interesting article about the Finnish school systems, which, according to some study, are now the best in the world:
Maybe it's the schools themselves. Students stay in the same school from about age 7 to 16. Schools are local, community-based affairs, with extremely low turnover in their teaching staffs and strong expectations on parents. Students are all expected to study languages, math and science (and in Finland, girls now outperform boys on science tests). Two thirds of them go to university.
On the other hand, maybe the secret is what they don't do: Finnish students spend less time in class than students in any other industrialized nation.
[I've been meaning to push the "Post" button on this for weeks now...]
Our friend Katherine blogged about an article on homeschooled kids that appeared in the Stanford alumni magazine.
I have no idea whether our kids will be interested in going to a school like Stanford (nothing at all against Stanford, but there's art school, dance school, music school, etc, etc), but regardless of where they end up studying, I hope that people will be able to make statements like these:
"I don't think anyone has caught on to the fact that these are such interesting kids," Reider says.
"It's not, 'I'm free now--I'm going to go to college and party,'" Dobson says. "These kids know what it's like to handle responsibility."