So—high school neighbor curious about coding is doing Coursera on Python… & I'm organizing my feelings.
#Python is great first language buuut… well, you can't make web/mobile apps. Maybe you say that's fine, as a first language I'm ok with making mostly-command-line backendy apps. Fine.
But then why not #Go for that? Or #Kotlin, which would let you write #Android apps (and compiles to JS)?! Sure Python has superb TensorFlow/ML &c., but I think Go or Kotlin still have better value propositions.
So I know MIT switched from teaching their beginners Scheme to Python, what, fifteen years ago (because Python ran on their robot thing, apparently)—Go and Kotlin are ten~ish years old?
I know nullprogram taught his apprentices K&R C https://nullprogram.com/blog/2016/09/02/ and of course Rust is cocaine—these might make a good first language for some people but probably not the masses of people learning about it during lockdown.
Then I'm reading https://www.japantimes.co.jp/life/2020/09/17/digital/coronavirus-it-skills/ what are they learning? HTML, JS, Ruby… 🤔
"I don't think starting high makes it harder to pick up low-level intuition later. I don't think it's possible to honestly *master* Python or other higher-level languages and frameworks without that low-level intuition. For the craftsman, they're productivity tools, not replacements for the pesky details." —https://nullprogram.com/blog/2016/09/02/ (in a comment, see https://nullprogram.com/blog/comments/#2016-09-02)
2 statements here:
① High → low-level is fine
② High without low-level is incomplete.
Worth pondering deeply.
I mentored a remote hackathon for college students yesterday.
As much as I was disappointed by
① college coursework that claim to “teach Java” without teaching Gradle, Maven, JitPack, GitHub, leaving one confused group with a repo containing just a class file,
② tutorials that show how to build some thing in excruciating but near-useless detail,
I was blown away with students’ enthusiasm and curiosity—diving into Node and TensorFlow tutorials on their own and periodically asking me for help.
The students were so enthusiastic and eager to figure things out because they were building something they wanted to build using tools they chose. I was proud to put myself at their service and work towards *their* goal instead of imposing a goal of my own on them.
My employer is moving hiring earlier—early college and high school. I’m pitching mentorships where we just help the student build whatever they want to build over six months to a year. At the end, I’d expect them to be very elite.
It seems like a good time to boost #PhilipGuo's phenomenal essay "Helping my students overcome command-line bullshittery":
"I strive to remove incidental complexity for my students, so that they can focus on the intrinsic complexity of their research."
I experienced this powerfully helping students at the virtual hackathon—there is so much incidental complexity in modern coding—JS, Python, machine learning—but with a guide to strip it away, the fun shines forth.
"I've gotten very, very, very good at command-line bullshittery… the grimy, grungy, terrible command-line bullshittery required to set up a computing environment… tremendously frustrating for highly-capable and motivated students who just didn't happen to spend 10,000 hours of their youth wrestling with nasty command-line interfaces… I keep reassuring my students that this bullshit is not intellectually interesting in any way" —#PhilipGuo
God I forgot how awesome https://web.archive.org/web/20200703190758/https://pg.ucsd.edu/command-line-bullshittery.htm was!
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!