4 ms·
I'm not sure if I buy the interest bit. It's common knowledge that CS is lucrative and lot of students will grind through programs they don't enjoy for the payc
by ng12 6y ago
I'm not sure if I buy the interest bit. It's common knowledge that CS is lucrative and lot of students will grind through programs they don't enjoy for the paycheck at the end.
My experience was that some people are cut out to be programmers and some people are not. I wish I had a more comfortable explanation but I really don't. Some students will breathe through CS101 like it was second nature, others spend every evening in the computer lab and just barely get through it. Many more just drop out half way through.
I encountered a lot of 4.0 highschool valedictorians who struggled to get their homework done by the third or fourth week. They could memorize all the tools and intricacies of the language but were completely unable to figure out the steps between knowing what their program was supposed to do and implementing the code to do it. It's something about problem solving, I think. I suspect the real unifying trait among programmers is the ability to solve puzzles more than anything else.
I don't think our CS101 class was particularly tough although I do think our school did them a favor by not babying them through the basics so they could go on to fail their data structures class. I'll stress that these kids were very smart and most went on to have very successful careers in other majors. It's not about intelligence or ability to work hard. I think we just have a very poor understanding of what makes programming so obvious to some and so inscrutable to others.
- kthejoker2 6y agoI don't think programming is something binary - either obvious or inscrutable - but there are certainly environments which make programming seem more like one or the other to the vast majority of people who would fall in between those two extremes on the spectrum. One such finding by Cantwell Wilson and Schrock: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.4671&rep=rep1&type=pdf http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.... Math background and formal programming classes before their CS101 class helped, but the dominant factor was "comfort level" * how they perceived the difficulty of the course * how they perceived the difficulty of completing the assignments * how they perceived understanding the concepts of the course compared to their classmates * asking questions in class, in labs, and in office hours Students who felt "comfortable" in these areas compared to those who did not had a strong positive correlation with grade performance. From my own experience you get a looooot of mileage when teaching others programming or even basic computer literacy skills out of: * making "mistakes" yourself to show them the machine won't (literally or figuratively) break * tell them that error messages are actually the wise words of a sherpa left behind by the developers to help you up the mountain * Following all the awesome advice in Phil Agre's How to help someone use a computer ( https://pages.gseis.ucla.edu/faculty/agre/how-to-help.html https://pages.gseis.ucla.edu/faculty/agre/how-to-help.html ) I studied chess quite a bit, and one time I complained to my instructor that I was great at tactics but couldn't apply it in my games. He wisely pointed out, "That's because you know when you're in a tactical puzzle that there is a concrete solution." For people who find computer science "obvious" I think it's in large part because they are "convinced" - by assumption, by proof, by experience - that the thing in front of them was designed to do things ... that you're in a puzzle, basically. So no matter how many wrong things you enter, bugs you encounter, hacks you endure, logic bombs you build ... there's an answer, and you can find it, key by painful key if needed. And a lot of people feel more like they've been flung into the middle of a chess game, and there's no certainty at all that what's being asked of them can even be done. "Convincing" people of that they're in a puzzle is the first step. If you fail it, they will always feel that computer science and software development and all things computers are "inscrutable."