Live data from Hacker News

Ask HN: How to Teach Coding?

news.ycombinator.com

121–126 of 126 posts

Re: Ask HN: How to Teach Coding?

#121
“If you want to build a ship, don’t drum up the men to gather wood, divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea.” - Antoine de Saint-Exupèry

Re: Ask HN: How to Teach Coding?

#123

1. Tell them what to do but do not tell them how to do it. (Just give a few pointers otherwise they'll be lost.) 2. Give them a playground to fail - Offload any non-business critical tasks and let them make mistakes. No one I know ever learnt programming without making any mistakes. Immediately tell them about best practices and how to avoid such mistakes in future. 3. Show them the impact of their work - There's not…

I was going to respond with a similar list. This is close and augments my philosophy well. Thanks!

I personally teach people to code with Python. Because it's easy to get into but can grow with someone where ever they want to go. It has a strong culture of clean code and DRY, and it is fully formed with a great community.

1. Start with Learn Python the Hard Way and do it until you are frustrated.

2. When frustrated with LPTHW, move to setting up a Django website. Do the Hello World of Django.

3. I work with the person to figure out something in their life that they'd like to make a web app of and help them do a simple website with basic Django models and bootstrap (so it looks good and like the familiar face of a finished product).

4. Work with them on simple deployment patterns and looping back into LPTHW to continue rudiments.

What I'm trying to teach here is that when you're staring at a wall of infinite unknown; set yourself up for success. Taking bites out of the elephant and learning to tolerate frustration / lack of knowledge by balancing with feeding yourself success. Always try to back learning of complicated things with a process of exploring something personally relevant to you and keep a sense of play.

I try to emphasize that the feeling of unknown that they are experiencing IS the state of being a programmer, the problems just change. The scale of what you can leverage grows. But at the end of the day, the unknown is what you're exploring and if you take to the process you'll learn to be excited about that. It will still always be scary, annoying, and sometimes really fun.

Re: Ask HN: How to Teach Coding?

#124
post #33
post #22

There's the entire field of CS Education, besides all the initiatives outside of that. There are also off-the-shelf intro textbooks, such as: https://htdp.org/ If you have a trainee in a work context, where they're expected to soon be productive in the particular tools your company uses... get them started with those tools, point them to good instructional material, give them appropriate work assignments, and give th…

Another suggestion: If they're a team member, treat them as such. When there's things to review, like a design document, include them as a reviewer, even if they're brand new and have no experience. At my last long-term consulting arrangement, I helped hire and onboard a developer who was a new college grad (who'd had military work experience, but in a different STEM area). Because the team was growing, we needed som…

This is a good idea, we have to build so much swim-lane-diagrams, why not including him.

He only can learn from this.

Thank you for your feedback

Re: Ask HN: How to Teach Coding?

#125

Earlier quoted context omitted.

I know Chuck Norris

Chuck Norris doesn't program. He stares at the computer till it does what he wants.

Of course that's programming, it's Telepathic Declarative Programming. And I suspect that with the rapid improvements in neural interfaces[0], we'll all be utilizing this before long.

[0] https://www.nytimes.com/2019/04/24/health/artificial-speech-...

Re: Ask HN: How to Teach Coding?

#126
The best trainees I had were the ones who trusted me.

Sometimes it is hard to make a point about counter-intuitive procedures, like writing tests and assembling tests datasets, or setup logging, or ensure that dev tools are properly setup, before jumping into the code. It requires a leap of faith.

I had the best results when they were willing to take this leap of faith, so my suggestion would be to start by building trust.

As a trainee, I was willing to trust my mentor only when he showed effort in trying to understand my strengths and my limits. It never worked if they did not sat down with me with a "let's talk".

Post reply on HN