5 ms·
Ask HN: How to introduce someone to programming concepts during 12-hour drive?
I won't go into details to keep this brief, but I'm going to spend a week with this client of mine's kit, and I'm supposed to teach him enough about programming for him to figure out if it's something he might be interested in pursuing.
He's about 20, and still struggling to finish high school, but he's smart (although perhaps a little weird).
I thought about introducing him to touch typing just to get a useful skill out of this regardless of the outcome. Then, I thought that during this week I'd teach him HTML and enough CSS to see what's used for. I'm thinking that if he gets excited about typing code and seeing things happening he'll want to study more and learn more advanced stuff in the future and perhaps even make it his profession (this is what my client hopes will happen).
Now, part of this trip is a 12-hour drive. I thought I could use this time to introduce him to simple programming concepts. For instance, if asked to list all steps involved in starting a car, most people would say:
- turn key
- start car
That could turn into an infinite loop, though. A better way would be:
- turn key
- start car
- if it starts, exit
- if it doesn't start, repeat 3 more times
- if it still won't start, call a mechanic
Stuff like this—that anyone can understand, that can be explained without looking at a computer, but that it's still useful.
Any idea what I could talk about? Examples, anecdotes, anything.
- westurner 9y agoComputational Thinking: https://en.wikipedia.org/wiki/Computational_thinking https://en.wikipedia.org/wiki/Computational_thinking > 1. Problem formulation (abstraction); > 2. Solution expression (automation); > 3. Solution execution and evaluation (analyses). This is a good skills matrix to start with: http://sijinjoseph.com/programmer-competency-matrix/ http://sijinjoseph.com/programmer-competency-matrix/ https://competency-checklist.appspot.com https://competency-checklist.appspot.com "Think Python: How to Think Like a Computer Scientist" http://www.greenteapress.com/thinkpython/html/index.html http://www.greenteapress.com/thinkpython/html/index.html K12CS Framework is good for all ages: https://k12cs.org https://k12cs.org
- westurner 9y agoFor syntax, learnxinmyminutes: https://learnxinyminutes.com/docs/python3/ https://learnxinyminutes.com/docs/python3/ https://learnxinyminutes.com/docs/javascript/ https://learnxinyminutes.com/docs/javascript/
- nkkollaw 9y agoGood one, but that's kind of hard to do while driving, though.
- westurner 9y agoTo get a job, "Coding Interview University": https://github.com/jwasham/coding-interview-university https://github.com/jwasham/coding-interview-university
- nkkollaw 9y agoThis is actually pretty awesome :-)
- nkkollaw 9y agoVery cool! Thanks!
- owebmaster 9y agoTalk about the games he played (or still play) that could be improved with programming.
- tixocloud 9y agoStart simple, start small and start with something he's interested in. There's the part about helping him discover whether he likes to create things through computers and whether he actually believes he can create things through computers. You're spot on that he might be interested about typing code but you'll have to figure out whether he's a visual person, a logical person, etc. For example, I got started learning to code once I understood what code can do to help automate things. A friend of mine got interested after seeing what websites he can build. Everyone is unique so you'll have to learn about him as you're trying to teach.
- nkkollaw 9y agoGood advice. Do you have any tip of how to figure out if he's a visual or logical person, etc.?
- tixocloud 9y agoOne way is to discuss different avenues of software engineering (i.e. web, mobile applications, code that makes things display on screens vs code running in the background that makes things more efficient vs code that helps you predict stock prices, etc.) and see if any of the topics you mention lights him up one way or another? An alternative way could be to ask him what he likes? When I taught my boss' son, I started off by understanding what interests him - turns out he loved hockey and plays it. So then I went into talking about hockey video games vs hockey statistics.
- nkkollaw 9y agoThanks! I'll try.
- westurner 9y agoYou can learn about a person's internal representation by asking Clean Questions and listening to the metaphors that they share; in order to avoid transferring and inferring your own biased internal representation (MAPS: metaphors, assumptions, paradigms or sensations). It's worth reading this whole article (and e.g. "Clean Language: Revealing Metaphors and Opening Minds") https://en.wikipedia.org/wiki/Clean_Language https://en.wikipedia.org/wiki/Clean_Language