How to teach programming to your loved ones [video]
media.ccc.de
media.ccc.de
Also, I have a lambda-calculus ballet production in my head, but since I know nothing about ballet I can't really put it down to paper or make a production. Not that it helps you any, but I think it's a fun idea to ponder.
I think it's a great idea for a book. Send me a PM when it's published and I'll buy one :)
There's a riddle that little kids get right away but Harvard grads hardly ever get.
What's greater than God. Meaner than the devil. Poor people have it. And if you eat it you will die?
This talk does seem to confirm a lot of the things I've suspected about teaching tech, specifically that vocabulary has to come first, to give students the language to describe what they want and the problems they're having, and to give them the mental hooks to hang concepts and practice from.
I have no desire to teach calculus to my loved ones, or chemistry.
On the other hand, I do have an interest in teaching technology literacy to my loved ones. How to avoid falling for phishing scams, how to find information you need on the internet, how to make a spreadsheet to plan for things, how to write a resume using a word processor. People are lacking such fundamental tech skills that teaching them how to code should be the last thing on our mind.
Have a look, their project is amazing and the drawings are fun!
1. Do they have enough persistance to learn and then tackle problems 2. Do they even care?
Most people just aren't wired that way and it's nice enough if you find someone who's even willing to listen to you talk about technical things
However, I strongly disagree with the popular notion that most people "just aren't wired that way" and can't learn to program. Certainly some people take to it much more quickly than average, but dismissing everyone else as doomed to never be able to comprehend the cosmic complexity of a while loop because their brains are fundamentally less than ours is kind of terrible.
Most people are't wired to learn how to program effectively, just as most people aren't wired to be a mechanical engineer or a chemist or a doctor.
I don't want to sound like an elitist asshole, but it does require an above average intellect (oh wow I sound like a neckbeard here) to be able to do any of the above. That immediately disqualifies half the population.
Most of my friends cannot and will not become software engineers (or engineers of any kind), and that's fine. I don't know why they'd want to.
A lot of the advice could be applied here pretty well.
I took the talk as learning how to teach the topic better to your loved ones or anyone else for that matter.
(I haven't watched it yet)
The complication is that teaching something is a very different and separate skill than being able to "do it".
Professional programmers ESPECIALLY have A LOT of trouble with pedagogy. You can see their profound dysfunction in this area if you spend time in stackoverflow. It makes me feel sorry for people that get into there the first time, totally unaware of the weird culture that awaits them.
I have helped engineers get up to speed on new tech more quickly than they otherwise would have. But that's not really teaching a skill. It's more like cutting down their search time for information a little bit. It would be completely useless if they didn't already know how to use documentation.
Software engineering, on the other hand, is something that can be taught.
Learning to code for me is learning the concepts like variable, loop, if, map, reduce, oop, sequence, array, function, return, lambda, monad, state, side effects, etc.
Once you understand this, it doesn't matter what language and libraries get thrown at you, you'll be able to work with it. The rest you can read up in the documentation, and over time, as you say, you'll not need to look as much because you memorize it. But in my opinion that's just optimization after you learn coding.
As a kid i learned to code using an old book i found, with a computer but no compiler:
I simply had not figured out that EDIT.COM was not QuickBasic. Looks the same but had no Run menu... if only somebody told me! As a kid i could use a teacher.. as a knowledgebase to query, not necessarily as a teacher.
It was fun to run what i wrote before, once i figured that out though.
Not much later i found out how to delete files..
I remember going through the same when I was studying programming though. Some people get over it, others don't. That's ok.
My wife is also smart and totally capable of learning to program. I've seen her self-learn subjects (e.g., how email headers work or basic SQL queries) just to scratch a particular itch, though she didn't think of it as learning a technical skill.
But she'll never bother learning to program, because she's "not a tech person". It all goes back to her being a young girl in school and having one bad computer teacher who made her feel stupid and inadequate. She's completely averse to "learning to program". Her block to learning is entirely emotional, acquired from a stressful event.
Well that's a new one for me haha.
It's just "psych". Like "Here's a million dollars. Oh, PSYCH!" An older (more complete) phrasing is "to psych someone out", meaning you mess with somebody (psychologically). I've also seen it spelled "sike", but never "psyke". I wonder if your spelling is common too.
Psyke came up on the google search, so I guessed it was good enough even though it looked a bit funny to me. Of the two, warhammer 40k and psychology, my last thought was of warhammer 40k, so I'm guessing that's why I ended up spelling it the way I did.
Psychology, physics, and psychics all give me trouble as well.
(Hard core research into etymology and linguistics are on the list of things to learn. I'm guessing I'll continue to have these sorts of issues until I start making headway.)
I think everyone should have a broad understanding of the purpose of programming and what it can achieve.
Not everyone needs to learn to program. Some people just don't like it and won't have the knack for it.