|
|
|
|
|
by ef4
5006 days ago
|
|
I see this story differently. I see a fairly common, two-stage approach toward programming enlightenment. In the first stage, you simply go forth and try. And you drown in complexity. This stage is important, because it's what motivates the second stage. And we shouldn't underestimate the sheer volume of useful trivia that seeps into one's head here. In the second stage, you shift focus to the longer-term project of mastering the underlying concepts. Many people get stuck in stage 1, though some of them manage to have careers in programming anyway. Other people try to skip straight to stage 2, but they often lack the context to understand why the concepts are important, and so they struggle. I think many people who get frustrated in introductory computer science classes fall into this group. |
|
Which is often, to be fair, at least partially the fault of the professor, who structures the course in too much of a jump-straight-to-the-abstraction sort of way. (I include myself in this category---guilty!) I know I've had to learn the hard way just how important it is to take my students through concrete things first and work into the concepts, rather than telling them about a concept (when they're totally unprepared for it) and then expecting them to just do it.
Even now that I'm very aware of the problem, I still relapse when I'm not paying enough attention; and I think a lot of CS professors aren't even aware of the problem.