You are interacting with a very select group of students. Less than half the High Schools in the US even offer CS, and most students in those schools don’t take it. While the major has grown dramatically in colleges across the nation, it still isn’t broadly available.
Sorry about that typo. I meant to say that a little under 50% have programmed, but it doesn’t change your response too much. The thing is, even those who have programmed generally have only a single year of experience and they often haven’t written that much. Most of them haven’t had the time to develop too many bad habits yet and most High Schools currently use Java because the AP test is still in Java. If the AP test switches to Python it will be interesting to revisit this topic and see what changes in terms of student programming habits.
You’ve definitely had some very interesting interactions. Do you do much coding these days? If so, what languages do you most enjoy working with? I really prefer to use statically-typed functional languages, but when I do summer contract work writing software I often have to use scripting languages, especially JavaScript, and I find it to be painful and annoying. The lack of type checking gives an impression of rapid progress for a while, but inevitably I find that it slows me down later when little typos that would have been immediately underlined by the IDE in a statically-typed language take minutes to manifest in a run (especially with cloud deployment) and even longer to diagnose with appropriate logging.