I noticed a profound shift occur at Glencoe High School in Hillsboro, Oregon between 1985 (when I graduated from there) and 1995-1998 when I visited there to give talks for national engineering week. In one memorable experience, I spoke to the Biochemistry students, in the same classroom where I had taken that same class a decade earlier. These were the top 20 math and science students in the school. I asked how many of them wanted to become engineers. I got zero responses. I was floored. Based on my experience of the past, I had expected least a handful! I said "engineering is a good career, it pays good money, why are you not interested?" One kid raised his hand and said "It's too hard." Another volunteered, "Yeah, I have a friend who is an engineering student and he has to work all the time." I was dumbfounded. It appeared as if these kids thought there was a hard road to success and an easy road to the same success, so planned to take the easy road.
Hmm, is this just the "kids today are lazy and didn't work as hard as I did in my day" argument? I don't buy that one. Kids today are no less lazy than at any other time in history. Perhaps they have more opportunity for leisure, but many still say they want to become doctors or nurses or lawyers --- careers that require lots of education and hard work. I think when a kid says "engineering is too hard", they are also saying that they don't see the rewards of engineering as very significant. I really don't see kids as being afraid to work hard; quite the opposite, I am often amazed at how hard students will work on something that is interesting and valuable to them. Doctors and nurses make a difference every day. This is why they put up with grueling work schedules. They love their jobs, and they see first-hand the difference they make. The rewards are tangible and obvious ("for every death a birth, for every sickness a cure"). Do programmers make a difference? Not according to the typical CS PR: programming is something that is "fun", "cool", and so easy to do that anyone can master it. You know, like bowling. A fun, rewarding activity that anyone can get good at with a little practice. I think the rhetoric of "cool" and "fun" is a fine way to get younger kids interested in programming, but it depresses me to see university CS programs advertise the same way. It's like a medical school enticing students to take their program by showing you how cool it is to be a Beverley Hills plastic surgeon. I think CS is a field that makes a difference; I just don't think CS educators (such as myself) communicate this very well. Or maybe the answer is simply that the 50-year bubble that CS has been riding has finally popped? Maybe we are just in the middle of an inevitable "correction"? It's not like CS saw the web coming! Toby