Podcast Episode 3:

Podcast Episode 3: When’s the Right Time to Start Learning Code?

Writen by Ben Ehrlich
Sep 16, 2020

Podcast Transcript

This transcript is automatically generated. If you notice any errors, please contact the fictional persona.

Matthew Baptist
If you want to make a program that can create Club Penguin accounts and gets them banned–

Intro music plays

Matthew Baptist
Hello, everyone and welcome to this week’s edition of the SummerTech podcast. Today we are joined by Jake, our wonderful Academic Director.

Jake Rowen
Hello!

Matthew Baptist
As well as Ben Ehrlich.

Ben Ehrlich
I do nothing here.

Matthew Baptist
He does he nothing. He doesn’t even have a job title.

Ben Ehrlich
I don’t even have a name.

Matthew Baptist
Yeah, you’re just a fictional persona. So just get us started off. Has there been any news about programming in the…

Ben Ehrlich
News?

Matthew Baptist
…are there any current events or any news about programming that you’ve seen that have stuck out to you?

Ben Ehrlich
Oracle is buying Tick tock, which is insane for so many different reasons.

Jake Rowen
Yeah, that also stuck out to me. Like, why Oracle.

Ben Ehrlich
It’s like the least hip company buying the most hip product.

Jake Rowen
It’s also just how does that fit in with all the other things Oracle does.

Ben Ehrlich
Maybe they’ll make it a native app on Solaris.

Solaris was an operating system developed by Sun Microsystems, which Oracle bought in 2010.

Matthew Baptist
It’s kind of like a little bit of worlds colliding, You know, always going to Oracle- Like, we’ve got instructions on how to download Java from their site and battle, you know, their kind of model.

Jake Rowen
Are they gonna make tic tocs about how to download Java? I hope so.

Matthew Baptist
Do you think it would make it easier to download the software for people if we replaced our YouTube videos with tic tocs?

Ben Ehrlich
Probably

Jake Rowen
Depends on the music in the background.

Matthew Baptist
That’s big. I also just saw that Nvidia was going to acquire ARM.

Ben Ehrlich
Oh, that’s a disaster.

Matthew Baptist
Oh yeah,

Ben Ehrlich
Such a mess.

Matthew Baptist
What do you think about that Ben.

Ben Ehrlich
It’s horrible. Now there’s one less chipmaker when there’s like one chipmaker and it was gonna be so cool. Apple is gonna switch to ARM. We were going to have this brand new revolution of computing. And now it’s like if Nvidia lets us we’ll do that.

The x86 assembly language, is the dominant, and pretty much only architecture in use on non-mobile devices, and has been since Apple switched off of the Power PC architecture in the early 2000s.

Matthew Baptist
Well, there goes our Nvidia sponsorship. What were you going to say Jake?

Jake Rowen
I’m such a big fan of RISC languages. And like, I’m just hoping for the day that more hardware uses RISC languages and someone newly acquiring ARM just like I didn’t really look too far into it, but it just doesn’t seem like it’s going in the direction I want it to be going.

Matthew Baptist
Yeah. And so just for anybody who may be not familiar with a RISC language, could you give us like the…

Jake Rowen
Oh, yeah,

Matthew Baptist
…ElI5 explanation of that.

Jake Rowen
So RISC means reduced instruction set, as opposed to CISC, which is compound or complex or something instruction set. I could Google it for the exact things, but the basic idea is in a RISC language, there are very few possible instructions that do very little, and you have to use a lot of them to get anything done. Whereas in a CISC language, there are very many possible instructions that do a lot at a time. So you have to use a lot fewer of them. And the way I just described that may make it sound like CISC would be obviously better. But the advantage of risk is that to learn how to use a risk language, you have to learn very few things. And then from there, it’s just how you’re going to combine them. And the other advantage of a RISC language is that it is usually more efficient in terms of time and resources of other kinds. And so bringing this back home to ARM, yeah, ARM is a risk language, as opposed to what’s used most commonly now, x86, which is a CISC language.

Matthew Baptist
You know, I think we could probably have an entire podcast where we ask you questions about, you know, the history, and trade offs between RISC and CISC. But that’s not going to be our focus for today. I also think, I think that was a good segment. So Ben I just made you the host of this if you want to, like also record on zoom, just so we have, like,

Jake Rowen
Redundancy.

Matthew Baptist
Exactly.

Begin long diversion about video games. Programming conversation resumes at ~6:29

Ben Ehrlich
We’ll record it to the cloud this time.

Matthew Baptist
Nice.

Ben Ehrlich
No, I’m not going to. I’m using Bobby’s cloud storage on his Xbox because I still have his Xbox 360. So I’m putting all my Skyrim saves onto his Cloud Storage.

Bobby was a former SummerTech director, now software engineer at Digital Continue.

