Hacker News new | past | comments | ask | show | jobs | submit login

> Once you understand how it works, it’s extreamly challenging to imagine not understanding it. This can be problematic when teaching because it creates a gap between teacher and student. Even the most empathetic teachers can’t quite imagine themselves in a student’s shoes.

This reminded me of my old engineering tutorials. Where I went to uni you have these 2/3-on-1 sessions with a tutor to go through a weekly sheet of questions across subjects.

After a short time, we came to the conclusion that the more decorated the tutor, the less good they were at teaching. I had people spanning from just-started PhD students to professors who were members of various academies. The more letters they had after their names, the harder it got to pick up anything from them.

The professors had a couple of things going against them. First, they were no longer warm hands. Too long since they themselves had to analyze transistor circuits. They might know something about how the state of the art is done on an industry grade computer, but no way they could go back to hand drawings of toy systems. They also probably wouldn't know quite how to operate that state-of-the-art system themselves, but trust a postdoc to do it. Second, they were busy. Really really busy, mostly with the business of running a lab. A lot of not-analyzing undergrad level transistor circuits. A lot of grant proposals.

So when you got one of these highly decorated people slumming it with the undergrads, they just wouldn't know what it is you didn't understand. The best were people who'd just done the course not long before you, and understood what to say to trigger you to think the right way. They'd been down the same dead ends, the same oddly worded questions.

This is why I'm no longer so interested in my kids having a lot of professor time. You often hear people complaining their expensive degrees are taught by TAs, but in the end the professor guy would not do much better for the kid.




Something that shocked me was that when I was trying to teach a scripting language to some non-programmer sysadmin types, they kept getting stuck on what I thought of as minutiae.

Things like the difference between single-quoted and double-quoted strings. Special character escapes. Etc...

One person was confused as to why I kept using different kinds of brackets -- round, square, and squiggly.

To me, these basic idioms are so ingrained, that I simply didn't even think to explain them. Of course the squiggly brackets create a nested scope! What's a scope? Uh... that isolates variable names so they don't clash. Why can I refer to the same variables across those squiggly brackets but not those ones? Well... umm...


Oh man, I'm running into this just teaching my kids to read. English is a shit language to speak natively and then try to read. When starting, words like "people" you read like "pee ah pull" - there are so many words you have to "just know" how they're pronounced and learn that the word you're reading connects to those sounds even though the letters don't connect to the noises you're making.

Where in Spanish, once you know the rules, you can read the language out loud without knowing what you're even saying.

Likewise with programming, a language that relies mainly on symbols takes a lot to learn when those concepts don't even exist in your head. What's a function? An expression? A token? An operator? A scope? The best thing to do is use a language that doesn't make you know all those things at once to get started.


This is like learning natural languages like French and mandarin. In school they make you do spellings and all the words need to agree in tense, number and so on.

So you think that's what the language is, a bunch of picky rules.

You need a certain volume of material to see the real picture, and a novice won't have that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: