Hacker News new | past | comments | ask | show | jobs | submit login
How to teach programming to your loved ones [video] (ccc.de)
158 points by n-izem on Jan 31, 2019 | hide | past | favorite | 44 comments



I have half an idea for a children's book that I may one day write called "Teach your parents to code" targeted at a child and a parent where neither of them can code. The idea is that you put the child in the driver's seat making them motivated to help their parents. At the same time, they have to learn the concepts in order to explain them. In explaining the concepts to an adult they not only self review what they have learned, but the adult can also review and catch misconceptions.


You will be interested to know that Brett Victor wrote a tutorial on lambda calculus for preschoolers. [1]

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.

[1] http://worrydream.com/AlligatorEggs/


I listened to Amy Bruckman give a talk about LambdaMOO some years back. She mentioned that kids frequently took much better to physical object-oriented metaphors than adults did. They might say things like "I don't understand why adults can't understand that a dog is-a animal, but a house has-a dog in it."

I think it's a great idea for a book. Send me a PM when it's published and I'll buy one :)


Its brilliant. I hope he writes it.

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?


> What's greater than God. Meaner than the devil. Poor people have it. And if you eat it you will die? Nothing?


The title of the talk is a bit misleading, since it's really all about teaching young people in a classroom setting with assignments and credit. Which happens to be very relevant to me personally right now, but doesn't at all help if what you want to do is get your nana to provide more enlightening diagnostic feedback with her tech problems.

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 taught my son and his class (grade 8 at the time) a bit of Python programming during several weeks about a year ago. It went surprisingly well. I concentrated on basic concepts: variables, statements in sequence, conditionals and loops. I've written it up here:

https://henrikwarne.com/2017/12/17/programming-for-grade-8/


I recently started a little series of zines where the idea is to learn programming by creating art. It's a little akin to a puzzle or paint by numbers. Each issue is a type-in that produces an image on a JavaScript canvas. I hope that it teaches programming in the same way I learned from books and magazines in the 80's. Check it out at: https://splashofcode.com


Why would you want to?

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.


For the French speaker there is this amazing book named "Genie du code" that will teach you how to code : https://geniesducode.com.

Have a look, their project is amazing and the drawings are fun!


Step 1: You don't.


This is true. It comes down to two things I think that go hand in hand

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


I agree that we shouldn't force programming down the throats of loved ones that aren't interested in our careers and hobbies.

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.


Didn't mean to imply that they aren't capable, but I think their reward system is different.


I counter that most people "just aren't wired that way". But I don't think that programming is some magical special talent.

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 talk entitled "How to teach programming to your loved ones: Enabling students over example-driven teaching" and you reply "Step 1: You don't"... that's pretty harsh. How would you say the author should have approached it instead?


I don't think that's harsh for the title of the video as posted on HN. Like many others interested in programming, I've tried teaching it to my loved ones and come back with the understanding they either they don't need to or they don't care. A lot of programmers I know tend to assume that other people need to know this stuff or that it is important to their lives somehow which is a narrow view of the world to say the least. My girlfriend might listen to me talk about programming but assuming that she needs to be brought into the fold _somehow_ feels selfish to me. Again this is all subjective and anecdotal. I'm sure the talk would be useful to someone who knows someone who is interested and is just looking for the best way to teach them.


There's a really good article in the top ten on Lawyer News right now: How to Teach Your Loved Ones to Perform Legal Research.

A lot of the advice could be applied here pretty well.


It's harsh because it's true. There's no reason to teach love one's coding. In fact, there's no reason to teach them anything that does not resonate with them naturally.


I think there are many topics that should be taught to loved ones even if it doesn't resonate with them naturally. The ones that come immediately to my mind are: financial literacy, how to prepare for and respond in emergency situations (e.g. natural disasters, medical emergencies, threats from assailants), critical thinking. Knowing these can potentially save them from many expensive or life threatening mistakes and I would force them on my loved ones even if they resist.


You know something? you're right. You had me at financial literacy.


Where does it say that you should teach them if they don't resonate with the topic?

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)


Yes, or at least make sure that they actually want to learn before going down that path.


Yeah, if someone _wants_ to learn it and you're able to teach it-- why not!

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.


No one taught me to code. I realize that this is not true for everyone, but for me, it is difficult to comprehend "being taught how to code." What does that even mean? Learning to code is synonymous with reading documentation and then implementing it. Do it a lot and you get quicker at it. Do it enough, and you memorize the standard library. Congrats, you know how to code. It's an entirely self-driven process.

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.


I never considered memorizing the standard library having anything to do with coding. Same as memorizing where the books in a real library are to have anything to do with being able to read.

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.


> No one taught me to code.

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..


That's my experience. I wanted to teach programming to my SO, because I know she's extremely intelligent and she could do programming quite well. She just had a mental block, and never got it past the second week of the (Coursera) class, when she had to program something small and felt extremely stupid for not knowing how to do it.

I remember going through the same when I was studying programming though. Some people get over it, others don't. That's ok.


The mental blocks can be totally unrelated to the difficulty of the concepts, too.

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.


Type theory and lambda calculus? It's like, here's some neat math concepts. Oh look we can use it to prove statements about addition and stuff. Psyke, now you know haskell.


> Psyke

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.


Not sure. I have a hard time spelling any word where I don't have a good grasp on the etymology involved. Also there are some words that I can't spell AND pronounce, but if I have a hard time with one I can do the other (they change places several times before I get used to them). Finally, I almost always spell snake when I really mean to spell snack (including this time, I had to fix it).

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.)


My 8 year old daughter wants nothing to do with programming, but loves math. This morning she asks me in the car for a math problem: “papa give me another hash to calculate!” :). ( I had taught her a simple hash function that just calculates a 1 digit hash by adding all the digits together repeatedly until you get 9 or less.)


That's quite a different statement than "don't", isn't it?


Agreed.

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.


Even if you do, probably not in Racket and German at the same time


How dare someone use resources in their native language as an example.


Seriously! Should the presenter have used C++ or something?


:D


Sure, if the entire presentation was in German, that'd make sense. As it stands, it's just sloppy.


The conference is German, the speaker is German, the event is being held in Germany, and the CCC is German. The fact that the presentation is in English is the anomaly here.


amend step1: before teaching, make sure they shave their hair.


Could you please stop posting unsubstantive comments to Hacker News?


The best you can really do is point them in the right direction and help them when they get stuck, but learning to code really requires motivation that only they can provide




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

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

Search: