5 ms·
There are tons of children who could learn to program, could even teach themselves, but who are unaware that the option exists. This just isn't true, there are
by mattbee 4y ago
There are tons of children who could learn to program, could even teach themselves, but who are unaware that the option exists.
This just isn't true, there are a billion ways into programming that there weren't in the 80s and 90s, and computers are cheaper too. Sure you don't get to tinker with your OS as casually but the scope of "learner" programming environments is so much greater. Even a keyboard isn't a necessity - look at the results from Dreams on the PS4. And Scratch is ubiquitous in (UK) schools, my son picked it up without any prompt from me.
It might just feel like kids don't want to learn programming because most people don't want to learn, but most people (you know) are now using computers compared to the 90s. So proportionally that is fewer computer users becoming programmers, even if numbers are going up!
- zozbot234 4y agoThe point is that these computers don't come with development tools installed by default and made available in the default environment. They don't provide any equivalent to the BASIC interpreters of old, or to the REPL of a Lisp Machine workstation. You can install e.g. Linux distributions that do provide the means to code and rebuild nearly any part of the installed system, but these are very much the exception not the rule. > And Scratch is ubiquitous in (UK) schools, my son picked it up without any prompt from me. Scratch is a huge downgrade from the likes of LOGO (a real LISP implementation, with a few syntactic conveniences to help novices) and even BASIC on the BBC Micro, which used to be taught in UK schools.
- ghaff 4y ago>The point is that these computers don't come with development tools installed by default and made available in the default environment. I mean, Linux aside that's technically true. But, you got a BASIC interpreter that was pretty barebones even for the mid-80s in a PC of that era. And Turbo Pascal was a revelation when it came out because other "real" programming tools cost hundreds of dollars. But, today, for free, you can install any number of advanced programming languages and IDEs in about 10 minutes. (And, on a Mac, Python at least comes pre-installed.)
- TheOtherHobbes 4y agoOn modern machines those are a hard to find afterthought from the POV of most users. Even if you know what you're doing, getting started with installing dev tools from the command line is non-trivial. With an 8-bit micro, BASIC was the point and it Just Worked. These systems were toys sold with a toy language, but it was a toy language that had enough depth to teach useful fundamentals. More, there was an ecosystem of other toy users and support sources and motivators - books, magazines, game entrepreneurs, TV shows, even just the novelty factor of having an actual computer at home - that made the 8-bit era in the UK a cultural scene. There's no exactly equivalent cultural scene today. You need a fair level of experience to get started with modern languages, and there are no mainstream cultural drivers pushing you to do it. (There are niche drivers but they're only effective after you find them.) You do get some motivators with entry-level HTML and web design, but they're immediately aimed at careers and professional development. What's missing today is the combination of a toy environment which is fairly simple but can still be used for non-trivial projects, a mainstream non-niche non-professional cultural scene, and a sense of fun, play, and exploration which provides the curious with motivation. The closest approximations are toy environments like Minecraft. They're doing a reasonable job and there's a scene of sorts around them, but it's not quite on the same scale as the 80s systems.
- jll29 4y agoI had an interesting debate with a respected colleague at a British university about this once. My view was that teaching kids should be in a way that is "real", e.g. typing in Python code and not "toy" (e.g. Scratch) so that - they can get a feel for how real-life programmers work; - they can incrementally refine and build on what they know until they have picked up a very valuable (in terms of job market) skill I agree Scratch is sufficient to understand loops etc. but it doesn't "scale", i.e. at some point you need to switch over from Scratch to an "grown-up" language.
- zozbot234 4y agoPython is actually a pretty bad language for novice coders, the programming model is way too complicated and hard to get a feel for. I'm not sure how people can even manage to "learn to code" via Python alone.
- antod 4y agoI remember reading "Learning Python" in the 1.5 days and then a bit later properly using Python the 2.0 days. It seemed a lot simpler back then, and seemed like a clean powerful successor to the 8bit BASICs I started with. And nothing else at the time seemed to capture that clean easy on ramp to coding feeling, but still allowing you to go much further than eg an 8bit BASIC. Presumably if you limited which parts of the now massive 3.10 you exposed to newbies, you could still get the same result? The very basics haven't changed too much since 20+ yrs ago. I suppose the trouble is that any web searching is going send newbies off the tracks into advanced topics pretty quickly now, but that is still likely in just about any language.
- rodgerd 4y agoThe problem is that any conversation around "learning Python" will very quickly disappear into strong opinions on setting up environments, the right way to structure everything, what is and isn't Pythonic, and so on. Shielding beginners from those kind of conversations seems to get harder and harder over time.
- rwmj 4y agoI think it was the immediacy combined with the lack of choice. The ZX81 "booted" into BASIC (in about 2 seconds), and there was nothing else to do. You programmed it or you asked your mum to take you to WHSmiths to spend more money than you had on a game which would take 15+ minutes to load from tape. I wasn't interested in games so I programmed instead.
- redwall_hp 4y agoIt's funny...because this is exactly me. When I was a kid circa 2000, I learned to program because I found one of these exact Usborne books at the local library. The idea that people who didn't work for Microsoft could develop software hadn't exactly occurred to me until I found that book and learned the basics. Of course, I didn't have a computer with a BASIC interpreter to run the listings, so I searched for more books and ended up porting the BASIC listings to JavaScript and running them in Internet Explorer 4. That also got me into learning how to build web pages by hand. There are more resources than ever if you already want to learn to program, but it's still hard to cross that threshold from using computers to realizing that learning to program them is something approachable. Microsoft and Apple have both always promoted this sort of learned helplessness with their users, treating the GUI like a tangible thing and not providing obvious tools that encourage programming.
- zozbot234 4y agoMicrosoft Windows actually shipped with a BASIC interpreter in the IE4 days. And Apple had Hypercard.
- cubano 4y agoOh the horror stories I have using that built in MS-BASIC without an UPS and living in Central Florida with all the lightning... I must have spent half the developement time of my early programs simply retyping in stuff that I had done the day before but lost without saving it.
- musicale 4y ago> Microsoft and Apple have both always promoted this sort of learned helplessness with their users, treating the GUI like a tangible thing and not providing obvious tools that encourage programming It's not exactly helplessness, since programming is no longer required to do the many things that you can do with the millions of apps and web sites that are at your fingertips, and you no longer need to type in (and probably debug) a long program just to play a game. And Microsoft has actually provided BASIC for ~45 years (currently Visual Basic .NET and VBscript, as well as the Small Basic learning language), while Apple provides Swift Playgrounds (a nice onramp to Swift that can also create full apps.) And every web browser includes JavaScript. But as you note the key part is obvious tools that encourage programming. I too would like to see platform owners make programming onramps more obvious and easily accessible. A good start might be adding a CODE button to web browsers to bring up a user-friendly JavaScript programming environment. Another idea might be providing an installation option to include tutorial and professional programming environments. Another might be for the Xbox (and Game Pass) to include game creation tools (I also like Dreams for the PlayStation but it hasn't really caught on.) At the end of the day though I wouldn't expect it things to change too much because programming requires a lot of effort for minimal reward compared to visiting a web site or downloading a new app or game, while commercial apps and games have largely moved beyond what a single person can create.
- klodolph 4y ago>> There are tons of children who could learn to program, could even teach themselves, but who are unaware that the option exists. > This just isn't true, [...] Let me get this straight... you're saying that children are generally aware that they can learn to program, and that children who aren't aware of these opportunities are rare or something? I must be misunderstanding something here, because that sounds like complete horseshit to me. I have years of experience teaching children how to program, and the vast majority show up unaware that learning to program is something within their reach.