Why am I podcasting about functional programming?

This is an episode of Thoughts on Functional Programming, a podcast by Eric Normand.

Subscribe: RSSApple PodcastsGoogle PlayOvercast

I received a negative YouTube comment. Normally, I ignore those, but this one insulted you, my audience. So I address it. Why am I podcasting about functional programming? What teaching techniques do I employ to help people learn?

Transcript

Eric Normand: Why am I podcasting? Hi, my name is Eric Normand and I help people thrive with Functional Programming.

I got a comment on a YouTube video the other day, a couple of days ago. If you don't know, I record this as a video and I post it as audio for a podcast video on YouTube. Also, I have it transcribed and I put that text on my website.

I've got three different media coming out of this. I get comments from all sorts of places, but I got a comment on YouTube. Normally I get positive comments, but this one was negative. Even if I get negative comments I usually don't make any deal out of them, but this one was different.

This one didn't just say my podcast or my videos make no sense or are worthless like a lot of them do. This one also insulted my readers and my listeners and my viewers, so I feel it needs to be addressed. I'm going to read it, this is a comment from YouTube user "Thor S." This was in the video where I talked about monoids.

[baby noises]

Eric: Got my baby here with me. I'm doing this one old school as you can tell. This is from Thor S on the monoids video "Why Monoids Kick Monads' Butt," that's what I called the video. Here's the comment, "Is this aimed at five-year-olds? That is the most long-winded and painful explanation of associative I can imagine."

"It feels like you assume everyone watching is too stupid to understand the basic concept, so you have to go over it seven times with minute variations. I kept waiting for there to be any point to this video, but there's nothing that couldn't have been summed up in 40 seconds."

I didn't know what to do about this comment, I was thinking about ignoring it. Then I realized that this is an opportunity. This is an opportunity to talk about why I'm doing this. I talk to a lot of people about functional programming. I get various reactions, there are people at various levels of programming skill, functional programming skill.

There's all sorts of people out there. One thing I've noticed is that there are a lot of concepts that people aren't familiar with. Sometimes they're familiar with them, but sometimes they're not. In recent episodes, I have been making a list of things that I happen to know that I have encountered people who don't know.

Not only sometimes do they not know them, but sometimes they are even averse to learning about them. Mostly it seems because they don't know why it's important. Especially this kind of stuff like associativity and monoids, they assume that it's a bunch of math mumbo jumbo. That they don't need to learn it. That's how I see [laughs] what they're explaining.

That it's not important. It's unfortunate because when you dig down deeper they say, "Well, I hear a lot of people talking about them but no one can ever explain why I would need to learn them." I wanted to correct that. I want to explain it to people in a basic way.

In a way that makes it not only understandable to them, but also in a way that explains why they would want to use it. Would want to apply this concept. Unfortunately, a lot of people had bad experiences in high school when they learned about associativity. They got very confused with commutativity, and it wasn't put in any kind of context.

There is smart people, they might have learned it well enough for the test but they happen to never think about it again. It never came up, or they never thought it came up again. They didn't have enough context for it. That's what I've done, I've made a big list of things. Concepts and ideas, and I tried to put context around them.

I try to apply the teaching techniques that I know. One of the teaching techniques is make things concrete, and another one is repetition. You're not going to get everybody with one single explanation. 20 percent of the people might get it on the first explanation, another 20 percent get the second one.

You repeat stuff in different ways so that it picks up people. Plus, repetition is a way we learn. You hear it once, maybe you remember it. Twice, OK it's more likely you remember it. The third time, you're picking up different nuances in it. Now it clicks and you have a more solid understanding, and it's going to stick in your memory.

These are basic teaching techniques. They're human, they're the way humans learn. To answer the question, am I explaining this for a five-year-old? No, I'm explaining it for people. I'm sorry if you already know this concept and listening to me talk about it is somehow insulting to you or I don't know, makes you have some pain.

I'm sorry, just stop the video. You don't have to watch it, you don't have to listen. There are a lot of people out there who don't know these things and I am trying to teach them to them. OK, Mr. Thor S? Could I have said it in 40 seconds? Yes, but not as many people would have remembered it. This is the case.

There's billions of YouTube videos out there. If you don't like my video, that's fine. I don't care, that's fine. There's a lot of people out there who do like my videos. There's a lot of videos for you to watch that you will like. Chill out, dude. That's OK, you don't have to comment about it. You can just stop it.

Be nice. It's fine if you don't like my video, even if you say something like you don't like it or you make a critique out of it. That's fine, but don't insult my audience about it. The ones who do like it. Thor S, be nice. Thanks everybody for listening. I hope I explained well why I'm doing what I'm doing.

I explained how I do it, but why? A lot of people, most programmers I would say, are exposed to object oriented ideas. Let's put it close to 100 percent programmers are exposed to object oriented ideas. I want a similar percentage, close to 100 percent to be exposed to functional programming ideas.

I think they're applicable no matter what language you learn, or what language you program in at work. I feel like they're good ideas and they need to get out there. I want to make them accessible, I want them to make them available. I want people to have context around them so that they know why they're learning them and can apply them in their daily lives.

That's what I'm doing. I spend all this time sitting here talking to you about them, sitting in my office talking about them. I pay for a podcast hosting, I pay for transcription. It's not free, but I feel the ideas need to get out there. If I can make it into a business at the same time, I feel that's a win-win. There you go.

All right people, you all rock. You're awesome, and just have one thing to say, rock on.