Teach Your Way to Becoming a Better Programmer

Dan MacTough
Sep 19, 2014 · 3 min read

I am a better programmer right now than I was 5 hours ago. That’s because I spent my evening teaching people about programming.

Our has been interspersing the usual presentation-format meetups with some collaborative meetups. We’ve struggled with a name for these collaborative meetups. They used to be called “Office Hours” or “Hack Nights.” Now we’re calling them “Node Nights.” Whatever we call them, the idea is that these are occasions to work together on projects, socialize, learn from each other, and ultimately produce something. But another thing we do at these meetups is dedicate some attention to people who are new to and want to learn. I’ve made it my role at these meetups to help out these people who are brave and curious enough to come to a tech meetup to learn about programming. I get great personal satisfaction out of it. But I realized today that as much as I may be helping them, they are helping me, too.

Our announcements for Node Nights always make the point that all skill levels are welcome and that we will be helping people learn Node using the wonderful interactive workshops in . We generally only get through the first 4 or 5 workshops over the duration of the 3-hour meetup. Without fail, the thing that trips people up — blows their minds — is the first asynchronous I/O workshop.

Image for post
Image for post
A surprisingly large amount of information to unpack for beginners.

“How do I return the data?”

Here’s what I learned tonight: Explaining how this works — how this really works — is actually really helpful.

For the people I was talking with, it demystified what is usually described with magical metaphors. Smart people can get really confused when they are told that Node is single-threaded. By explaining that under the hood, threads are actually created to perform I/O without blocking program execution, things started to click into place for them. That anonymous function? That’s how you tell the program what to do when the thread that was reading the data is done.

Image for post
Image for post

What’s in it for me?

Feedback. Not just verbal feedback. Emotional feedback. That feeling of satisfaction people experience when they grok something for the first time — their emotional reaction causes an emotional reaction in me. And I think striving to create that emotional reaction causes me to think about and explain concepts in different ways until I get that reaction — until they get it. I’ve explained asynchronous I/O many different ways, and I think all that mental exploration has given me deeper understanding.

Try it!

I urge you to try it for yourself. Choose a topic with which you’re comfortable, and find an audience who wants to learn about your topic.

Tech meetups are great for this — most of them would love to have more people offering to speak on relevant topics.

If you’re a Node programmer, see if there’s a local where you can mentor.

Or maybe the place where you work has opportunities — or you can create them there. My company, , has periodic educational “Lunch and Learns,” where everyone has a chance to teach their colleagues about something — not necessarily work-related, even. Our engineering team also does periodic “Code Reviews,” where someone leads a discussion about a section of our code: it’s tricky, it stinks, it’s impressive.

I want to hear from you: How has teaching made you a better programmer?

Social Tables Tech

What the ST engineering team is thinking and reading

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store