4 ms·
Thanks, Rachel. A Vic-20 was my first, too, although it and its manuals have been lost to time and cross-country moves. I got a Commodore 64 around the same ti
by thaumaturgy 9y ago
Thanks, Rachel. A Vic-20 was my first, too, although it and its manuals have been lost to time and cross-country moves.
I got a Commodore 64 around the same time and, for a while, had a "cool" set up with a TV, the two Commodores, an Atari 2600, and A/B switches for managing all the connections. I had a tape drive for the Commodores too, but never could figure out how to use it (I was young).
I would take trips to the library and pick up secondhand computing magazines that had code listings in the back, in BASIC, and then carefully copy them in to one of the computers.
I didn't really grasp everything about it all, but I understood flow control and loops and basic logic before about 8 or so.
I really wish there was a similar development environment now for beginners. Everything seems to either dumb things down too far -- confusing drag-and-drop UIs and so on -- or introduce highly abstract concepts way too early (Javascript...). I think a big part of the success of Arduino was this same "learn by tinkering" environment.
- tyingq 9y agoMaybe http://microbit.org http://microbit.org ?
- jecel 9y agoThe goal of block based languages like Scratch is to allow beginners to be able to worry about logical errors without wasting nearly all of their time on syntax errors instead. Sinclair was able to get the same effect on his machines with his multi-mode cursor and one Basic keyword per key (of course, the horrible membrane keyboards he used made this the only reasonable option). The main problem with block based languages is that short code fragments take up the whole screen. This keeps people from ever going beyond trivial initial examples.
- thaumaturgy 9y agoI think a better approach to reducing syntactical complexity is simpler language. In traditional basic, a for loop looks like: for i = 1 to 100 print i next i The syntax here is very nearly as simple as possible. There are no parentheses, no semicolons, no braces or brackets; i is not declared ahead of time; indentation isn't important. Every new programming language is developed with its own syntactic dressings for ever-greater levels of abstraction. More experienced programmers want to see lambdas and continuations and parallelism and design patterns and so on, and these concepts are extraordinarily difficult to teach to beginners without also introducing advanced math. We forget how difficult it is to grasp these abstractions for the first time; we eat our young. I don't like graphical languages because they aren't a good stepping stone towards "real" programming. They are too limited, too verbose, too awkward, and too slow to build programs with. We assume that we can't make new languages that are resistant to syntax errors. But once upon a time, we did. (Despite all its many other limitations, I don't think I ever had a single syntax error in COBOL.)