5 ms·
Teaching programming to my 8 year old is a burden, because everything is in English. Teaching two things at a time is more difficult than it has to be.
by patrickg 11y ago
Teaching programming to my 8 year old is a burden, because everything is in English. Teaching two things at a time is more difficult than it has to be.
- j-pb 11y agoKids learn languages a lot better when they have a use case, so I'd argue that teaching them english at the same time as teaching them programming, is actually beneficial. And let's face it, the vocabulary of programming languages is tiny.
- patrickg 11y agoWhile I agree to the use case / tiny arguments, it doesn't seem to work in practice. I am now using Scratch (https://scratch.mit.edu/ https://scratch.mit.edu/) to teach programming. Much better.
- j-pb 11y agoScratch has the advantage of making the limitations of the computer tangible. The block nature will show you what can be done and what can't. For example, newbies in procedural languages often try things like if(something){loop = while} else {loop=if} loop{print("hi")} and it's not immediately obvious why that isn't valid in text, while in scratch it is. I don't think its the language though that makes things easier.
- lmm 11y ago> if(something){loop = while} else {loop=if} loop{print("hi")} The only reason that wouldn't work is bad language design. In e.g. Smalltalk or TCL it's fine.
- j-pb 11y agoThats not relevant to the point. And even smalltalk wouldn't allow this, without reflection, since method handles aren't really first class objects.
- lmm 11y agoIt is exactly the point: the problem is real, but you don't have to throw the baby out with the bathwater. Instead you can use a simple, homoiconic, but still very "real" programming language for teaching.
- j-pb 11y ago> homoiconic I don't think it means what you think it means.
- lmm 11y agoIt's not strictly what I mean, but in practice there's a close correlation; homoiconic languages naturally lend themselves to metaprogramming and so it's more normal to implement e.g. control flow as ordinary functions in the language (where they might be dedicated syntax in other languages). But yes, I really mean a low-syntax language, and they're not all homoiconic.
- philh 11y agoThis feels like a case of, if we all got hit on the heads with baseball bats every week, people will start to extoll the benefits of getting hit on the head with baseball bats. It builds character! And it's not that painful!
- raverbashing 11y agoReally? I just memorized things. And they'll learn a little bit of English They don't need to know what 'if' means, they just need to learn "you use if to do this" (Now, to be fair the docs were in my native language, that helped a lot)
- giancarlostoro 11y agoA lot of the best programmers I know are foreigners, and they learned English and their respective programming languages side by side. It is a lot more useful to know English to search and ask for programming help in, than to seek help from natives of your language whose skill set may be very minimal and may not be of any use, or worse, they may suggest poor programming practice.
- patrickg 11y agoYou did read that I was talking about an 8 year old kid who is learning the words "clothes" and "red" in school? Still a few years to go to ask for and look for programming help in English.
- giancarlostoro 11y agoA lot of programmers I know start young, maybe not that young though, my apologies. I know people who started at age 12 or so. I started looking at programming maybe at 11 years of age or 10, I didn't get anything till years later, it takes time and practice.