I've always thought that if I retire, I'd more or less do what I've been doing the whole time for my job,
except this time without meetings or reports.
That is, write interesting and fulfilling software.
In this episode of Talk Python to Me, we're back together with Philip Guao
to discuss his research project aimed at improving the learning to code experience for older adults.
That's those 60 to 85 years old.
It's time to think about geeking out in your golden years.
This is episode 112, recorded May 15, 2017.
Developers, developers, developers, developers.
I'm a developer in many senses of the word
because I make these applications, but I also use these verbs to make this music.
I construct it line by line, just like when I'm coding another software design.
In both cases, it's about design patterns.
Anyone can get the job done. It's the execution that matters.
I have many interests.
Welcome to Talk Python to Me, a weekly podcast on Python,
the language, the libraries, the ecosystem, and the personalities.
This is your host, Michael Kennedy.
Follow me on Twitter, where I'm @mkennedy.
Keep up with the show and listen to past episodes at talkpython.fm
and follow the show on Twitter via at Talk Python.
This episode is brought to you by Rollbar and Hired.
Thank them both for supporting the show.
Check them out at Rollbar and at Hired underscore HQ on Twitter and tell them thank you.
Philip, welcome back to Talk Python.
Hi, Michael. How are you?
I'm doing great, and I'm really looking forward to our conversation today.
Last time you were on Talk Python, we talked about the CPython internals
and your CPython, your 10-hour CPython code walk, which was really fun, right?
Yeah, yeah, that was awesome.
Yeah, so that was actually my first ever podcast appearance.
That was back in, I think, 2015.
And you actually inspired me to do a podcast series of my own.
So not exactly on Python, but just on general interesting conversations with interesting people,
many of which are in science and technology.
But I think appearing on Talk Python two years ago really inspired that podcast series.
That is really cool.
I'm really honored that I was able to inspire you to do that.
Like, why don't you tell people what's the name of your podcast?
How do they find it?
So if they want to expand out a little bit, they can go check out yours.
Yeah, so it's on originally called the PG podcast after my own initials, PG.
It's just on my website.
I'll link to it.
Basically, my podcast is super low tech.
I just record a YouTube live session.
So basically, we just do a YouTube live.
It just streams and goes on YouTube.
I usually record for about 30 minutes because my conversations are usually less technical.
They're more just kind of one idea with each person.
So we do like a 30-minute slot, which is kind of like a work meeting slot.
And then we just upload online.
So oftentimes, the audio isn't amazing because we're just doing YouTube live.
But I find that since I'm an amateur at this, I just want to get content out there.
And I don't really care about the high fidelity too much.
I just want to get interesting content out.
And I found just going on YouTube live and streaming is just super convenient.
Yeah, that's really great.
Yeah, I've listened to some of your shows.
They were inspiring.
You had me on once, and that was an honor as well.
I think what you said about, hey, like, don't let the perfect be the enemy of the good and hold you up.
It's really important, not just in, like, if you want to do podcasting, but any kind of creative stuff you want to do.
Like, a lot of these things, you only get better by doing it.
And if you wait until you're perfect, you're never going to do it.
So, like, get out there and do something, whatever it is you're inspired about, right?
That's right.
I think that's exactly...
I mean, that's the attitude I've taken to blogging, to now podcasting.
I've been making these vlogs, these kind of short video vlogs.
And I think that's exactly right.
So, as you mentioned, I had you on my podcast.
It's very meta here that you were talking about the process of you starting up a podcast and kind of turning it into a career and such.
And this is kind of a jujitsu-like move because you had me on first.
And then I thought I could, you know, turn the tables and have you on.
But then you ended up on top and having me on again for the second time.
So, I think you have the high ground now.
Or just for the moment.
Just for the moment, right?
It's always fluid.
Very cool.
So, I am very excited to have you back.
Let's not totally rehash all of what you did to get into programming because we did have you on the show and cover that before.
But maybe just, you know, that's like almost two years ago.
Let's remind people just what you do today today because I think it's super relevant to where we're going with this conversation.
You're at UCSD, right?
Right.
So, I'm actually an assistant professor in the cognitive science department at UC San Diego.
So, I was actually, last time I was on your podcast, I was an assistant professor in a computer science department at the University of Rochester, the very opposite end of the country.
So, I actually recently moved to San Diego because my family is from Southern California.
And it's a lot nicer weather down here, especially in the winter.
So, I've been enjoying it a lot so far.
So, I basically do research at the intersection of what I call cognitive and computer science.
And that intersection is a lot about online learning.
And I'm especially interested in how people are learning to code and learning programming and building tools to support the learning of programming.
I think that's what brings us here today.
Yeah, it definitely is.
That sounds super cool.
I studied math a long time.
But my first computer job, my first professional job, I would say, was working at a company that was really a spinoff from a university in Southern California as well with a bunch of cognitive science PhDs.
It's really interesting how cognitive science has this computational aspect, although it's not really thought of.
It's like hardly even a STEM thing.
I mean, STEM, I guess.
But it's like on the border of STEM, I would say, even.
Yeah, I would say, actually, it's kind of a great kind of interdisciplinary hybrid of the social and the computational sciences.
Because what a lot of people are interested in is this intersection, like I was saying, between cognitive and computer science of studying how people are doing the act of programming or studying or developing tools to help people be more productive.
And I think the unifying factor behind a lot of this research, even though it's computational in nature, is that it always involves the human in the loop.
Like our brains are always the limiting factor.
Because, you know, Moore's Law is making computers much faster, but our brains are not getting any faster for millions of years.
Exactly.
We're relatively the same creatures that we were 50 years ago, more or less, right?
It's kind of amazing that we can keep up, though, right, in some ways.
Yeah, I think that is amazing.
I mean, it's kind of a testament to, you know, the testament to the foresight of evolution or something like that, that we're still able to keep up.
But then the thing is, we do use a lot of external memory aids, right?
I mean, imagine going through our modern workflows in any intensive job, if we're not allowed to write anything down or not allowed to use a computer, then we really can't actually do that much.
Yeah, that's right.
That's right.
We just found better tools and keep building better tools.
Awesome.
So one of the things that, you know, I think is really powerful for people in today's society is learning not to just use computers, but to control them, right?
To learn to become programmers, not necessarily for the sake of, I want to go get an official senior software engineer title, but I want to somehow amplify what I'm doing with software, right?
Right.
So I think a lot of the big kind of movements lately about learning to code, I mean, some of it, like you said, is practical is for jobs because, you know, software jobs are plentiful and there's, you know, software related jobs in pretty much every field you can think of now.
There's so John Deere, which is a big company that makes tractors and farm equipment.
They've recently been giving a lot of talks about big data, and it's because they've turned into a big data company because they have all these things on their tractors and devices and stuff, and they're managing logistics.
And all these companies that you think of as traditionally very hardware mechanical companies, their competitive advantage now is becoming software.
So jobs is one area.
But even beyond that, like you mentioned, there are many people who are interested in learning for, say, personal enrichment or for just kind of with this broad umbrella of computational literacy of just, you know, knowing what technology is all about.
Yeah, absolutely.
And I think that's the primary focus where we're going, but a significant part of it.
So let's get to your research project and the paper that is sort of the culmination of that.
So you guys over there at UCSD, you and you had some grad students helping you out.
Is that right?
Yeah, well, actually, it's funny enough.
This paper was actually just done by myself.
It was kind of a summer side project that I collected with a bunch of data.
But my other projects all involve students.
This is sort of an outlier, the single author paper.
Yeah, it's nice.
So there were two titles that I ran across.
One was like the press release from UCSD, which was great, which is like geeking out in the golden years.
The official title was something to the effect of older adults learning computer programming, motivations, frustrations, and design opportunities.
Right.
So what's the general idea of this project that you undertook this summer?
Yeah, so the general idea is that there's, like we mentioned earlier, there's a lot of initiatives for learning to code and for teaching coding and new tools and games and everything for learning programming.
But if you actually look at the target audience, a lot of those are targeting young kids or primary or secondary school kids or at most like college students.
So basically anyone under, you know, 20 years old, there's a ton of stuff and excitement about teaching the next generation to code.
So I thought, what about looking at the opposite in the age spectrum of people, say, age 60 and over, of which there are actually a lot of people 60 and over.
So there's some UN, United Nations estimates say that by 2030, about a quarter of the population of North America and Europe will be over 60 and about one sixth of the world population.
So that's an enormous number of people over 60.
And yet all this talk about technology and about programming literacy and computational literacy are focused on the youngest members of society, which is, of course, really important.
But the older members of society have been really understudied.
I think it's actually a large and really significant population.
So I set out to basically do an online survey to kind of get at the motivations and the frustrations that perhaps people who are 60 and over are facing when they're learning programming, simply because no one has really explored it before.
So this is kind of a greenfield research area because one of the nice things about research is that you try to take something that's a common assumption and flip it on its head and try to study the opposite.
And oftentimes you come up with interesting and surprising results.
So that was my summer project last summer.
That's cool.
Yeah.
And I really enjoyed reading the paper.
I think it's pretty accessible.
It's not like super dense academic stuff.
So, of course, we'll link to it and everyone can read through it.
If you skim it, even it has cool tables and graphs, which I think the stuff that was captured there is really cool.
So one of the things I think was interesting is maybe let's start talking about by the group that you studied.
Right.
So when we say older adults, like you could include me in that, maybe like I'm in my 40s.
Am I an older adult?
Like what do you mean by older adults?
Yeah, that's a great question.
I mean, as with anything, we need to define what older adults mean.
So one commonly accepted value is about 60 and older.
And that's an interesting threshold to talk about in paper, because a lot of, you know, the UN kind of they have this designation of older persons as 60 or older.
Also, retirement ages are around 60 or 65.
You know, some countries are creeping up higher for retirement ages.
But we've and also, you know, Social Security benefits for a 1K IRA kind of cutoff ages are around 60.
So I found that 60 was an interesting threshold because that actually captures both people who are still working or people who are phasing out into retirement or people who are actually retired already.
So I so I thought 60 was actually a pretty good range.
So you can actually get a fairly wide range of folks at 60.
Sure.
I think that's a good group as well.
To 60 to 85, it sounded like was more or less.
And it was sort of tilted towards the younger side of that group.
But there was a balance of people of some of whom were sort of still working.
Many of them, I mean, some of them were very high up in their company.
Right.
They were like lead scientists or they were CEOs or something and others were retired.
And so what I guess let's start with, like, why were they doing this?
Right.
So I understand if you're 20 and, you know, you want to start a career while you want to do that.
Or if you're 40 and you're like, I'm so tired of this, you know, law degree that I got.
I want to go do something creative with software.
Who knows?
Right.
But what about like you're kind of at your end of your career?
What were their motivations?
Yeah, that's a great that's a great question.
So that was the motivations was the first major part of the study.
And it was just, you know, a few survey questions based on, you know, why are you learning?
What resources are you using to learn?
I found several major sets of motivations that I talked about in the paper.
I'll go over three most salient ones because these are the ones that have to do with age.
So there were actually, like you mentioned, many people did talk about job related motivations
because even though they were later in their career, these are probably the people who were the most kind of
autodidactic most with the most self initiative.
They want to still learn new technologies and learn later in their careers.
But that's less age related.
Right.
So I think the age related ones I wrote down here, I'm looking at the summary is so 22 percent of the respondents.
This is the highest numbers.
22 percent wanted to learn now to make up for missed opportunities during their youth.
So what that usually means is, you know, people said I always was interested in computers or technology,
but I never had the chance to do it because my career was as a doctor or as a technician or something.
But now that I'm approaching retirement, I actually want to learn this programming thing because it's so accessible online to learn.
And I grew up with a technical background.
I never actually learned it.
So then 19, I'll go over the three.
So 19 percent wanted to learn to keep their brains challenged, fresh and sharp as they age.
So they these, again, are very much autodidactic self starters.
They didn't want to just retire and watch TV passively.
They wanted a challenging activity that they could do in their own homes so that, you know, they found that learning coding online was cool.
And also, lastly, five percent were directly motivated by younger relatives, such as their children or grandchildren.
So some people said, oh, my grandkids are now learning to code in school.
I want to play with this, too, because I'm curious.
So they were directly motivated by relatives.
Yeah, I think all three of those are super interesting.
For the first one, there was a quote that you had in your article that was something like there was this guy who's a retired chief information officer, CIO.
So very much in the technical space.
But he said, one of the reasons I wanted to learn to program now is I always wanted to do this.
And I kind of did a little bit in school.
But then I got kicked upstairs into management.
I was I sort of advanced my career out of what I actually wanted to do.
So they're kind of coming back and saying, look, this is something I always wanted to do.
Now that I have time, I can choose this kind of as my retirement interest or something like that.
Right.
Yeah, that was a great quote.
I mean, we had quite a few of the respondents actually wrote, you know, good paragraphs about their motivations.
And it wasn't because these are usually free text responses.
We let them write whatever they want.
So some people really elaborate.
So that person, he was a 67 year old retired CIO, chief information officer.
And he said, you know, this he uses kicked upstairs metaphor of, you know, I got into, you know, he managed me to get into management pretty early.
And, you know, he was always wanting to do the technical work, but his career obviously wasn't in it.
And now that he has, you know, he also said, you know, in the quote, it said, I always wanted to be able to create programs.
But between work and family never took the time.
And now that I'm retired, I'm trying to fulfill the dream and learn.
Oh, that sounds cool.
I mean, I certainly, you know, I think that somewhat ties into the second level of the motivation is just wanting to do something interesting when you retire.
Right.
Like I see people doing crossword puzzles.
I see them doing Sudoku or other things like that.
And it's like, that's kind of interesting, but it's just nowhere near like the puzzle that is solving a problem with computers.
Right.
Like that's a really interesting ongoing puzzle.
All right.
To me, like building a program, a website or something like that, it's kind of like, I guess if I were to think of it in those types of terms, it'd be like the thousand piece puzzle or something, you know, where you really like get into it and you do it for a long time.
It's not just like, you know, you spend five minutes on a Sudoku puzzle, something like that.
Yeah.
I think that's really interesting.
And that, you know, both the fact that this is far more difficult and engaging, but also like you're saying, because it's far more difficult and harder to get started with, it's a lot harder than to just pick up a crossword puzzle or play bingo.
Or something, which is kind of more routine, but it gives you that really short term dopamine release or, you know, are playing some, some small game on your, on your phone.
So I guess the challenge there design wise is how could we make programming kind of engaging and creative still, but also accessible and fun so that it's not like, okay, you got to debug the C++ thing on visual studio before you get anything done.
That's right.
You have an incompatible header included or something in your C program won't compile.
Like that's no longer fun, is it?
All right.
So I guess one of the things that we could talk about that's pretty interesting that you guys covered in there is what do people in this age group used to learn and how is that similar or different from say like the 25 year old person who wants to take a boot camp or something?
Yeah.
So another question I had on the survey was what resources were they using?
And, and just to back up a little bit to give some context.
So, you know, I designed the survey to put online, but then they, the one obvious question is where are we going to find older people learning programming, right?
They're not in your local college campuses or boot camps or, you know, they're not just around hanging out and, you know, with their hoodies on in the coffee shop.
Right. So, so where do we find all these people?
So that brings me back to kind of a broader story about, so I've been maintaining this learn to code website called Python Tutor at PythonTutor.com for many years now.
And it's had millions of users from pretty much every country under the sun.
And I did a demographic survey a few years ago on the site, just a quick, you know, user survey.
And it turned out that around one sixth of the users are about 55 and over.
I didn't measure it super precisely, but, you know, even though it was only a six of people, it's still like a lot of people.
Because if you have millions of people, one sixth is still, you know, tens of thousands, hundreds of thousands of people.
So then I thought, hmm, this could be a pretty cool population to deploy a survey to because I own the site.
Right. So all I what I did is that I made a short survey and I just put it on the website when people were learning to code, just put it as an optional link saying, hey, we're doing a research study.
If you're interested, click this link.
And it was completely optional.
So because of that, though, the people going on the site are necessarily going to be ones learning online.
Right. These are people taking massive open online courses.
These MOOCs, these are people searching on Stack Overflow, teaching themselves, going on tutorial videos on YouTube, finding sites online.
So the population is skewed toward online learners.
But I think that there are a lot of people of all ages learning online.
So the MOOCs are the biggest source, which is unsurprising because a lot of people who use my Python tutor sites come from MOOCs, from online courses.
I see. There's some like online Python courses and others that are.
Here's how you do your exercises.
You drop in at PythonTutor.com.
Yeah, you can link to the site.
Yeah. I mean, a lot of it or they talk about on the forums or because it's a popular it's pretty popular site.
People Google for, you know, Python debugger, Python tutorial.
Yeah.
And my site often comes up.
So so a lot of people who are learning online in all sorts of ways from blogs, from watching YouTube, from Stack Overflow, they just get linked to my site.
So there's a lot of online learners.
And I think, you know, getting back to your question of how does this population differ, perhaps, from, say, 25 year olds or 20 year olds is I think the biggest thing is that they really lack a place to learn in person.
Right. Like, you know, yeah.
In theory, they could go to a coding boot camp or a hackathon or meetup.
But, you know, you don't often see people over 60 at hackathons or boot camps because it's socially kind of a quote unquote young thing.
Right. Just culturally, it's a thing for younger people who are to kind of gather.
But then, you know, we might want to change that.
Right. What about having coding groups in senior homes?
What about coding groups in, you know, community centers and stuff?
I think I think that's potentially the future, which is pretty cool.
Yeah, that is pretty exciting.
So certainly the MOOCs, people, communities around YouTube, you said that very few of them actually learned in person, right?
Like five percent mentioned in class or in person learning in some form.
Yeah. I mean, very few people learn in person.
Yeah. I mean, and I think part of this is due to the bias of the sample because we're doing the survey on an online site that people are using to learn online.
But I think another part of it, I mean, I think there is some truth in it that usually if you're over 60, you probably have fewer opportunities to be in a classroom than someone who is obviously K-12 in college or always in a classroom.
But even when you're, you know, in your 20s or 30s, you might take boot camps, you might do continuing education classes, you might do Python training with Michael Kennedy, right?
You're more likely to do these sort of professional training events at work.
But when you're, say, 65 and retired, it's maybe hard for you to think about where to go to do an in-person training.
And I think, you know, hopefully this will change in the future.
Hopefully in the coming decades, there will be more in-person seminars and classes for this audience.
Hey, everyone.
Michael here.
Let me take just a moment and thank one of our sponsors who makes this show possible.
This portion of Talk Python to me has been brought to you by Rollbar.
One of the frustrating things about being a developer is dealing with errors.
Relying on users to report errors, digging through log files, trying to debug them, or a million alerts just flooding your inbox and ruining your day.
With Rollbar's full-stack error monitoring, you get the context, insight, and control you need to find and fix bugs faster.
Adding the Rollbar Python SDK is just as easy as pip install Rollbar.
You can start tracking production errors and deployments in eight minutes or less.
Rollbar works with all the major languages and frameworks, including the Python ones like Django, Flask, Pyramid, as well as Ruby, .NET, Node, iOS, and Android.
You can integrate Rollbar into your existing workflow, send error alerts to Slack or HipChat, or automatically create new JIRA issues, pivotal tracker issues, and a lot more.
They have a special offer for Talk Python to me listeners.
Visit talkpython.fm/Rollbar.
Sign up and get the bootstrap plan free for 90 days.
That's 100,000 errors tracked for free.
But, you know, just between you and me, I hope you don't encounter that many errors.
Give Rollbar a try today.
Just go to talkpython.fm/Rollbar.
And if you happen to be going to PyCon this year, be sure to stop by Rollbar's booth.
Get a live demo and pick up some of their swag.
When I think of the different places, you're right that, like, university stuff, I really don't remember seeing people a lot older than me, even when I was a college student age, you know?
But meetups, like the meetups that you would find on meetup.com, like the local Python or, you know, big data meetups or whatever, I think those do better.
I think of all the places I've seen, I feel like the code camps, like the free code camps that are sort of like conferences seem to do actually pretty well with having a wide diversity of ages and ranges and stuff there.
Yeah, I think that's actually really interesting.
I mean, the open source community has been fairly good, right?
I mean, kind of the stereotypical gray beard hackers are, you know, they're in the older generation.
That's an interesting population because, you know, I feel like they're probably doing well in terms of having older developers who have been working on this for a long time.
But I think it's still maybe hard to reach older people who have not been software developers and who are trying to get into it for the first time.
Do you think that there's a lot of hesitation to go to these groups?
Like, oh, I saw there's a meetup and it's probably just a bunch of young kids, so I'm not going to go.
Whereas in reality, I don't really think that that's how they are.
I think they're pretty open and welcome, at least the Python meetups.
Yeah, I mean, I think that's it.
I mean, I didn't ask about this in detail, but just from anecdotes from people's responses, I think there probably is kind of hesitation because, I mean, one of the things I talked about when I was talking about this work is if you go do a Google image search for, you know, programmer or learning to code, the images that come up are all like kids and young people with hoodies and, you know, beer pong at startups and everything.
So the popular image conception of coding and learning to code is very young.
So perhaps that kind of dissuades older adults from doing so in person.
But I think you're right that once they actually go and see, especially in more welcoming communities like the Python one, they'll see, oh, they're people of all ages here.
This is actually not an intimidating environment.
But I think just kind of the popular media conceptions from, you know, the Silicon Valley TV shows and social network movies may be, you know, put off that way.
Yeah.
I'm not sure that popular media really portrays us developers all that correctly or accurately.
Right.
To everyone.
It just may have different influences on different people.
You talked about some of the reasons that people were learning.
And you said there's actually some extra challenges.
Like when we get to some of the stuff we could that you think you could do, I think some of those solutions might address what you already just now spoke about, like some of the isolation aspects.
But there's also just like forgetfulness and other types of issues that come with age that can make this harder as well.
Right.
Yeah.
So another part of the study was asking about frustrations.
Right.
So the title of the study was Motivations, Frustrations, and Design Opportunities.
And I guess we'll talk about design opportunities at the end.
So frustrations was really, you know, what challenges were they facing while they were learning?
You know, what things frustrated them?
And unsurprisingly, a lot of the frustrations were things that I'm sure you've seen with students of all ages, right?
Oh, syntax error, setting up my environment, just kind of understanding the semantics of how programming languages work.
So these are universal.
I mean, we know that these things are hard about programming in general.
You know what I find?
I interact with people and I'm not sure if this is an age thing or not, but certainly people say, oh, Michael, you solve this problem.
You're really good at computers.
And I had I used no skill.
All I did was just randomly try variations with the piece of software they're trying to get to work until the thing just, you know, gave in and worked.
Right.
It's not like I use some great skill or something.
I just I was just persistently pushing through and I was just willing to play with, you know, whatever that people brought to me with their computers.
Like, can you fix this?
I'm like, I don't really know about that, but I'll try, you know, and I wonder if that's something about growing up with computers.
Like we didn't have a lot of good sources to learn.
So you had to just like try variations until it works.
And maybe maybe that's something that comes to you easier when you grow up with it and you're not learning when you're 60.
I don't know.
Yeah, I think that's a great I mean, that's a good lead into some of the perceived age related frustrations.
Right.
So the stuff I just mentioned with syntax errors, runtime errors, setting of environment, that's kind of general technical problems of programming.
It's kind of like if you're learning math, you have to learn all these mechanics that that is just there are just sets of rules that you have to learn.
But I think that the self-efficacy and the self-confidence with tinkering was what you just mentioned.
I think that is something that for the older population that didn't grow up with computers and didn't grow up tinkering, they might have more issues with because they think, oh, I'm not a computer person.
You know, I grew up as a as a librarian.
I grew up as a business person.
I don't deal with tinkering stuff.
So maybe they're not as willing to tinker as much.
And that's what hampers them from from debugging more.
So I think the self-efficacy is a big factor.
I think I wrote that down in the paper.
But on a related note, I think the highest number percentage of 14 percent of respondents were frustrated by their own perceived kind of cognitive impairments.
So they kind of mentioned things like memory loss and difficulty concentrating and just kind of not being as quick and as, you know, as easy to get things as they used to.
And again, this is not I didn't do a rigorous, you know, I didn't do brain scans or anything.
This is just a survey.
This is all self-reported.
So who knows how much of that is actually really cognitive impairments and how much of it is just kind of self-perception and self-efficacy.
Like, oh, you know, I'm older now and I don't really want to try to do X or Y as hard.
But maybe they can still do it very well if they had good training or coaching.
So I think that was, you know, I kind of wrote in the paper, regardless of whether the cognitive impairments were real or self-perceived, they still perceive themselves as having that limit.
And that kind of frustrated.
It's a real roadblock and frustration, regardless of whether it's valid, right?
Right.
Exactly.
I mean, it's valid because they say it is.
It's valid for them, whether it's psychological or physical.
It's like an anti-placebo effect.
Right.
They also indicated that they felt like there was poorly organized online content, which kind of just describes the Internet itself.
Right.
Yeah.
I mean, I think this is again, I didn't mention this out as an age related factor.
I mean, this is a general factor of if you're learning online and self-teaching yourself, it's actually pretty hard without a coach.
Right.
And it kind of related to another point that 10 percent of people mentioned that they're frustrated by lack of human contact.
Because, again, if you're older, you're less likely to be in a school environment or in a boot camp or in a company where a lot of other people around can help you.
So you're just vending for yourself, learning from these MOOCs, talking in forums, going on Stack Overflow, reading, you know, outdated tutorials.
And another factor people mentioned was that the technology seems to change so fast now.
Right.
That even people who were programmers or engineers back in the day, they're like, yeah, my whole API fit in a book.
Right.
Like I just learned a manual for my assembly language, my device.
But now it's like we have to Google for all these things and we do this web development or data science and the library changes every month and nothing works anymore on the web.
And it's just, I mean, it's frustrating for me to think about.
Yeah.
And especially if they decide to learn JavaScript.
Right.
Because that's both dramatically changing and actually somehow getting really complicated.
Right.
Yeah.
What happened to JavaScript being simple?
Right.
Somehow Python managed to stay true to its den of being simple but still being functional.
Right.
And doing amazing things.
Yeah.
I mean, without getting the weeds too much of language details.
I mean, I was on the Python Tutor site.
It's a web app that I maintain for this Learn to Code site that I use to deploy the survey itself.
I was just working on it this morning.
And I have this weird TypeScript and Webpack and minifiers and all this compile tool chain.
And I have to remember how to compile and minify my code and deploy and everything.
And I just remember, you know, now I'm feeling old.
I remember when I started JavaScript, you just had a HTML file and you just wrote a thing in your HTML and stuff displayed.
Right.
There's no compilation or transpiling or anything.
Exactly.
Now, there's like four layers with map files and dependency injection and modules and whatnot.
Very interesting.
Yeah.
It's wild.
But you're right that the Python ecosystem still is, you know, it still can maintain, as long as you have a good package, like a meta package, like Anaconda or things, it's still fairly decent to copy and paste code.
As long as you have all the stuff installed, you can, you know, if you have 10 lines of code, you import some libraries, you do some analysis, do a graph.
It sort of works everywhere.
Yeah, exactly.
I mean, you got to get through the Python 2 versus Python 3.
And you can, of course, go deep down into some package that's crazy.
But there's like a base that is still simple, which is nice.
Right.
So how long would you say these folks have been trying to learn?
Right.
Are they all like really new?
Have they been at it for a while and they're still sort of fiddling online?
Or what's the spectrum of that?
Yeah, there's a really wide range, actually.
I think in this, let's see how, let's see, I'm trying to read from the paper itself.
They range from, you know, I just started and I was just playing with online site to I've kind of been learning for years.
Right.
I mean, this is a very imprecise measure because a lot of people already know programming and they're like, yeah, I've been learning for a decade.
And because I already do it in my job, but now I'm just trying to learn a new language.
I'm trying to learn Python or JavaScript or web development or data science.
So it ranged a lot.
But this is definitely not all newbies.
Right.
So because people are on the site self-teaching, this is not like a controlled environment where we're taking a sample of the population who have never coded before and tell them to code.
This is definitely very much a very high variance.
Yeah, sure.
So, yeah, it seems pretty evenly distributed between zero and 10 years.
Right.
Let's see.
You know, another, I don't want to skip over this one because I think this is worth pulling out as well.
I think this might be one of these anti-placebo things.
Six percent of the respondents said that they are frustrated by their inability to think algorithmically, to conceptualize, plan, and implement solutions.
Yeah.
What do you make of that as being, like, that does not sound like an age-related thing to me at all.
That just sounds like it's hard to learn to program and be effective, like, once you learn the syntax.
Yeah, I think so.
This, yeah, this thinking computationally or algorithmically.
I mean, I kind of made those words.
I mean, people didn't exactly use those words, but I kind of put the category of, you know, people were saying things like, I don't know how to think like the machine.
It requires so much precision.
It requires all these intricate rules or, like, recursion is really hard or, like, you know, functions are really hard.
That's absolutely right.
I think there's a lot of very rigorous computing education and programming education research that shows that even if you learn the syntax and the semantics of a language, just this idea of being able to have to think about abstractions and modeling and algorithmic thinking.
We're thinking about things in terms of steps.
It is a pretty hard process.
And that's what a lot of my colleagues who are working with younger kids, you know, part of trying to do computational thinking and teaching in school is to try to say, okay, we're not going to teach you Java or programming.
What about using something like Logo or Scratch that we can program robots?
And the idea is to get you to think about step-by-step making recipes instead of, you know, becoming a professional programmer.
I think this thing is a genuinely hard thing in programming.
And it's something that as people who've done programming for many years, we kind of forget how big of a leap that is for people who don't program.
Yeah, it's because I get this question from people who are not particularly older and also not particularly brand new to programming.
It's just like, I see how you solve that problem.
I would have never, ever come up with that myself.
How did you think through to come up with this solution?
Right?
Because the solutions often are not that hard.
But there it's, it's like looking at a blank sheet of paper or a blank Word document and you're going to write a novel.
It's like, how do you start doing this thing?
Right?
Like, it's not that hard to see it, but to like see that it's wide open and what is the right choice to get started?
Like, that's harder.
Yeah.
I mean, I think analogy, an imperfect analogy of this would be people's kind of math phobia with advanced math.
Right?
So I fall into this myself.
So, you know, I see my colleagues who are doing theoretical computer science work or kind of mathematical, you know, serious grad level research math.
You know, I think that they have this, they pose this problem.
It's this open problem.
And they, you know, prove these lemmas and theorems about it and they solve it.
I think I have no idea how you go about doing this.
Like, maybe I'll understand the theorem if you explain it to me and present it well.
But I have no idea how you go from here's a problem to like many, many months later of turning and trial and error.
Like, here's an elegant, you know, one page proof.
And I think that obviously there's a process to this, right?
This is like we were talking about in the beginning of the hour with the hacking mentality.
You know, these people are there, you know, for the most part, human just like us.
And they've gone through certain mental heuristics and, you know, certain kinds of kind of search algorithms in their brain and fitting pieces together and chunking pieces until they come up with mathematical proofs.
And I think, you know, I personally never grew up with a very rigorous math education in terms of proof-based math.
So, you know, I would fall in the same boat.
If someone, you know, at this age, at my age, if someone's like, okay, now you got to do like proofs all day, I would be similarly as intimidating.
I'm like, I have no idea how you start conceptualizing mathematical proofs.
Exactly.
It's one thing to read the proof of like Green's theorem or Stokes theorem.
It's another to come up with it.
Well, I guess that's why these people are famous and living on in history and they have theorems named after them.
Exactly.
There's other people who study their theorems, right?
So there's a couple of other questions that you asked that I'd like to just like briefly touch on because I think they're kind of interesting.
One was how many hours per week were they putting into this?
Like, is this a half hour on Sunday morning?
Is this like they do it an hour a day?
What was the story there?
Yeah.
So people have spent a wide range of hours again.
So the interesting split in this data was between people who are still working and people who are retired or semi-retired.
And unsurprisingly, if you're retired or somewhat retired, you have more time to spend on it.
So the median for working people was about five hours a week for working people and for retired or semi-retired was about 10 hours a week.
But there was a pretty wide variation.
Yeah, that's quite a bit though.
Yeah, I would expect less if I had to guess, you know, that's cool.
Yeah, I mean, it is, again, it's all self-reported anyways.
But I think that, again, if people who are going on these sites to learn and judging by the seriousness of their responses, they are probably more in the serious side.
And again, I feel like one of my pet theories is that if you're only doing an hour a week, you probably will give up.
Yeah, that's true.
You probably do have to put in more time than that because it is something you got.
It's a pretty complicated thing with lots of facts, but also it requires tons of practice, kind of like the algorithmic thinking we're talking about.
Exactly.
Yeah.
I mean, I think if you've been sticking with it for a while, you know, you hopefully get hooked enough so that you do spend.
I mean, five hours goes by really fast.
You can do that in a day if you're retired, right?
Yeah.
I recently looked at some kind of, it certainly wasn't an academic paper.
It was more like a blog post report type thing.
I talked about it on Python Bytes.
I'll put it in the show notes.
So basically it was this code school that asked 20,000 people like how they're learning or why they're learning programming or something like this.
And one of the facts that they had in there was gender.
And they said 19% were women and the balance were men.
And I felt like on one hand, like that's not really where we should be, but it's actually a little better than I would guess.
Just thinking of like certain conferences I've attended, not in the Python space where it's like 5% of women attending.
Right.
So it's, it's really good.
What's the gender story for older adults?
Yeah.
So for the respondents, we had 15% female, which is slightly lower than that.
There was 19 you mentioned.
I think so.
Yeah.
But that's just like college age learning.
I think that's sort of the bootcamp crowd.
Yeah.
So that would make sense.
The kind of college CS majors range is around 2025% nowadays.
So in this population is 15%.
It's not that surprising again, because in the older population, especially people who,
most of these people are ones with technical degrees in science and engineering in, you know,
historically in those days, most people were male growing up in that generation, majoring in that.
And also, I think this is also pretty consistent with online learning in general.
I mean, kind of MOOCs and online learning environments stack overflow.
Those are overwhelmingly, you know, 90% plus male.
I guess we as guys are willing to just go be by ourselves for hours and force knowledge down our heads.
Okay.
This portion of Talk Python to Me is brought to you by Hired.
Hired is the platform for top Python developer jobs.
Create your profile and instantly get access to thousands of companies who will compete to work with you.
Take it from one of Hired's users who recently got a job and said,
Well, that sounds pretty awesome, doesn't it?
But wait until you hear about the signing bonus.
Everyone who accepts a job from Hired gets a $300 signing bonus.
And as Talk Python listeners, it gets even sweeter.
Use the link talkpython.fm/Hired and Hired will double the signing bonus to $600.
Opportunity is knocking.
Visit talkpython.fm/Hired and answer the door.
One final one of the questions you asked, what was their job or profession?
And obviously you can't just like list off all the jobs.
But what was the general sense of like types of jobs people had that are coming back to programming?
I think the biggest one, I think, were scientists and engineers.
So these are people who had a career in science or a non-software engineering type major.
So they're electrical engineers, mechanical engineers, civil engineers.
Basically, you know, these people were working at the equivalent of the Google and the Microsofts, you know, 40 years ago.
They had a career in engineering or science.
And now they're phasing out and they're getting into trying to learn this programming thing.
Also, quite a few people were teachers, actually, which is interesting.
And I suspect, I think most of them were not computer science teachers because there were actually very few computer science teachers, unfortunately.
Most of these were STEM teachers who wanted to learn either to actually perhaps teach in their school or that they're retiring now to perhaps volunteer to teach or maybe teach summer school or teach part time.
So it makes sense because the scientists and engineering crowd and the teaching crowd, you know, these are probably the people who are able and willing to go online to learn stuff in general.
Sure, sure.
One of the opportunities you pointed out is there's a big gap of people who can teach programming or both can and have the time and interest in teaching programming.
And the amount of teachers, especially at the middle school and high school level, not so much the college and professional level.
You're saying like there might be a way to match these two groups up and address that somewhat.
Yeah.
So I think one of the big issues in the U.S.
I don't know personally about other countries, but in the United States is we have this dire shortage of computer science teachers at the high school and lower levels, right?
At middle school and high school levels, especially.
We just have a lack of computer science teachers because anyone who is majoring in computer science in college can get, you know, much better paying jobs in the software industry or in other industries.
And unfortunately, in the U.S. with how teaching jobs are structured, these are usually not as well paid as other industry jobs.
So kind of the best and brightest computer science majors are usually not becoming teachers.
Unfortunately, I mean, I would love for for government to reform and make, you know, make teaching computer science the most glamorous, awesome profession ever.
So more people do it.
But the reality is that it is really hard to get good teachers in computer science.
So one thing people have done, the most common way people have dealt with this is to retrain current teachers, current math and science teachers to be computer science teachers.
So there are initiatives saying, you know, you're teaching.
I mean, my computer science instructor was the AP calculus teacher in high school.
And that's very common because they're math science people.
So they're like, oh, why don't we why don't you teach computer science as well?
We'll give you a summer training course to teach you how to do AP computer science stuff.
And there's quite a few researchers thinking about how do you retrain current teachers?
They're called in-service teachers to pivot them into computer science.
And I propose in this paper, what about people who are 60 and over?
Right.
These are people who are clearly very intelligent, very hardworking, very technically capable.
And they're phasing out of their primary career, but they still want to keep active and keep engaged.
And I think teaching, especially part time, is a great way to do that because you get to be social, you get to be active.
There's all these great psychological and physical benefits of maintaining activity over age.
And these people have the skills and the wisdom and the enthusiasm to teach.
I think that'll be an awesome thing if we can make that work.
Yeah, I think that would be really great as well.
And I feel like people perceive this kind of stuff to be more challenging than it is in practice.
So I'm thinking of my daughter, who is my daughter in second grade, and I have older daughters as well.
And we did an hour of code at her elementary school.
Right.
And so what we ended up doing was every grade had one hour of like a programming exercise with me and the principal actually during the hour of code.
Right.
And at first, when I approached them with this idea, I was like, well, maybe we can do this for fifth grade, maybe for fourth grade as well.
But that's it.
Right.
They have to be like more.
And the teachers can't really help because they're not programmers.
In the end, we ended up doing basically something from, I think it's Grok Learning, basically a scratch thing.
And even the first graders did amazing, successful problem solving.
And all the teachers the next year were in there helping because they realized, oh, this is not actually as challenged as hard as I thought.
And these kids are very excited.
And everybody wanted to be part of it.
And I think it's one of those things that just sounds super daunting if you've never tried it.
Even if you're a good programmer, like, I'm not sure I want to go be around a bunch of crazy kids and do this.
Right.
You know, but in fact, I found it to be quite easy and fun.
Yeah.
And I think that's also a testament to the success of these custom learning environments for children.
Right.
So these are developed over many years of research and productization development of these more friendly virtual world environments or block based environments.
Because, again, if you're throwing kids in there with teachers with, you know, old versions of Boardland Turbo C++ on Windows 3.1 that doesn't compile, then that's probably not a great first experience.
Exactly.
Well, but I think you teach the hardest part.
You teach the algorithmic thinking.
Right.
Exactly.
And the problem solving.
And then it's like, okay, well, now I put that in words.
Fine.
Right.
It's, you know, when you first learn programming, I feel like looking at the syntax and the compilers and all that stuff feels like that's the hard part.
You get a compiler bug and a syntax bug and it won't compile and you finally get it to work.
You're like, yes, I got my program working.
And it's like, you realize you're just starting the work.
You've got to understand where the real bugs and the real performance problems and everything else are.
So I think it's, you know, get through that thinking part straight away and avoid the syntax, at least for the younger groups.
I'm not sure about the older groups, if that makes any sense or not.
Yeah, and that's actually made segue into design opportunities as well that we're already talking about.
And one of the kind of design thinking things I had for the older population is that a lot of them mentioned how they didn't want to be patronized.
Right.
They didn't necessarily want games for kids or cutesy things that are like games or things that look like they're for kids because, you know, these people are serious career professionals and they want to learn.
They've run global companies or something like this.
Exactly.
Now they are like thrown into scratch.
Right.
Exactly.
So I think that was an interesting design challenge.
You know, we have all this great research that shows what works well for younger kids.
You know, what are the equivalent of this scratch and logos for older adults?
One potential thing that some people mentioned are these brain training games.
So these companies like Lumosity and other companies make these apps that, you know, that are kind of engaging and try to test your memory and try to, you know, these kinds of they make a lot of these games that stimulate older adults to learn and stuff.
So perhaps couching learning programming in terms of these brain training puzzles or, you know, making claims saying, oh, you know, we can do this concentration game or do this photo game or something where you have to write some code.
I think then they'll feel like, oh, this is something my peers do as well.
So this doesn't feel like you're just giving me a kid's toy to play with.
Yeah.
That's for sure.
What are the like that ties into one of the motivations, which was I might be a scientist, but work with a bunch of developers or I'm a manager working with developers.
And I want to understand what the people I'm the manager of actually do day to day, not just at a higher level.
Right.
Yeah.
And I think that was for the kind of younger people in our generation and our sample.
Right.
The 60, 60 to 67 ish.
Right.
The people who are still working, they want to learn, you know, quote unquote, industrial best practices.
Right.
They want to be learning Python and web development and stuff because they wanted to see what people they're working with are doing.
Yeah, for sure.
All right.
So you said in the end that there were seven ways that you thought we could help create something particularly useful for this age group, like not just scratch or something like that.
Right.
Yeah.
So I kind of outlined just kind of design ideas in the conclusion of the study.
And again, these are all kind of speculation based on based on the findings.
And one of them I already mentioned was targeting the age group.
Right.
So this is very basic user centered design, knowing your audience thing of I think there is not a one size fits all solution for this.
Right.
So things like scratch are great for working with young children because they were well tested and developed with that in mind.
So what does it mean to make something like that for an older adult population?
Maybe it is a game because they do like games or they like crosswords and Sudoku and brain training games.
But they're probably different kinds of games and the games that kids play.
Another one is about this idea of of universal design, which is this which is this idea and design that says if you try to design for people with certain, say, cognitive or motor impairments.
Or say the older adults may not be able to remember things as well or their hands may be more shaky.
So they, you know, make more typos or they have more trouble typing and stuff.
If you actually design of, say, a programming environment or a learning environment that takes those into account and kind of mitigates those effects, that can actually end up universally helping everybody.
Right.
I mean, an environment that helps people remember things better and helps data entry be easier can be good for people with, you know, other motor impairments or for people with learning disabilities or for people who are short on time.
So I think that it's an interesting this sort of population of study is interesting because by designing for them, you can not only help all the people over 60, you can help people of all ages learn better.
Yeah, that's a really good point.
It feels like maybe a little more distributed cognition.
Yeah.
And, you know, maybe this whole coming wave of AI will somehow play into really helping here as well.
You know, like if it doesn't just say, here's, you know, more than just say autocomplete for something.
But, like, here are the things it looks like you're trying to do.
Maybe, you know, here's a resource to help you show that or to learn that.
Or, like, these are the common steps people take.
The closest I've seen to this is something called Kite.
But it's certainly focused on professional developers.
It's not a teaching environment, right?
Yeah, yeah.
I mean, I think these sorts of better intelligence and, you know, better web search and web crawling type things, thinking about targeting that for a learner audience would be really cool.
Because, like you said, the business angle is all for professionals at this point.
Because these products, I mean, these deep learning startups are all trying to develop productivity tools for professionals or for data analysts or for things.
But thinking about developing them for a novice population could be really promising.
Yeah, I can see that helping a lot of people.
Like, maybe you're a pro developer, but you're new in a language, right?
That kind of exposure would be really helpful.
Another thing you talked about was scaffolding.
What do you mean with that?
Yeah, so this idea of instructional scaffolding is just sort of akin to physical scaffolding, right?
That you don't want to build a building by just throwing everything together all at once.
You want to build an outside infrastructure.
You want to build a scaffold so you can kind of gradually layer stuff on top without it toppling over.
So a lot of the people were overwhelmed by just how many shared choices there were in software development.
You know, like start a modern JavaScript-based front-end web project.
What can you do?
I don't even know how to make all those choices.
There's so many.
Exactly.
There's some flowchart somewhere on the web that's like, here, you want to be a web developer?
Here's like 500 things you can step through.
Exactly.
I don't know if they made that to be sarcastic or that they were actually serious about how this web development is awesome
because you have so many choices.
But yeah, so one of the ways to do scaffolding for these environments is just to make a nice prepackaged environment for a learning audience.
So things like Racket, which is a scheme-based language and environment, have done a good job.
They use it a lot in colleges and now in high schools.
You can download Racket.
It's called R-A-C-K-E-T.
I can't spell on the air.
And it's basically a scheme-based language and IDE so that you can do all your programming IDE.
All the libraries are there.
It's batteries included.
There are also things like Anaconda for Python if you want to set up a Jupyter Notebook and do a data science workflow.
And I think that there are more web-based things now too.
So my Python tutor site has everything.
All the libraries are included.
You can play with it.
There are web-based IDEs now that I think just make things so much more convenient than having to install everything on your computer.
Yeah, especially with things like Python tutor.
You don't have to worry about versions and all that kind of stuff.
You just go run it.
You also have nice visualizations, like stepping through, kind of like debugging, but more for a learning experience, not for a find and bug step like you can do on yours, right?
Yeah.
So I think visualizations are another great form of scaffold, not to plug my own work too much, but we're already down the path.
Yeah.
So having visualizations of how code is running is another great example of scaffolding because otherwise you're just looking at a terminal outputs all day.
But if you can peek inside the computer and see, oh, this pointer points here and I thought it would point there, there's my bug, then that just helps you develop your code.
Yeah.
Why did it do that?
That's not what I expected.
Well, that's what you told it to do.
Another thing that you talked about as a possible thing to consider for solutions was that learners change as they gain expertise, right?
So as the first week that you're writing code, you have a whole bunch of different problems than your first year, right?
After your first year, a lot of stuff goes on autopilot and then now you think at a different level.
So how does that fit into the solution?
Yeah.
So I think there's two aspects.
There's one is the technical aspect, like you mentioned, which is I think a lot of programming education, both tools and curriculum are focused on the introductory end, right?
On the how do you get started, the basic CS 101 end.
And I think there's actually not that much work on how to progress, right?
You know, what happens at six months?
What happens in one year?
What happens at five years?
And I think the other end of that beyond technical is the kind of social aspect, right?
That when people are progressing as learners, they may not want to be treated like beginners anymore.
They want to be treated like apprentices, say, to like an open source project or junior colleagues in a company and such.
And I think both the social and the technical have to go in lockstep because if we are only focusing our education on introductory, then it's sort of like a lemmings thing where they get started okay, but then everyone falls off the cliff because no one gets support after that first same month.
Exactly.
So another motivation that you talked about, and I'm not sure if we actually touched on it, was there's some kind of thing around their hobbies that they're really interested in.
Like I still remember my grandpa was like insanely into collecting beer cans.
He had like a thousand foot basement with walls built up and every wall had like some rare beer can from someplace.
I mean, I don't know how many beer cans there were, but there were many and he really had a hard time keeping track of them.
And so one of the things that would have been cool is like some kind of like beer can trading software, right?
Which I was too young to write or whatever, but, you know, solving those kinds of problems, right?
They're like, there's nothing for my beer can collection.
Maybe I'll like create that.
Yeah, I think that's a great set of motivations too that, yeah, we didn't talk about this earlier, but basically another main set of motivations is to actually create technologies or software that helps their peers and themselves, right?
I mean, just like many hobbyists are getting into programming because they want to scratch their own itch, right?
That whatever field you're in, you want to write software for yourself and your friends.
And that's, this kind of brings a larger conversation about the youth centeredness of software.
So it's a cliche that, you know, Silicon Valley makes software for 20 something unmarried young men, you know, to do their, you know, to have remote workers do their laundry and deliver them food because they still, you know, they don't know how to cook, right?
I have no actual analysis of that, but it does feel like a lot of the problems being solved there are in that vein.
Right.
And, you know, there is a, you know, you could, you could play devil's advocate about that for other reasons, but it is true that, you know, and I teach a, I teach at the college level, right?
And I teach project-based human computer action and web programming toward a classes where students are making projects.
And unsurprisingly, every project idea is fulfilling a need that college students have, right?
Every project idea is about delivering food or picking courses or doing laundry or finding parties to go to.
And it's because these are the things that interest people who are, you know, age 18 or 24.
So at the same time, there's definitely reason to believe we had this in our surveys that if you're 60 or over, you have certain hobbies like beer can collecting or other people mentioned like personal health.
It's keeping track of their health records is very important to them, right?
Health is a very important thing.
Keeping track of personal memorabilia like family photos or personal narratives about their history.
Yeah, genealogy type stuff.
Yeah.
Genealogy.
Yeah.
Genealogy is big.
So they now play with software to do all this stuff.
They use online genealogy sites.
They use social networks to share photos and memories with relatives.
And programming and making custom software or making plugins is a natural extension to their hobbies.
And I think this has implications broadly economically as well, right?
Because if we have more older people doing programming and making open source projects or making products even, we're going to have more age specific great products for people of that generation.
Whereas now, you know, the stereotypical we're designing for 20 year olds in Silicon Valley, you know, with laundry and food delivery apps everywhere.
Exactly.
I've, you know, listening to you talk and thinking about, I feel like there are probably still like wide open spaces for relatively entry level type software that would make a big difference to older folks on a, you know, like hobby related type of things.
Right.
There's just, if you look at the, how do I serve 20 year olds like that?
There's probably not a lot of low hanging fruit anymore.
You got to do something really interesting or catch the right wave or whatever.
Right.
I mean, Snapchat, things like that.
But, but there's probably a fairly wide number of underserved needs that somebody who, the reason I bring this up is if you're learning to program, you can't go and create, you know, amazon.com at its scale.
But you could create like something that'll track and rank and evaluate your beer can collection.
Right.
Like that's not a super hard problem.
And you could, you know, potentially make that a product and make it really interesting, like after your career career.
Yeah.
And that's a really interesting point you brought up because one thing that has happened is that when younger people, I guess, like us or even younger are designing or thinking, oh, let's think of business ideas or even research ideas or, you know, government funding.
For when people think about older adults and technology, a lot of what people think about both in government funded research and in products is assistive technologies.
Right.
It's kind of slowing the decline of old age.
It's kind of viewing old age as a quote unquote disease.
Right.
It's like, how do we help people live healthier lives?
How do we make sure they're not bored?
How do we make sure their mental and physical health is good?
I mean, these are all important things, of course, but they they take this view of age as quote unquote decline.
And I think that's unfortunate in a sense, because if you have people who are in that population designing stuff for their peers, you know, like your grandpa or their friends are like, yeah, we're designing stuff because this is fun for us.
This is like how we're enjoying our life.
This is our hobby.
This is our equivalent of 20 year old laundry making apps.
Like, yeah, we're not making apps to help us stave off age related decline.
We're making apps because these are things we actually find intrinsically fun.
And I think we'll hopefully see more of that as the older population is programming for themselves rather than, say, younger people like us thinking, oh, what products do you think my grandparents need?
Right.
That would be awesome.
I'm just thinking of all the remote control things that you could build to, like for remote control hobbies and whatnot.
It sounds great.
Yeah, I think there's a lot of there's a lot of potential there.
And I think that the future that I'm hoping to see with this work and others is to kind of view age as an opportunity.
Right.
And that I mean, again, if you Google, if you Google image search, you know, older adults and technology, I'm sure a lot of the pictures you'll see will be health related assistive technologies dealing with physical and mental disabilities.
Things that are kind of, you know, they're necessary, but they're kind of staving off decline.
But whereas I think in the future, if, you know, when many of us are over 60, we're still us, right?
We're still want to have fun.
We still want to make fun apps, silly apps, you know, games, things to hang out with our friends, maybe, you know, maybe sharing inappropriate things with our similar age friends and stuff.
And I think that I would love to see more of that in that generation.
And I think that they'll be empowered to do that once they know more about how to program.
Yeah, that's I really think that's a great thing.
I always have felt like if I ever retired, I would just keep doing the same thing, just more of it for myself.
So hopefully, yeah, hopefully, we've inspired some people to pick that up as well.
All right, Philip, I think it's about about time, we should probably just leave it there.
Let me ask you the two questions I always ask before I let you out of here.
One, if you're going to write some Python code, what editor do you open up?
I think I've used them for exactly 10 years since, since I started grad school around 2007.
And I do not customize that much beyond the regular syntax.
I am supremely low tech in terms of programming.
I just use them.
Yeah, just make the need to move around, right?
Yeah, it's always the same.
Cool.
And a notable PyPI package.
So last time I was on here, I talked about Anaconda, or as I talked about this meta package that this one click installer for everything.
And I'm trying to think of if I can think of anything else at this point that is major at this point.
I might still be, you know, I think I'm still a proponent of these, of both Anaconda and things like Enthought and just these one click installer things that get you up and running.
And I think even from two years ago, I think these have grown even more powerful because data science is a big thing now.
And now they have Jupyter Notebooks and hopefully the Jupyter Lab IDs and stuff.
And I just think having a one click installer on your computer to get everything going so that you can just copy any code from the web from any tutorial and play with it, I think is immensely powerful.
And I think it covers the, I mean, these meta packages cover most of what you need for production level data science and analysis.
Yeah, they're definitely great.
And I feel like, you know, if you were getting started, just running Jupyter Notebooks and starting to type in there is actually not a bad way to go.
That's right.
And I think a lot of, speaking about education, a lot of more classes now are being taught in the notebooks because it's just a convenient, such a convenient medium.
And also now there are services, I'm sure, I don't remember them off the top of my head, but there are web-based hosted platforms for Jupyter Notebook, which makes it even easier.
So I guess my answer for that would be use one of those and you don't have to install any packages.
You get all the good ones.
Perfect.
All right.
Final call to action.
I think my final call to action would be that, I mean, going with this age-related theme, it is a cliche, but it is never too late to start, right?
That it's now easier than ever to not only learn programming, but I mean, I was talking to relatives who were, I have older relatives who they are retired or some are retired and they just learn a lot from YouTube, right?
They're learning how to fix stuff around their house.
They're learning to fix their cars.
They're learning repair.
They're also learning some basic things about coding, too.
I was just talking to someone the other day just to kind of get a sample at it.
So I think these online resources are just amazing.
And also, I guess the other call to action is just if you're in an older generation, just to talk to, this is a great way to communicate with your younger relatives, right?
I mean, if you have kids or grandkids who are into technology and stuff, that's an awesome way to connect with them and to find common ground.
And we even found people in our surveys who talked about one of the reasons they want to learn was so they can chat with their kids and grandkids about technology.
Yeah, that's awesome.
Definitely this podcast and yours is the testament that developers love to talk about software.
So if you're trying to connect, that's certainly a good way to do it.
That's right.
Yeah, so I guess one thing I'd like also to throw out there is, you know, maybe like if somebody's out there and they're kind of inspired and they're in this age group, maybe you could create like a Slack channel or a forum or host like some sort of virtual meetup on like Google Hangouts.
Like these communities, you could totally create them, right?
Like if people are feeling hesitant to go to, you know, meet up with maybe a bunch of startup kids, right?
Start your own to talk about hobbies or what you're doing, like some of these hobby projects or something, right?
Yeah, I think that's great.
And especially I think the bar to text-based forums is a little lower.
I mean, I kind of meetups, sorry, virtual meetups where you have to talk on camera, maybe a bit more intimidating.
But there are already quite a few forums, just online communities of older adults talking about.
A lot of it, again, is about health or a lot of it's about health.
But there are already communities where older adults congregate to talk about their hobbies and also Facebook groups and everything.
So if we can start more of those for technology-related things, that'll be great.
But I think this ultimately has to be started by kind of early adopters in that age group and not necessarily by us.
Right, exactly.
Like some 20-year-old going and saying, I got my new startup idea.
Maybe that works, maybe it doesn't.
But it seems like someone from that community doing it would really have the most value.
And I would love for someone like that to start a podcast like yours or mine.
That would be awesome, too.
That actually would really be cool.
So podcasting is definitely one of these options.
If you're out there and you do create one of these, be sure to drop by the episode page and put a comment in the bottom so that people can find it.
I believe this one is talkpython.fm/112.
So, yeah, people can put notes there.
Great.
Yeah, and you can email me or Michael as well.
You should email us as well if you're listening and you're interested in this because I think we'll definitely be happy to talk about this.
Yeah, absolutely.
All right, Philip, thank you so much for once again being on the show.
And I'm looking forward to whatever we'll talk about next time you come back.
All right.
Thanks again, Michael.
This is great.
You bet.
This has been another episode of Talk Python to Me.
Our guest has been Philip Guau, and this episode has been sponsored by Rollbar and Hired.
Rollbar takes the pain out of errors.
They give you the context and insight you need to quickly locate errors that might have otherwise gone unnoticed until your users complain to you, of course.
As Talk Python to Me listeners, you can track a ridiculous number of errors for free.
Just go to rollbar.com slash Talk Python to Me to get started.
Hired wants to help you find your next big thing.
Visit talkpython.fm/Hired to get five or more offers with salary and equity presented right up front and a special listener signing bonus of $600.
Are you or your colleagues trying to learn Python?
Well, be sure to visit training.talkpython.fm.
We now have year-long course bundles and a couple of new classes released just this week.
Have a look around.
I'm sure you'll find a class you'll enjoy.
Be sure to subscribe to the show.
Open your favorite podcatcher and search for Python.
We should be right at the top.
You can also find the iTunes feed at /itunes, Google Play feed at /play, and direct RSS feed at /rss on talkpython.fm.
Our theme music is Developers, Developers, Developers by Corey Smith, who goes by Smix.
Corey just recently started selling his tracks on iTunes, so I recommend you check it out at talkpython.fm/music.
You can browse his tracks he has for sale on iTunes and listen to the full-length version of the theme song.
This is your host, Michael Kennedy.
Thanks so much for listening.
I really appreciate it.
Smix, let's get out of here.
Stating with my voice, there's no norm that I can feel within.
Haven't been sleeping.
I've been using lots of rest.
I'll pass the mic back to who rocked it best.
First developers.
First of all, first of all, first of all...
Thank you.