4 ms·
There’s a big gap between the whiteboard in a classroom and a blinking terminal cursor. As a teaching assistant a few years ago I spent a good chunk of my time
by jagger27 6y ago
There’s a big gap between the whiteboard in a classroom and a blinking terminal cursor. As a teaching assistant a few years ago I spent a good chunk of my time in the lab showing otherwise brilliant computer science students things like basic terminal commands, how to read error messages, and just overall basic problem solving skills. Almost all of the students I worked with were much stronger than me in terms of theory and what I call “whiteboard computer science”, but many of those same students who aced written tests really struggled with basic roadblocks like learning language syntax to do practical assignments.
It sounds really silly, but some of the best instruction I gave was “Tab” to autocomplete a command and “Up Arrow” to re-run the last command. Whenever I would do a class demo on the projector someone would always stop me to ask how I was running commands so quickly and fluidly and how on Earth I could remember them all.
- p1esk 6y agoSomeone (Knuth?) said there are only 2% students in any CS class who are good. I worked as a CS TA as well, and I found that to be true. The top 2% of students already had practical skills (shell, vim, git, networking, etc), usually because they've been coding since they were 12 and learned by doing cool projects. Sometimes I saw bright students without prior experience picking up those skills quickly (much quicker than I did).
- bonoboTP 6y agoWhy does CS seem unique in this? Why does the same not apply to medicine, law, physics, mechanical engineering etc.? Or perhaps it does? Would you say only a low percentage of mechanical engineering students are any good, namely those who have tinkered with mechanical contraptions from age 12? Does CS require uniquely high intelligence / problem solving ability compared to other fields? I don't think so. Then what do those 2% have that others don't? Some have suggested frustration-tolerance, we could perhaps add detail-orientedness. But these are also needed in engineering. Perhaps the abstract, intangible nature of CS makes it harder?