Quality Devs and Coding Contests
I've been planning to put together a response to Alfred Thompson's recent post - Software Developers - Quantity vs Quality.
TL;DR, although it isn't really long and I do encourage you to read Alfred's post: a couple of articles talk about how the U.S. has the most people entering CS competitions like HackerRank but Americans are not at the top of the leaderboard. does this mean that there's less talent in America? Does it even matter?
Before getting to "does it matter," I looked over at the Kaggle leaderboards. Looking at their top 10, 2 were from the US - no other country had more than 1. The 11th placing competitor was also from the US and then 12 was from China, giving them 2 in the top 12. I also looked at recent IOI results and a quick glance seems to indicate that the USA seems to do reasonably well. In short, if you buy into ranking a country by these types of individual results on specific competitions then we're doing fine.
But, does filling the leaderboard mean a country's producing the best tech talent? Probably not.
Coding competitions focus on a specific skill set. There are problem solving aspects but they also require speed, knowledge of data structures and algorithms, and, yes, even accurate, fast typing skills. They also require you work alone. They don't encourage well designed, architected, or written code, working on existing code bases or working with a team.
Over the years, I've known some very smart and talented individuals who've excelled at these types of competitions. If you extend the pool to math and science competitions, I've known quite a few. These individuals have by and large done well for themselves but as a group, you couldn't call them more successful than any other subset of my former students. A number of them have gone on and are doing well as professors or programmers but, by and large, they're not the ones who've gone on to found companies and provide jobs for scores or even hundreds of other people and they're not necessarily the ones who've led teams that have developed major platforms and projects1
I don't argue that people who populate competition leaderboards are talented and a necessary part of our tech ecosystem but they're only a part. I probably want one of these programmers on my team, but not as the entire team (see Fake Grimlock's laws of startups - law 9).
Competitive programming is a piece of the puzzle as competitive programmers are a part of the population. So are project based events like Dream it. Code it. Win it., science fairs, and hackathons, which can be either cooperative, competitive, or a combination.
What do we want? Balance. I think the Stuy program does it pretty well. StuyCS graduates who wish to take part in coding competitions can do so but if they want to excel at it, they have to work at it on their own time. At the same time, the students learn how to work in teams and take a project from idea to delivery all the while learning some good academic CS and software engineering practices. They'll learn more in college on the academic side and the rest on the job. I'd love to see better balance in the colleges between CS programs preparing kids for graduate programs and CS programs that prepare kids for industry. I'd also love to see CS minors that were more targeted towards CS+X rather than half of a CS major targeting students going to grad schools.
I also think there's a tremendous opportunity for community colleges to fill the role currently occupied by code schools. They could more easily strike a balance between academic depth and practical preparation.
I'm working on building Hunter College's honors CS program and while I can't move the Hunter curriculum, I'm seeking that balance in my own way.
Will we get there? I don't know. Given the way education works, I figure at some point people will decide that we have to have more of a presence on the CS leaderboards and we'll see programs pop up with that in mind. I have no doubt that when that happens, we'll see many more Americans near the top. We have a large enough population that talent shouldn't be in question. This will be great for students to whom these competitions attract. It won't do much, however for the rest of the students. I'm not really concerned one way or another. Unlike math, where there's a natural progression through K12 math classes with math team and math competitions being a natural add on, the driving forces in CS - be they from industry, government, or academia don't seem to have partaken in any code competition Kool-Aid so code competitions won't become a driving force in CS ed any time soon.
Comments
Comments powered by Disqus