Hacker News new | ask | show | jobs
by smogcutter 2982 days ago
I think it's an important signal that in every thread like this rather than say "wow, I wish I had something like grasshopper when I was a kid", we start waxing nostalgic about QBASIC. (I'm right there with you btw).

A lot of us grew up learning with tools, not toys (except you, logowriter, you're cool). Then we went and made the tools totally unapproachable. So now kids get the opposite approach: toys, not tools.

Teaching software like grasshopper is an experiment, and we're about to see the results. The first version of Scratch came out in 2003. Obviously this is super fuzzy, but for the sake of argument call 2003 the border between the QBASIC/getting a Sam's teach yourself C book at B&N era and the Scratch era. So a hypothetical 8 year old who started learning with scratch in 2003 is now 23 years old. The kids who grew up on this stuff are about to start showing up in adult life, and it'll be interesting to see how they turn out.

7 comments

FYI, the first public release of Scratch was in 2007 [1], so that's really a more accurate border. I'm aware of this because I started using Scratch in 2008. I'm a computer science student in college now, and I've had a couple of internships. From my experience, Scratch was a great start. I learned a lot from it, and I really credit it with getting me into the field, although I likely would have irregardless of Scratch. Either way, I don't think that it necessarily will be bad for toys to replace tools.

[1]: https://web.archive.org/web/20070120041500/http://scratch.mi...

That’s really encouraging to hear. Thanks for correcting the date, too.

Something I’ve been thinking about since posting: imagine yourself in a sort of Victorian/steampunk world that runs on gears etc. What would you give young people to start getting them literate in the machines?

I figure it would be a toy: something like a meccano set. You’d want composable, easily understood parts that are simple to connect, and interact in predictable ways.

What you wouldn’t do is drop the kids off at a half-working tool and die shop and tell them to go make some gears. Maybe that’s qbasic.

> What would you give young people to start getting them literate in the machines?

Erector set[1]. It's a toy, but not super obvious how the parts are supposed to work together. (unless now they give advanced instructions for constructing things..)

1. https://en.wikipedia.org/wiki/Erector_Set

Yup, same thing as meccano. Now that I think about it I had an erector set growing up, beats me why meccano came to mind first. I missed out on lego robotics, but those look really cool too.
At 15 I sat with a book about QBASIC and got to a certain point, got stuck, and had nobody around me to ask for help and no idea what to do. I decided I wasn't smart enough for programming and stuck to basic html and CSS for years and years. I avoided CS in college. I turned out ok, but: I can code! I was wrong when I gave up, but I didn't know that because the resources weren't approachable enough for me. And maybe my determination and self-belief wasn't as strong back then. I wanted to be a game developer really badly growing up. And then I found a book that taught me I couldn't program.

I like the new stuff better!

If you get stuck following a book or a tutorial it's warranted to send an letter or e-mail to the author telling them where you got stuck. They will be happy to know where their book can be improved.
This is very true once you start producing content for people yourself (if you ever do), but it's probably something that almost no one reading a book considers doing.
A lot of us also grew up with tools/toys like The Games Factory, which got us excited and left us wanting more. And then we got into QBasic (which I sure do feel nostalgic about) and Borland C++ (which, on Windows 3.1, I really do not feel nostalgic about :P ) and MS Visual C++ (Visual Studio 6 was awesome!)
This read like an autobiography for myself. Wow. Reading this was a trip down memory lane. Thank you :).
I'm more worried about the tablet/phone generation. This was when our machines fundamentally shifted to toys not tools. We lost the input methods necessary for tools and things like the file system are abstracted away. We'll have a generation of programmers that have never seen a command prompt and no concept of what a file is.

My nephews (10 & 12) are learning programming at school for which they both had to have an iPad for some shitty programming interface. They didn't learn anything about logic because the animated graphics were too distracting, they learned how to manipulate sliders to adjust things like speed and that's about it.

This would make a great AskHN.

It would be interesting to know if anyone on HN in their early 20s or lower were first introduced to software development via scratch or some other means.