Matthew Baptist
Oh my gosh, are you still playing Skyrim?

Ben Ehrlich
That’s why I’m getting this PC back together, so I can play Skyrim in another place.

Jake Rowen
I tried playing Skyrim once, but in the first area, like when you first get your character and you walk into that cave, I realized that I could just keep hitting my friend and it would level me up and I was like, well, leveling is good. So I should just level myself up all the way and so I got myself up to like level 40s or so in two handed and same for one handed and magic and healing and all this stuff. And my like total character level was like in the 20s or 30s or so and then like I walked outside the cave, and all of a sudden my screen just exploded with like quests and then a dragon attacked me and I died. And I tried walking around and all the enemies had all this high level gear and stuff and I just kept dying over and over again because the game tries to scale to your level and you’re supposed to level as you go throughout the game and collect gear and items and spells, but I hadn’t done any of that because I was just in the starting cave. And so I made the game literally unplayable. And I never tried it again.

Matthew Baptist
So you’d soft locked yourself out of Skyrim?

Jake Rowen
I thought the levels going up would be good. And it was not.

Ben Ehrlich
You were mistaken. That’s really cool that you found that glitch, though. That’s like a famous glitch now.

Jake Rowen
It’s a glitch? Yeah, that was intentional.

Ben Ehrlich
No, it’s an exploit.

Matthew Baptist
There’s a there’s a bug in World of Warcraft, where– we really actually have two legitimate topics today, I want to say this just for everybody, you know, we have two legitimate points of conversation, but I’m more than happy to continue de railing. There’s a bug in World of Warcraft where there’s this one mob and storm wind called the old town thug.

Ben Ehrlich
Oh the old town thug, my favorite.

Matthew Baptist
Normally he’s supposed to be killable but if you are in some combination of states when you get to him, he becomes unkillable and deals no damage to you. So what is great is that you can level your weapon experience by just attacking him for an hour. So like you’ll go to like Storm Wind and you’ll see like 100 players all circled around the old town thug just leveling like they’re unarmed combat, and they’re daggers and stuff.

Jake Rowen
“How many times do I have to teach you a lesson, old man?”

Matthew Baptist
Yeah. So it’s great. Oh, all right. So coming around to our first of our main topics today, that we’re glad you’re here for Jake, is one of the questions we get a lot is what age should I start programming at? And we have a number of thoughts about that, that I think, potentially deviates from more mainstream advice. And so I immediately want to turn that question over to you Jake. Is what do you think is a good age to start programming or why is that question perhaps a little bit misguided?

Jake Rowen
You know me so well to start with, “Why is that question misguided?” It’s somewhat the wrong question to ask because what it means to do programming can be a few different things. And then different kids are at such different preparedness for such different things, just developmentally speaking. You know, some kids spend all their time going out and figuring out how to socialize. You know, when you’re like six, right? Some kids are so focused on like learning how to make friends better and like how to play games with their friends and stuff like that. Some kids just want to like learn how to read better, etc, etc. So different people accelerate different things at different speeds. And so in terms of programming, where one kid would be ready at maybe as early as seven, another kid might be might be better off waiting until they’re like 10. However, the conventional wisdom that you need to be like 16, or something to start programming seriously, that’s complete bunk. And like the idea that you should start on some specifically made thing for kids, if you’re ‘too young’, I think is also not really true. There are uses for that, but it’s certainly not the only way even for kids who are a lot younger than people might expect.

Matthew Baptist
I want to dig into, several aspects of what you just said, I want to sort of approach that from a different couple angles. First of all, though, I mean, sort of connecting this back to SummerTech, is did you start programming at SummerTech?

Jake Rowen
Absolutely. Yeah, I had literally no experience with anything related to programming until I walked in.

Matthew Baptist
Did you know you wanted to go to SummerTech to program, or was there something else that sort of attracted you to SummerTech?

Jake Rowen
I just thought it would be fun. I totally went to SummerTech as a camp because I thought it would be a fun camp.

Matthew Baptist
That’s Awesome.

Ben Ehrlich
Oh how you were wrong.

Matthew Baptist
How old are you then?

Jake Rowen
Let’s see, that year was 2009. And I was born in 97. So a quick math– I was 12.

Matthew Baptist
Oh my gosh, asking three engineers to do a subtraction problem. There. We were 50-50 in getting that right. Ben, what was your experience? How old were you at your first week at SummerTech?

Ben Ehrlich
My first week at SummerTech I was nine probably.

Matthew Baptist
What what class did you take?

Ben Ehrlich
I took Flash, not animation. It’s animation now, but back then it was Macromedia Flash MX.

Matthew Baptist
This is just the a time capsule.

