I had a similar although not as tragic story of my own. My parents were poor (dad was in the USAF) so we couldn't get a Commodore 64 or Apply IIe/IIc like everyone else had. We got a Commodore Plus/4 because they were literally giving them away. Since I couldn't buy any games for it and there was hardly any software available, I taught myself BASIC and made my own games. Fast-forward 30 years (geez I'm getting old) and now I'm fairly successful (in my own mind) as a software engineer at a Fortune 100 company. I credit being deprived by my parents for becoming interested in computers like I am today.
Ha, I had a similar situation. I grew up with a trash-80 well after it was cool in the early 1990s! Though I did get to use an Apple IIe around that time too which was awesome (did not realize how old these computers were, just was so excited to write command line BASIC).
My first computer was a Laser 286 and I marveled at the power it had. Even the turbo button from 8->12 Mhz of course :)
Oh, and the video card that took 4 AA batteries to run...
I had a Laser computer with the same specs. Even slowed down to 8Mhz, some games that were meant for an XT weren't playable. I popped the cpu out of the socket and I've had it on my key chain since 1995.
I grew up with a 386SX , newer than yours but again very outdated when I got it.
I remember going to downtown in bus with my brother to a game store, watching amazing games in catalogs and then going back to home with 40 floppy disks just to figure out that number 38 was broken and after lot of trips to the game store, that the game didn't work on my hardware.
I learned programming much later in a newer hardware, but I learned about files, directories, etc in this machine.
To be more precise, it was common with motherboards that used the MC146818 RTC chip used in the original PC/AT. The four AAs provided a total of 6V of power.
I wish I could upvote this more times. My parents also didn't have a lot and I spent 3-4 years using a 286. I cut my teeth writing code and optimizing like crazy because that's all I had. Couldn't just go get more memory or a better CPU.
20 years later I guarantee you my code reflects the ingrained thinking from those early days.
Different generation, but I used a Pentium 2 Acer laptop, with 76Mb of RAM and a 4Gb of HDD, from 1999 through til 2005, when I'd finally cobbled together enough spare parts from other people for free to build my own AMD-based desktop.
It's what made me learn Linux, as it was so low-spec that Windows XP wouldn't run correctly on it. Slax was an excellent distribution, a Slackware-based Live CD that I forced to boot from the HDD despite it not really supporting it then. Prior to that I ran Damn Small Linux, and Windows 2000. No gaming for me, so I learned to build software instead!
Similar story, although I wouldn't call us "poor" for not being able to afford such things. My dad however managed to get his hands on an obscure failed home computer called COMX 35[1]. Not much software, BASIC, same story.
taught myself qbasic using the helpfile. There were tons of examples on how to draw and how if statements worked. Progress was really slow for the first month or so. I was like a monkey trying to mimic what they saw. Didn't have internet at first so sometimes at school i would go to the library during lunch and attempt to download example programs onto a floppy disk. This was around 2000.
The QBasic help system was really, really good and I don't think it gets enough love. I was seven years old when I really got started with it and it was perfectly comprehensible and super helpful.
I think the limitations are not main reason why these 8-bit computers produced many good programmers. It's the fact that they booted straight to BASIC. In many cases, that was all you had. That invited people to start experimenting.
My parents were also poor, I learned BASIC without having access to a computer except for one hour a week at school, I didn't have my own computer until many years later, I was fixing other people's computers to earn money to get components for my computer, I didn't have access to internet until around 2000, so I was learning from outdated books. I sometimes wonder what would happen if I didn't have those limitations.
Anyway, Raspberry Pi is definitely the closest thing to the experience now. You boot up the default image and you have access to a lot of programming tools. You even get to peek/poke memory to access the GPIO pins, but you have to do it as root these days. :)
"I think the limitations are not main reason why these 8-bit computers produced many good programmers. It's the fact that they booted straight to BASIC. In many cases, that was all you had. That invited people to start experimenting."
More than half the kids I knew who had computers growing up just used them to play games - there was no experimenting with BASIC or anything else. It was a games console with a keyboard - that was it.
OF those who did program, I think many were forced in to getting 'better' because of the limitations. You generally couldn't say "just add another meg of ram to run this" - there really was only one configuration in many cases - you had to think of interesting ways to compact more info in to a program (compression, page out to disk, etc).
Yes, having a programming environment as the first thing you're greeted with probably did get many people involved, but the limitations also produced a mindset amongst many devs of learning how to do more with less.
We're developing a BASIC interpreter called retRUNner that's (initially) Applesoft compatible, but will have modern graphics and sound capabilities so users (kids, mostly) will be able to play games like Woz's original Breakout (we have a collection of over 400 listings we'll be shipping with it) and upgrade them to 3D, add art, music, sound effects and so on.
So we're teaching a bit of history along with some coding skills. Down the road we're going to add additional 'dialects' such as Apple LOGO, and Atari, Sinclair and Commodore BASICs, but the Apple II version will be out soon -- I'll be sure to mention it on here when we release it =)
for bonus points support all the same PEEKs and POKEs and CALLs that Applesoft BASIC did on the II series. even if it's not strictly part of the BASIC itself, but the integration between it and the hardware/BIOS, it would be nice. technically might be required to correctly run lots of the BASIC programs from that era. I know most of my own relied on them for certain effects.
Why not. This is pretty much my game plan if/when I have kids: Start them off with a raspberry pi or similar, a keyboard and a monitor, then gradually explore with them and add more gizmos and software together. Some of my fondest memories as a child was playing around on my father's old IBM mainframe workstation computer with two 5 1/5 inch floppies as a three to five year old. At that age I really didn't need much, seeing something happen on a screen after some keypresses and some analog sounds coming from the floppy drive was enough magic for me. I'm thinking that giving a child an iPad at that age could be really damaging - there's just no sense of wonder and accomplishment outside the prepared paths anymore.
I'm doing pretty much that right now with my 5-year-old daughter with a raspberry pi. She can currently boot it up and check her email by herself (using claws-mail). One of the big things that I think we can do today that wasn't really available when I was a kid is robotics. For a couple hundred bucks and some time invested, you can make a robot platform for them to play with and get them playing with super low-level stuff without any kind of pretense (limiting her to just the r-pi with a BASIC repl would be pretty artificial in today's world, but the state of hobby robotics now is much like the state of computing was 25 years ago). I'm working on a robot repl right now so that she can get the instant feedback like we had with BASIC, but it's slow going for lack of time.
The thing I've found interesting is how she goes back and forth between the r-pi and the iPhone pretty seamlessly. I don't think she realizes that they're fundamentally similar devices. To her the iPhone is just a black box with some fun games on it, but the r-pi is a lot more like an adventure.
This is amazing what you're doing for her. I wish someone did something like that for me but as a girl I was usually discouraged from pursuing science, computers, physics or anything like that. I am sure she will appreciate it all when she's older.
That doesn't add up to me. The children of today will almost surely look back at the iPad the same way you look back at your dad's IBM mainframe and with the same nostalgia as others on this thread. It'll seem quite primitive compared to the contemporary technology of their adulthood.
Here's the big difference: You can't 'play' around with them the same way, they're not built to program on or change / break things significantly. It's not an empowering device.
I bought a kano/raspberry kit for my 5yr old. We explore the terminal, python interpreter, minecraft etc and he is totally pumped, with the ipad lying idly just by his side. What really clicked for him was the fact that he now had a real computer that did stuff like dad's and calls himself a 'real hacker'.
I still see tight hardware constraints now. Until '10 I was working at a company that made flash CF cards which used 8-bit processors. 32K of SRAM and 64K of code space with bank switching. Every clock cycled mattered. Hand coded division operations. 32-bit integers are a luxury. Even wrote some self modifying code for an inner loop that boosted performance by 25%. Nowadays that company is using ARM processors but you still hit constraints (usually memory) not seen on PCs and servers.
as I've gotten older I've increasingly wondered if I should make the jump (back, technically) to low-level programming. working on those highly constrained devices, every cycle matters, every bit, every watt, etc. because that's where I started as a kid and think it would give me a market advantage over the younger generation who've grown up with supercomputers in their pockets, a dozen high-level languages to choose from, frameworks for everything, tutorials and videos for everything, and not really having to worry about performance or resource usage like "we" used to have to do just to make anything work at all.
Yeah low-level programming was why I have been working on firmware for a long time. But working on truly resource constrained systems can get old. Instead of really solving the problem at hand, you have to work on quirks and idiosyncrasies. I'm glad that we are now working on 32-bit processors.
My not-so-tragic story of programming in BASIC as a kid was on a Coleco Adam. I would pick up 1980's computer books/magazines from the library with BASIC code in them that I would type in. Some weren't meant for the version of BASIC the Coleco had and wouldn't run without modifications. Getting them to run was half the fun.
The sound of the high speed tape drive when booting up (or playing Buck Rogers) still remains fresh in my mind. That, and the daisy wheel printer's rhythmic whir-rat-tat-tat-chunk-whine whenever I printed out a letter asking for another tape drive.
I also had my first generative music experience with the Adam - POKEing numbers into various registers would trigger the waveform generators and if combined with various patterns/functions (sin, cos, and the like) would make some cool sequences.
Different generation. Couldn't afford a computer until 2008. Got a celeron clocked at 1.2 Ghz with a 128mb physical memory and 20Gb HDD running a win98. This was when everybody in the neighbourhood was playing Assasin's Creed in their core2duo.
If only my machine ran all those amazing games, I wouldn't have been a coder now ;-)
Ah, the "joy" of loading the assembler from the the cassette tape recorder from one tape, then switching the tape to load the code I work with, then changing it and then saving it on the tape before the run it since it will be lost if it crashes or just enters the loop. Then I've added the NMI hardware which allowed me to break the loop and keep the upper piece of the memory. And like some commenters also mention, that computer also didn't have the "real" keys.
But don't get me started on using the switches to input the single bits over the console on the even older computer.
Seems like a lot of us have a somewhat similar story. I grew up in the countryside without a tv. When I was between 10 and 13 we convinced our parents to let us buy a used c64. Since we had no tv we had to get a monitor as well which took another few month.
My career possibly started there but I was already infected by a text adventure that a grown up relative had made/adapted. (Or more specifically I was infected by the idea that you could write code and have the computer do stuff for you.)
I'm really shocked to see how many people were inspired by text adventure games. My story is similar to the others here (posted the short version). Scott Adams Pirate Adventure FTW!
I think the Dragon 32 really did only have 32KB RAM, but yeah, the full 32KB wasn't typically accessible. Part of it went to video RAM, and part of it went elsewhere, so quite a bit less was available to use by default.
However, there was some hackery you could do to get close to usable 32KB for your program, although I never did that. My tape drive never worked properly, so my programs were naturally very short…
When I graduated to a 286 (in the Pentium era), that was a pretty special moment. It had a 42MB HD!
Just poking around in the video chip would enable the second bank of 32K RAM for writing. Then copying the basic ROM by reading the ROM and writing the RAM would make it possible to switch to the next stage, which was to enable the second bank of RAM for reading and writing.
After that a relocation routine took care of moving the ROM code to the upper portion of the RAM which left you with 48K of usable RAM in BASIC and 64K - the video mode you were using for assembler!
I had a similar experience, but what really drove me nuts was the selection of ridiculously good and expensive computers they always had in the PX. Who could afford one of those things on military pay?