I'm 21, and have a fair bit of programming experience now (did some internships, have a job, know Python/C++ well and JavaScript/Go/Ruby/Lua reasonably well) and I learned to program using Scratch.

I had a lot of fun making games with Scratch, and I think it taught me a lot about logic and gave me a great way to express myself. I definitely got way more into the weeds about it than everyone around me, but one of my favorite things was opening up a game I admired on their website and trying to figure out how it works. This skill has definitely transferred into my broader programming career.

I have really high praise for it! The only thing looking back I wish we had was a way to export it to a .exe self-contained runtime to share with friends. I just used to pull my friends over at lunch.

I'm 24, so maybe a little old, but I was first introduce to programming with Game Maker. Later I did a little bit of Flash if you count that, and then moved onto Visual Basic.NET when I did 'Software Development' at high school.

For a long time (since mid-primary school) I had been toying with HTML, mainly from a book from the local library, and by just looking at the source code of websites that interested me.

I think it's clear that 'toys' like this, and like Game Maker, that make programming simple and user-friendly have been around for a long time, and don't necessarily stop people from learning more advanced concepts or languages, except if they lose interest. But even if they do, hoefully they will have packed up some skills that they can apply to other endeavours.

Here are some thoughts with no real point.

For me (26), part of what kept me interested in learning to program was the sense that I was working through something convoluted and solving some personal problem. Overcoming some sort of adversity. In this case, it was writing hodgepodge pascal to automate Runescape and Neopets, then also Flash for fun and profit.

I now have friends that are interested in the concept of programming, but have no application for it. I'm happy to aid in their journey, but when they ask me "What should I program?" I have no idea what to tell them. "Pick something arbitrary" I say, only to hear "What's that mean?". I feel like programming is something most people either come to organically or don't follow though with, regardless of challenge involved.

If we are to think about what would make a successful programming class, would it look more like math such that "Today we'll learn math, because math will totes be useful later for some reason" or would it look like "Make a computer do something interesting or useful with minimal human interaction".

+1 for Game Maker, what an awesome educational tool. You could start with building blocks, Scratch style, then move over to code when you needed a little more power -- with a 1-1 relationship between lines of code and the blocks (IIRC), and the ability to run that code as "just another block". A wonderful gateway to the real stuff.
I'm 23. Unlike many people here, I started programming only after graduating from high school and before going to college.

I always thought programming was cool but was never able to learn it (because of I bought some bad intro books to programming). Then one day I found out about the book C++ Primer Plus, it was wonderful :)

My first attempt at a real program was a console based repository management program for my dad's apparel company. Considering my dad didn't even know how to send email, he probably tried very hard to give me a good feedback. I didn't even know the existence of database, and just stored the data in binary files (I thought it was secure that way)

Funny thing is that after 2 years in college, I learned some web, database related stuff and developed the second version using Tomcat, Spring and MySQL. My dad was again forced to use it :)

23. First programming experience was with a C++ book my dad gave me when I was 10. Didn't learn too much from that. When I was around 12 in school we used Logo (MicroWorlds) in technology class. I had a lot of fun with that. I finally fully got into programming with C# when Microsoft XNA came out, was around 14 at the time.
22 and lazy, so I'll just link to a previous comment I wrote on how I was introduced to programming: https://news.ycombinator.com/item?id=16472517

Tl;dr: playing with tools, not toys.

At my school, we teach Scratch in 5th grade (US, age 10) and I teach Python in 6th grade. I think Scratch and the like are good starts, so I'm glad to see more offerings. Even so, stepping up to Python is a big step from the blocks languages.

Last week I started the 6th graders on MicroPython on the BBC micro:bit. So far it is going well, and I think it will capture some of the aspects of the QBASIC on DOS experience. Today I will show them how to do images on the 5x5 LED matrix, which will be much simpler than trying to do graphics on Windows. Even so, they will still learn about X-Y coordinates and pixel brightness levels.

Qbasic was never quite the professionals' system like C and Assembly was, but looking back, I was at least using the same system that non-technical managers who regretted firing the developers were clumsily banging out solutions with.