Ben Ehrlich
My first programming class at SummerTech was Java. And I don’t think I was too young to start programming. I do think I was too young for Java, because I wrote a lot of code but didn’t really understand any of it. And it was a long time until I had a breakthrough moment of, “Oh, this is what that code is doing”. I guess the long time for the breakthrough moment was like a year later. So the Not that long.

Matthew Baptist
And how much did you take Java that first year? Or did you come back like your following year and then take Java?

Ben Ehrlich
I did not start Java when I was nine, I think I must have started Java when I was like 10, or 11. I think now that we have Python, you could absolutely start code at nine. I think there’s so much barrier to entry with all the things that become important later with Java that you need to learn to start with or get around. And it’s so much information being thrown at you at once that isn’t even necessarily important to what you’re doing.

Jake Rowen
And there’s so much information that isn’t even programming. Like if really depending on what kind of life you’ve had up to being age nine, you might have never had a document where you’re typing a bunch of stuff before, which is its own thing that you would have to learn how to interact with, like the text goes to the right, and then if you hit the enter key, it goes down. That’s what you have to learn that before you’re ready to do any kind of programming on a real computer.

Matthew Baptist
I think I might have started programming in fifth grade. So I was somewhat experienced with, you know, writing text that wraps and goes over multiple lines. But I just know from experience teaching that that that is not always the case, especially with some younger students and just having, you know, I’ve had classes where I’ve taught the concept of before even teaching code, I’ve taught the concept of like, “here’s how you give yourself some new lines in an editor”. Because, yeah, being able to order that is one of those sort of fundamental skills and things you’ll need.

Ben Ehrlich
I want to say for our five listeners at home. There’s no shame in not knowing that at nine and there’s no shame in not knowing that at 40. You know if where you’re coming into programming is, I’ve used Microsoft Word for work a few times. That’s a great place to start too.

Jake Rowen
And depending on what you’re trying to get out of learning programming. Lately, I’ve been programming a lot on pen and paper. And I’m lucky enough that I have the experience that I can look at what I’ve written in pen and paper, and then act like a computer in my head. But if you want to learn programming and you have someone near you who has the kind of experience that I have, then you can totally learn on pen and paper and have them be your computer.

Matthew Baptist
So a couple interesting things that you brought up before Jake that I just wanted to sort of not let slip by or just go back into. So there’s this kind of conventional idea that programming isn’t something you start until you’re in high school until you’re like 16. And so why do you think that idea still exists?

Jake Rowen
So there’s a few different things. There’s this cultural understanding of programming, that it’s like this kind of mathematical object that you have to, like, learn how to conceptually poke at in various ways. And then there’s this other kind of cultural understanding that it has to do with knowing how a computer works internally in a really detailed way or that it has to do with like hacking in any of the definitions of hacking, which it certainly can have something to do with any of those things. Like I’ve done programming that is absolutely just poking at mathematical concepts. And I’ve done programming that is trying to figure out something about the internals of my computer. But those are like pockets that you can go into if you want to. Programming in general is just a way of expressing concepts in a particular arrangement and in a very in particular ways, and someone is ready to express concepts as soon as they’re ready to understand a cooking recipe or understand how to write a paragraph of English in a way that a reader can read it.

Matthew Baptist
A lot of people have a fundamental, maybe misunderstanding of what programming is, which totally makes sense, if you’re basing it off of how you’ve seen it represented in pop culture and things like that, where people have this sense of, “Oh, I need to be extremely tech savvy, or I need to have, you know, all this knowledge of how a computer works, and if I’m not that person, then I won’t be a good programmer.” Whereas some of the least computer literate people that I know are computer programmers,

Jake Rowen
Absolutely.

Matthew Baptist
Doing tech help for a computer tech camp has taught me just the range of how maybe flawed that that idea of what you need to be a programmer with the kinds of questions that you end up answering and helping with like that,

Ben Ehrlich
“How do I plug my computer in?”

Matthew Baptist
I mean… And so I wanted to take a step back and say that’s not at all to criticize people that aren’t tech savvy, or, you know, don’t have that skill set. That’s totally reasonable. It’s more to just encourage you that programming is 100% something you can take on even if you don’t see yourself as that person, it is not related to that, you know, as Jake was trying to get at, you know, programming is more about problem solving, and “how can I take this task or thing that I want to accomplish and break it up into its parts and solve those parts” is typically how I like to describe it to people that are kind of asking what programming is about.

Jake Rowen
In the same way that you don’t have to be you don’t have to be someone with a PhD in English to learn how to sing in the same way that singing usually has words in it. So you should probably know how to speak a language before you sing. Programming usually involves computers. So you should probably have some awareness of like, you know where the keyboard is before you start programming, but that’s about it.

Matthew Baptist
Yeah. So I think there’s another side to that though, which is, we’re saying that you don’t need to be that computer techie person to necessarily start to pick up programming. I think the other side of that coin is if you are not that person, and maybe you don’t have a desire to be a software engineer or whatever. Developers something like that. Why would you still want to pick up the skill of programming?

