A couple of tweet threads from Sarah Drasner caught my eye today:
After a few hours of this tweet going and some interesting discussion in the thread, I think my opinion on this has swayed https://t.co/1z1z5EJyNf— Sarah Drasner (@sarah_edo) April 22, 2017
I agree. And though I value highly folks doing and collecting Real Research like Mark Guzdial Mel Chua, and Phillip Guo on this and other computing education issues, my opinion on this comes mostly from my own experiences teaching and learning.
Although I agreed with the conclusion, I saw a bunch of reasons I didn’t agree with in the first thread, the majority of reasons in fact! So I thought I’d make my own argument here.
The right language to teach is also the one you know, and is useful in your department, school, field, industry, etc. This is really targeted toward making an institutional decision, not telling you what you about your circumstances.
Another great Twitter thread I saw today was April Wensel gathering many people’s journeys through programming languages, teed of by this:
Your first programming language may impact the route you take through the concepts, but it never limits your future learning. 🤷🏻— April Wensel (@aprilwensel) April 22, 2017
With those caveats out of the way, I’ll also lose the “I thinks” etc. in the rest of this post - if you’re confused, check the url bar to see that this is indeed someone’s personal website, not the impartial synthesis of research.
Programming is a prerequisite for the study of computer science. If programming is not explicitly taught, it will instead be implicitly selected for because computer science is a hell of a lot easier to learn if you can program. The best way to learn to program to get sucked into it. That takes a reason to care about it so motivating as to power you through the morass of knowledge and skills you’ll need to learn to make headway.
If a student has significant Excel experience and it trying to accomplish work at the edge of its capabilities, VBA may be a better fit for them. If they’re a computational biologist and the libraries they need are Python libraries, they should go with that. But lacking a specific need – that is, in an introductory programming class for CS majors, not biologists learning to program – then a need we all have it to interact with the universal program we all use: the web browser.
Experienced programmers overestimate the annoyance to beginners of the frustrations they have with the language. Beginners often don’t read error messages anyway. Beginners don’t know they don’t want weak typing. Beginners don’t need operator overloading. Beginners don’t care about undefined instead of KeyError.
I’d love comments on this on Twitter and I’ll hopefully add to it later.
Yup, I’m describing my preteen exposure to programming ↩