At the risk of getting into a huge amount of bikeshedding:
>I assumed I would be able to teach myself Python.
And there's the quoted author's problem. Python is a great tool if you
already know programming in some other language, but not something you'd want
to learn as your first language, for the reasons given by the author. What
you need is change in both the learner and the tools, from the tool side
something that'll teach you the basics of programming without getting in the
way too much and from the learner side a change in expectations from "I want
to create a full- blown sophisticated GUI app in ten minutes" to "I want to do
something vaguely interesting even if it's text-only". For example if we had
some sort of all-purpose symbolic instruction code specially target at
beginners, call it maybe ASIC-B (one of the variants without line numbers and
gotos), which allows interactive development and didn't require you to learn
half the language and its quirks just to write Hello World, and as the
learning examples simple text-based exercises or games, users could get used
to the *concept* of programming, totally alien stuff like a variable that can
hold different values, and how you can change those values, and use them in
control structures.
Just like Silvanus Thompson's "Calculus Made Easy" (1910), a lot of the learn-
to-program books from the 1980s are significant improvements on anything
published since then.
>I always get anxious when I read about people teaching themselves programming
>outside of best practices.
Once you've mastered the concepts, no matter what the language is, you can
then jump to whatever trendy languages and tools you need in practice. In
particular, teaching via "best practices" for at least the last twenty years
has equated to "force the fad language of the month down their throats even if
it's nearly impossible to do so", so it could be argued that *not* "learning
via best practice" is the way to go.
Peter.
Teaching via "best practices" for at least the last twenty years
has equated to "force the fad language of the month down their throats even if
it's nearly impossible to do so", so it could be argued that *not* "learning
via best practice" is the way to go.
--
You received this message because you are subscribed to the Google Groups "PPIG Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ppig-discuss...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/ppig-discuss/CAJ7XQb5wE6vPRAM4ZVXb2zsrZOMcB0gzC_evHQoGtzhrXm6E7A%40mail.gmail.com.
I've found in my work that there is no such thing as a genuinely usable language, particularly for beginners.
What I have also found is that the choice of language matters less than the motivation. If kids (and adults!) see the point of learning to program, and have a reason to want to get their code to work, they will put up with a lot (they shouldn't have to put up with as much as they do, but that's another battle!). I made the shift as an academic to problems that the students actually cared about because they solved real problems, then as a secondary teacher I shifted to teaching kids programming in the context of data science problems that enable them to solve real problems in their community. It massively increases their motivation, and gives them a reason to want to solve the problem. We've spent a lot of time, it seems to me, trying to make programming fun, when we'd have been better off making programming *meaningful*. That's the core of my work now. I've even written a book about it. :) (Check out Raising Heretics: Teaching Kids to Change the World, or have a rummage through the blog at adsei.org if you want to know more.)
Linda McIver wrote:I've found in my work that there is no such thing as a genuinely usable language, particularly for beginners.What I have also found is that the choice of language matters less than the motivation. If kids (and adults!) see the point of learning to program, and have a reason to want to get their code to work, they will put up with a lot (they shouldn't have to put up with as much as they do, but that's another battle!). I made the shift as an academic to problems that the students actually cared about because they solved real problems, then as a secondary teacher I shifted to teaching kids programming in the context of data science problems that enable them to solve real problems in their community. It massively increases their motivation, and gives them a reason to want to solve the problem. We've spent a lot of time, it seems to me, trying to make programming fun, when we'd have been better off making programming *meaningful*. That's the core of my work now. I've even written a book about it. :) (Check out Raising Heretics: Teaching Kids to Change the World, or have a rummage through the blog at adsei.org if you want to know more.)Ah, this is brilliantly said. I couldn’t agree more.
I absolutely rage against non-sensical examples for programs as a form of teaching.The teaching of maths, physics, chemistry and computing really need problems to solve that are relevant to the people being taught.
I gave up on a JavaScript evening class, firstly because of the initial dreadful "Hello World" example, but because the next example program was completely non-sensical and would never be approached in the real world. While I was pedantically trying to make sense of the example, the person giving the class had moved on and I was behind. I suspect that this might happen in school or college teaching, that people lose (or don’t gain) motivation or get left behind because of non-sensical programming examples/problems - it would be interesting to study.
It’s like 3D printing. For ages, people were saying “what the heck is the point?”But, imagine waving your hands over the first telephone and telling people to look at the contraption and expect them to understand its usefulness and applications.3D printing is only interesting and motivating when you have specific problems to solve that are meaningful to you.Similarly, programming languages might as well just be contraptions. The carrot is the unsolved problem. A brand new language is aeffectively a stick.
I’ll go hunt for your book, Linda!
It’s really easy to imagine that there’s an easy solution — like motivating examples — that will solve the decades-old problem of Why Don’t Most People Easily Learn To Program. There really isn’t. Just as there are no known solutions to Why Don’t More Children Understand Mathematics.We teachers have really tried the motivation issue, in lots of directions. But try again, why not? Just beware the Hawthorne Effect, and take no anecdotal evidence. Particularly your own, or mine.Richard BornatSent from my iPhoneOn 23 Jan 2022, at 22:52, Linda McIver <linda....@gmail.com> wrote:
--
You received this message because you are subscribed to the Google Groups "PPIG Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ppig-discuss...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/ppig-discuss/CALnTjS4Z0Fobk8ivqx%3DtfSjB5grHp1t5fuQxmYH%2BD6JZOh4z0Q%40mail.gmail.com.
On 23 Jan 2022, at 22:52, Linda McIver <linda....@gmail.com> wrote:
--
--
You received this message because you are subscribed to the Google Groups "PPIG Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ppig-discuss...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/ppig-discuss/CALnTjS4Z0Fobk8ivqx%3DtfSjB5grHp1t5fuQxmYH%2BD6JZOh4z0Q%40mail.gmail.com.
>What do you reckon?
My argument was more aimed at the "how do we get people interested in
programming" aspect of things, that if people are so turned off by their first
experience with programming then you've already lost them at step 0 and will
never get a chance to teach them good programming style at step 3, or 5, or
27. So get them hooked on whatever works at step 0 ("here kid, have some
drugs!"), and then once they've seen what's possible you can go for the high-
hurdle steps of working with languages like Python, Java, and C++, and
programming style.
Another thing with articles like this is that they tend to focus on specific
demographic X and then wonder why X doesn't feature strongly in programmer
circles. There are many, many, many values of X for which you can do this.
What about turning 180 degrees and looking in the opposite direction, what
demographic *does* feature strongly in programmer circles? We've actually got
quite a bit of data on this, and unless it's changed in recent years the group
that's drawn to programming for reasons other than "that's where the money is"
has been INTP/INTJs (yeah, I know, MBTI shows how old this data is), and
historically white male INTP/INTJs although that may also have changed over
time.
Next step is, why is that particular demographic drawn to programming? And if
a bunch of natural born geeks want to get into this and non-natural-born-geeks
don't, why not leave them to it?
Peter.