Jake Rowen
So I mean, the answer to me is programming is often just a way of organizing certain kinds of thoughts, especially once you get out into some more advanced forms of programming. I’ve seen it used by sociologists to just make sure that they understand the sociological phenomena they’re looking at, separate from any kind of computation task. They just want to make sure that they’ve organized their thoughts in a manner that makes a certain kind of sense. And that’s it, I think, just about anyone can benefit from learning how to think like that.

Matthew Baptist
So there’s a definite benefit in just the logical thinking. And I would also add in the problem solving skills, that you get from thinking in that way or essentially solving engineering and problems like that.

Jake Rowen
Yeah. In the same way that people say it’s good to learn, you know, learn a foreign language, and good to meet people from new places. Just kind of horizon broadening

Matthew Baptist
In a more practical sense: I just want to turn this over to you guys. So is there any way outside of what people typically think of software engineering and in development, that you’ve been able to use the practical skills or applications of coding in your life?

Ben Ehrlich
Yeah, so, you know, outside of professionally where I am a professional software developer, if a friend of mine has a problem that they need solved through programming, I can use my skills and superpowers to help them out, like my little brother when he was in his senior year of high school. He was running a game of assassin and the way that they had been running assassin at his school for years was everybody would get assigned somebody else’s name and you have a slip of paper with their name on it and when somebody got out in the game of assassin, you would just give them their slip of paper. And if you lost the slip of paper, the game was in serious Jeopardy and organizing stuff like disputes between players and any problems that cropped up was really challenging. And so Gabe and I talked about, what if we built software that would make managing the game a little bit easier for players and for the people running it? And that’s what we did. We built that. And every year since then, the seniors at the high school have emailed me, “Hello, Mr. Ehrlich. I know that last year you helped with assassin ‘this and that’, can we pretty please use your software?”

Assassin, or Spoons, is a game in which a group of people are assigned the name of another person in that group. The goal is to get the other person out, generally by spraying them with a water gun or hitting them with a nerf dart. When the player gets out, they give the player that got them out the target they were hunting. The game continues until all but one person or team has been eliminated.

Matthew Baptist
That’s awesome.

Jake Rowen
And you say “no”, every time,

Ben Ehrlich
“You guys are free loaders.”

Jake Rowen
“How did you get my email?”

Matthew Baptist
That’s very funny. My friend and I did something very similar. In our senior year we organized our class of like three or 400 in a massive game of assassin and so just trying to organize the names and not create cycles or mistakes like that we wrote a very simple Python program in about 15 minutes to generate out all of the lists, and then spent slightly more time adjusting it to make it easier to contact everybody with the actual assignment of their players. And people were sort of surprised. They were like, “Oh, my gosh, thank you so much for all the time and effort you put into this,” and I was like, “This was half hour of development, and then five minutes every Saturday,” like this was not a huge investment of time, because I had those practical programming skills already.

Jake Rowen
You guys got so fancy, like, my practical examples are often just like, someone gave me a document. But for some reason, they put like, these slashes everywhere. I’m like, man, I want to get rid of all these slashes. But like also, there’s some parts of the document that are like web addresses where the slashes are necessary. So I want to keep those slashes and not the other slashes. And it’s like a long enough document that it’d be really annoying to go through and do it by hand. And since I have all these programming skills, instead of it being a 20 minute hassle of finding all these slashes, it’s a 10 second hassle of just making what programmers call a regular expression and then just wiping out everything that matches it.

Matthew Baptist
That’s a great example. I think one of the less maybe glamorous examples, but something I always like to point to is, a lot of the work that I end up doing involves spreadsheets. And the knowledge that I have from programming, one, makes it extremely easy to work with spreadsheets, and, two, just sort of the basic feature set of something like Google Sheets and excel and building out formulas and things like that. But it also becomes extremely easy to extend them if there’s functionality that is almost what I need, but maybe needs to be adjusted in a slight way. Or if I find them doing the same task over and over again in many different spreadsheets and I feel like it would be, you know, faster to write a short program in order to automate that, it really can start to make your life easier.

Jake Rowen
I also end up using programming a lot when like, I need to figure out how many different combinations of something there is, or some kind of basic probability thing. And I know that I should be able to do that with math, but I’m just too darn lazy to think about that. And I know that I could just write 10 lines of code that would just show me all of the things that I need to see without having to do all this math and like thinking, and so for me, it’s gotten to the point where rather than programming being a thing that’s like hard enough to think a lot about, it’s the thing I do to avoid thinking a lot about things.

Outro music plays.

Matthew Baptist
That’s all we have time for today. Thanks for listening to this week’s episode of the podcast. I’m Matt and you can find us online at SummerTech dotnet