One never knows where something is going to go on Twitter. I recently tweeted a link to a post by Garth Flint titled
Teaching programming is not getting easier and had an interesting response on Twitter.
Is programming on a par with brain surgery? Or it is more like one boss I had said “programming is easy and I could teach any money to program.” Hal, who worked for the same boss at one time, pointed out that that company went out of business not long after that was said. So there is that. My old boss is not alone in thinking coding is easy though. A
political appointee in the UK caused a stir when she claimed that teachers could learn how to educate students in computer programming “in a day.” Well that is crazy but is the other end, brain surgery, any less crazy? Quite a range there. I think the truth is somewhere on the continuum between those extremes. A lot of people on the “we need more people learning computer science” movement like to say that everyone can learn to code. But is that true? And even if it is can we make everyone an expert? Probably not anymore than we can teach everyone to write well enough to create the next Great American Novel.
I think we can teach most people some coding. I don’t think we can bring everyone to the level of professional coding though. Not as software development is practiced today. Forty years ago a lot of programmers were basic coders who were taking highly detailed specifications that often came close to pseudo code and translating them to working programs. It was quite a bit different and easier than what we do today.
Some of that is because we have gotten away from that style of development and some of that is because we can create programs today that are much more complicated and involved then we could back then. The tools are better but more complicated. Today we demand a lot more creativity and imagination from software developers than we did from the rooms of low paid rote coders we used to have.
The hard part of coding (
as I wrote recently) is not the syntax. The hard part is taking the commands available and figuring out how to build useful applications from them. That is a different way of thinking than many people can adapt to. How many can? I don’t think we know. Could more “get it” if we taught better? Perhaps but then again how many people can learn to do brain surgery? Where does programming fit in that line? And while we can’t teach brain surgery to the masses we do make a lot of kids at least study some biology in high school or college.
Creating useful software is the hard part. We do see young people create very interesting things using block languages like Alice, Scratch and Kodu. Mostly they are creating games and telling stories. While those activities have value I’m not sure they lead to “real” programming as often as we’d all like to believe they do. The block languages we have are domain specific to a large extent. How does one move from a Kodu game to an Accounts Receivable application for example? The path is neither clear nor smooth.
I see there being several levels of programming expertise. Sort of analogous to sports. Everyone can play pickup basketball, some will make the HS team, some HS players make a college team where there are also levels. And then there are those very few who make the NBA. Big jumps with large drop offs at each level.
I like to think I made it to Division 1 as a software developer. My friend Hal, quoted above, jumped from HS to NBA all-star. Most people will never get above pickup games (think playing around with block languages or maybe some Excel macros). Our goal cannot be, and should not be, to make everyone an all-star software developer. But if we have more at the pickup game level the whole pool gets bigger and we are more likely to get more stars as well.
Not everyone has the talent or perhaps the special way of thinking that makes an all-star level software developer. But that is ok. We can at least expose enough students to the field so that the people who have the talent discover that fact and figure out that they can make a difference in the world by using it. Most people need an experience to help them be aware of the possibilities and of the talent they may have.
Michael Jordan was famously cut from his HS basketball team. But he grew in size and ability and later became a star. I think that this would never have happened though if he hadn’t developed a love of the game and had some good coaching first. That is why I feel that if I get a student interested while I have them as a student and help them see the potential it may make a difference later when their talents grow and change.
So programming – easy enough for everyone or on a par with brain surgery?
Related Posts: