top | item 8747053

“Was isolated from 1999 to 2006 with a 486. Built my own late 80s OS”

1284 points| shalmanese | 11 years ago |imgur.com | reply

265 comments

order
[+] stuff4ben|11 years ago|reply
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.
[+] icelancer|11 years ago|reply
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...

[+] JeremyMorgan|11 years ago|reply
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.

[+] heironimus|11 years ago|reply
If I could have afforded a floppy drive for my C64, I would have been a great Loderunner player rather than a coder.
[+] girvo|11 years ago|reply
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!

[+] santacluster|11 years ago|reply
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.

[1] http://en.wikipedia.org/wiki/Comx-35

[+] goalieca|11 years ago|reply
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.
[+] prezjordan|11 years ago|reply
So amazing. I wonder if it's possible to manufacture that sort of limitation nowadays. Not sure if I would even want to!
[+] decasteve|11 years ago|reply
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 Coleco Adam: https://en.wikipedia.org/wiki/Coleco_Adam

[+] bjoe_lewis|11 years ago|reply
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 ;-)

[+] acqq|11 years ago|reply
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.

[+] reitanqild|11 years ago|reply
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.)

[+] dmpk2k|11 years ago|reply
Likewise here. In my case it was a Dragon 32 in the 486 era.
[+] thrownaway2424|11 years ago|reply
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?
[+] percept|11 years ago|reply
At least it had real keys...
[+] phpnode|11 years ago|reply
Something about this story does not sound quite right to me. If I were essentially locked up in that scenario, I would at least be confident of the names of the 3 games which were installed, since they'd inevitably be played to death, regardless of how good they were. Also there's this http://www.reddit.com/r/australia/comments/2p63rv/australian...
[+] orangecomputer|11 years ago|reply
OP here; Technically, I had already played them to death over the 1990s. Dad used to bring home multiple shareware games: Xargon, Jill of the Jungle, Wacky Wheels, Skunny Kart, you name it. I played them until I became tired of them, although I never got sick of Rise of the Triad.

I had a few floppy disks with these titles on them, but again, having played them for so long, I chose to start my own little endeavour to create games instead of playing them, so I eventually removed everything but ROTT for as much disk space as I could get (being my first computer and such, I believed it might've helped performance, was still learning at this point). When I wasn't writing crappy interactive textventures, I was writing up stories in general in EDIT. My reasoning was also that when my stepdad would come into the room, he could never say I was "off playing those bloody games" again in an argument, and that I could argue that I was studying the books I'd picked up from the library.

I did play a lot of ROTT in my spare time. It was an early copy (1.0) which had some features removed from the final game such as alternatively coloured pushpillars and the such, but as my system had no speakers, the pc speaker became more and more annoying over time as well. That much I definitely remember, but since we went through so many shareware games in the 1990s, I don't remember what was ultimately on the system when it was given to me (nor when it was thrown away). I would give everything I owned to get it back, but unless someone chose to salvage and restore it, that system is long gone and crushed up.

[+] coldtea|11 years ago|reply
>If I were essentially locked up in that scenario, I would at least be confident of the names of the 3 games which were installed, since they'd inevitably be played to death, regardless of how good they were. Also there's this

You'd be surprised what happens after 10 years or so. There are games I played as a kid countless times, in arcardes and on my PC, and yet I coulnd't remember their titles at all when I was at university age and such.

I only rediscovered some of their titles with luck and queries on Google later (in my 30's).

E.g.:

"game where a frog tries to cross the road" was apparently Frogger.

"game where you have a crosshair and hit people" is Prohibition.

"pc game where a cat jumps in an neighborhood" is Alley Cat, etc.

[+] qnr|11 years ago|reply
Also, "Osborne 486, with about 64k of RAM if memory serves me correctly. "

First, a 486 with 64K RAM is ridiculous as they typically had multiple megabytes of memory.

Second, he worked with that PC for 7 years and isn't quite confident of how much memory it had? This doesn't sound quite right either. I can clearly remember the amounts of RAM my first few PCs had, starting from 1999.

[+] sillysaurus3|11 years ago|reply
People who get big projects done don't really play lots of games. Carmack, for example, has said he doesn't actually play any.

It's strange how consistently true this has been. I wonder how many games Notch plays, especially during his prime when he was making Minecraft.

[+] dalke|11 years ago|reply
It sounds quite reasonable to me. I did morally similar things on an 8088 machine, 10 years previous. Eg, no ray-tracing, but I did an animated movie. No operating system, but I wrote my own BASIC in BASIC. Everything described is well within the skills of a hobbyist.

While I played a bunch of games on it, they weren't games to play to death. Once I finished the levels of Loderunner, for example, it looped back to level 1, and I stopped playing it. The game instead was to figure out neat thing to do, then do it.

The comments on the reddit link are often uninformed, both the negative ones (few hobbyists of the era used source control) and the positive (the projects did not make real use of the hardware, and show no special 'knack' - I certainly am from that era but have no knack for the demoscene).

[+] comrade1|11 years ago|reply
I, and I assume anyone else that has tried, get much more enjoyment out of writing a game than playing games. And writing an OS is probably even more fun than writing a game.

Edit: Also just wanted to point out that writing a few games has in a way ruined playing games for me. I still load up a new or classic game every now and then but it's more to admire what the developers have done and not so much as to play the game. I don't really 'play' games any more.

[+] IkmoIkmo|11 years ago|reply
I'll remember visual images from tons of places, people, games, music, street names and books. But I'd not have a clue what they were called.

I'd know where my school was, I'd just 'go there', I didn't know the street name.

I'd turn on the TV, I didn't know what brand it was.

I'd just turn on the computer and play Escape Velocity, didn't know it was called that.

There are lots of exceptions, like I wouldn't miss the name 'teenage mutant ninja turtles' or ever forget it. But especially for things like computer games when I was 8, I'd just 'doubleclick the game icon with the picture of a car' not having a clue what that racing game was called.

[+] ciupicri|11 years ago|reply
Also

> old Apple Powermacs from the 1980s (the tiny ones)

Except that Power Macs were available from 1994 until 2006.

[+] dpcan|11 years ago|reply
I'd love to go back to those days... 486 with DOS and QBasic, maybe a Borland C compiler if you're lucky enough to have a local computer store that sold copies.

Myself and a friend tried to create our own version of Windows 3.1 in QBasic when we were in middle school. I wish we would have saved our progress. I don't think it was as far as long as I remember. I know it read INI files, and we could drag windows around. Not sure how much else.

OP got to learn how to program the fun way, like a lot of us did in the 90's. Grinding away at crazy side projects on old DOS systems with lots of limitations. That opportunity just isn't available to kids anymore. High powered computers are everywhere and accessible, no reason to make an old PC do new tricks. But I guess they have the web to do crazy things with, so it's not so bad.

[+] wtbob|11 years ago|reply
> I took another shot at coding this year to see if I could build anything interesting in C++, but the difference between something like QBASIC and a full blown C++ IDE just ended up baffling me more than anything else, and I struggled for a bit.

That's a really damning statement about our modern software ecosystem. You see what this guy was able to put together as a kid, and it's impressive. Sure, it was close to 20 years out of date, but it was good-looking and (appears) usable.

Why isn't it as easy for him, with the knowledge he's accumulated, to build software with modern languages, modern tools and and modern libraries as it was for him to build software with BASIC?

[+] Lrigikithumer|11 years ago|reply
I would definitely put that down to experience, C++ is a much different beast to QBasic. Qbasic being geared towards beginners, C++ being geared towards professionals.

I mean it's the difference between a tool box 70 years ago (Software lives by dog years) and a tool box today, the tools you will find are vastly different, and even though you can build a house with the tools from 70 years ago, that does not necessarily mean you will be able to travel forward in time and build a house with todays tools because you have zero experience with it.

[+] Rygu|11 years ago|reply
The truth. Take web development. If you're willing to look objectively at the state of HTML5 and the lack of feature support for browsers (that stick around), then yes we've established many good specs and communities, however for the enduser comparing it to Flash back in the days, nothing different. At least Flash development was easy.

goes back to building JS and CSS files with his frontend build system, and testing in IE8

[+] pjbrunet|11 years ago|reply
I think that's a great question and I could list some contributing factors but I think a thorough answer could upset a lot of people. I lost 100+ karma just for some criticism of Apple ;-) Yeah, let's critique all the modern languages, tools and libraries--that will go over real well here.
[+] orbifold|11 years ago|reply
It was incredibly frustrating for me as a young child, during the DOS days you had a fairly complete, if somewhat primitive, simple development environment with complete documentation available. I could easily do silly things like composing "melodies" or draw arbitrary shapes on the screen. Of course in retrospect any other programming language other than QBasic would have been more educational, if it had similar good documentation and integrated support for running programs. But it was still better than with windows, where there really wasn't anything comparable available that I knew of and visual studio (which I got as a christmas present, when I was 10 years old :)) seemed rather incomprehensible in comparison.
[+] icebraining|11 years ago|reply
Who says it isn't? Maybe C++ just wasn't a good choice for someone coming from BASIC.
[+] semiel|11 years ago|reply
I don't think C++ is anywhere near the state of the art in terms of usability. I wonder what he would do with something like Python + PyGame.
[+] orangecomputer|11 years ago|reply
I guess it was for two reasons. Looong post ahead but it describes in a fair amount of detail why I eventually was turned off of C programming, and it was not necessarily the language itself.

1) I opted to try and self-teach using tutorials which were highly inconsistent with one-anothers practices instead of learning at an accredited college or doing some type of course. It's also possible the tutorials I used were not that brilliant. I did find some fantastic ones later on around the time I stopped (as I started working full time).

2) I believe my folly also lies in jumping the gun, a lot. With BASIC I was able to just skip around in the commands list and experiment with each command in an afternoon, figure out how it worked and see if it was what I needed. If so, I had learnt what I needed, if not, I had learnt something for use in another day, and another code. It mightn't be the most optimal way to learn, but for me it allowed me to create -exactly- what I had intended, even if the mechanics inside were smoking and banging around, they still did what they needed to.

C was just not quite the same, and I wouldn't expect it to be. It's a much more powerful language from what I've observed.

One of the issues I frequently stumbled into, would be a tutorial that would state to use an external library/header that was never explained nor included on the tutorial page. One might state that I needed to include SDL.H but at no point in the tutorial, did it describe what the contents of it were, or of its purpose / where to get it. Now sure enough, you can google it and find that it refers to the Simple DirectMedia Library but am I wrong to think it's not professional to write in references and sources in a tutorial intended for beginners? "Figure it out / google it" doesn't always strike me as the best way to teach someone, but instead writing down a clear explanation of what is required and where it can be obtained etc.

I also had stumbled upon tutorials where the author had written their own custom headers for use with the code, but the headers themselves were not included for download or reference in that tutorial, nor the contents of them explained, so I'd often have no idea of what to substitute in place of that header or how to recreate that header accordingly.

I also became frequently discouraged by the responses I got when asking for help. It seemed that if I (as well as a LOT of other people, I saw this happen to a tonne of others) was stuck or unsure and made threads anywhere asking for a bit of advice or critique as to where I've gone wrong, I was constantly met with replies of either "If you don't even know the answer then you shouldn't be programming." or "The answer is obvious, programming is not for you." etc. I made a post at one point asking for a bit of advice on building a simple calculator once as one of my first few applications, and was met with responses of "This is a HUGE waste of time, there's already calculator sources out there available for download." which sort of missed the point; I was trying to make one, rather than plagurize someone elses. Getting questioned as to why you're learning to code when you can just steal someone elses seems the wrong way to go.

Perhaps I was in the wrong communities for me, although interestingly enough there was a tech journal article that I had read not too long ago where a senior programmer slammed the sadly all-too-frequent types of these responses due to the fact that it discourages a lot of potentially good novice programmers, with people arguing for and against negative reinforcement. Personally, being told "your code is shit, you're definitely not made to be a coder" isn't really inspiration to me. Being told "You've made an error here, this is what's wrong, this is why it's not working and this is how you fix it. Have another go at it." seems more appropriate. Sure a few people react to being told they're not good enough by thinking "Well fine, I'm going to beat you at that statement and do the BEST DAMN APPLICATION EVER", but to me, I don't like to think of programming as a boot camp, but as learning just as you would if it were photoshop or 3dsmax, and I sure as hell didn't hear people in any 3dsmax class I've attended saying "You're really bad at modeling, you should quit before you waste too much time on this.".

[+] wslh|11 years ago|reply
i) In 1990 I was using a VAX computer in high school shared by a whole class and programming in Pascal. The compilation process (executed in a compilation queue) could take a few minutes or half an hour depending of how many people and processes were running that day.

I wanted to imitate this stuff in my Amiga 500, so I joined a friend who knew about electronics and he removed a Commodore 64 keyboard and made the interface to connect to the Amiga as a second keyboard. I made the software in assembler to use the same computer with a single monitor in two windows using two keyboards. A bizarre but funny project.

ii) In 1992 I wanted to make my own graphical operating system. Not in the real sense but in the Windows 3.0 sense. I started doing this in Turbo Pascal and at some point I stopped because my multitasking was cooperative just realizing a few years later that Windows (and Apple!) used this basic strategy too. I felt ashamed of them.

[+] iamcreasy|11 years ago|reply
Astonishing story. I'd like to meed this guy and have a coffee with him.

I have a similar story but not as harsh as his. I started programming basic(not sure which variant) on a small hand held system CASIO PB700. One this system I've created a Paranoid clone and a 4 frame ascii animation. My father saw my aptitude on programming he introduced me to his more advanced systems. He was a computer engineer and had an habit of buying new systems in 1980s. On the newer systems(I don't recall the name) I learned Turbo Pascel. Back then those systems didn't have any storage. MSDOS had to be booted from one 5 inch floppy drive and a new disk had to be inserted to get the different programs.

Every time you compile and run a program, it would take a couple of minutes to read the compiler from the 5inch floppy disk. Those floppy disks were fragile and they had a tendency to developed bad sectors after a frequent read-write session. To circumvent this, my father deployed a ramdrive on the system. A drive would be created inside the ram every time the system boots up, and it would copy the Turbo Pascel compilers and all relevant libraries to that ram drive. So next time you hit 'run', it would take seconds instead of minutes. This solutions still blows away my mind.

Another thing about these old machines, they all came with monochrome monitors. It was all green and had a very low refresh rate. Every time there was a large change on the display, you could still see the previous characters being faded away. Like matrix.

Later I had access to better machines(Pentium 1 133Mhz), but haven't forgot those days. I wish I had more information about those systems to post here, but I am long way from home. Back at home those systems are still all packed up and stacked on top on one another. The funny thing - all them work as if they are 'brand new'.

[+] twoodfin|11 years ago|reply
Nitpick: It's essentially impossible that a 486 would come with 64KB of RAM. My 8088 XT clone in '88 came with 640KB. 4-16MB would be more common for the time.
[+] lake99|11 years ago|reply
Fascinating story. If it's any consolation to the author, some of us still use Vi/Emacs, do batch processing in shell scripts, run complicated commands from the command prompt. And when it's time to take a break for some gaming, launch NetHack or some other roguelike -- in a terminal.

To hazard a guess, the biggest "wow" programming languages for the author now would be Python and JavaScript.

[+] doctorstupid|11 years ago|reply
I'm saddened that most of the comments here are of the "me too, time for my story" variety. The amount of self references is disheartening.
[+] pekk|11 years ago|reply
I'm saddened that you're saddened by nerds relating to each other, talking about things they actually liked and feeling nostalgia.

Everyone, let's be sure we stick to the real business of HN: gossip about companies which were started for no reason other than to get sold, fighting over the brands of fetishized personal electronics, hagiographies of people like Steve Jobs and Edward Snowden, flamewars about women in tech, and preening about how we personally are the top 1% of software engineers and only hire people like ourselves.

Otherwise, someone might feel saddened.

[+] gedrap|11 years ago|reply
I have a little bit similar, just not so sad story.

I was ~12 years old (around 2004), I really wanted to learn programming but all I had was a cell phone (one of the first budget class phones with GPRS, Nokia 3510i). I had very little access to internet / pc (about 30min/week) and couldn't speak English, Russian, or any other major language.

So I tried to get my hands on any PHP code examples, type it in using my phone, and upload to FTP using some online forms.

Eh, funny times. I wrote a bit more about it http://blog.gedrap.me/blog/2013/07/30/writing-code-with-a-ce...

[+] andsmi2|11 years ago|reply
This quote hurt my head "Windows 2000..., which was basically like 98, but crappier." But provided context for the entire thing.
[+] pm|11 years ago|reply
I relate somewhat to poster's situation, as one of my half-brothers had a somewhat related experience in rural NT, sans the happy ending. If the poster is reading HN, I'd be happy to catch you up on the state of Australian tech. My e-mail is in my profile.
[+] brandonmenc|11 years ago|reply
This isn't an OS - it's closer to a DOS shell, like Central Point's PC Tools.
[+] adrusi|11 years ago|reply
While I don't have a story quite like OP's, I wanted to share my experiences with old-school programming in more recent history. In middle and high school (2008-2014), I had access to modern hardware, the internet and all those lovely things at home. At school, though, I didn't have access to a computer most of the time, and yet I wanted to program. What I did have though, was a TI-84+SE graphing calculator, with a z80 cpu clocked at 15MHz and 24/128K accessible/total RAM, and 1.5/2.0MB of ROM. Most teachers didn't really care if I just stuck my nose into that thing for the entire class, so often I did just that.

For those not familiar with the calculator, it ships with an OS that provides a shell where the user can input mathematical expressions, as well as a graphing interface. It also provides a program editor where the user can write what are essentially shell scripts for the main interface in TI-BASIC, or run machine code written in hex if the program starts with the AsmPrgm token. It also lets you transfer files from a PC using a usb port on the calculator. You could download and install "Apps" for the calculator. When I was 12-14 I mostly wrote small programs, like Pong and a quadratic factorization utility, in TI-BASIC, and played games that I downloaded in class.

After a while I tired of TI-BASIC because it was slow, and that limited the possibilities. I downloaded Axe, an App that modifies the code in RAM of Kernel's TI-BASIC editor to allow for programs written in a different language, which was basically assembly + a lot of macros and a standard library useful for writing games, or like C without a type system. This code was compiled to machine code on the calculator, and therefore the code ran at a reasonable speed (keep in mind it's still just a 15MHz cpu from the 70s).

With Axe I made some more interesting programs. Unlike with TI-BASIC, where learning the language was easy since the calculators main interface was basically a REPL for the programming language, Axe was hard to learn. I needed to look at external documentation to know what I was dong in Axe, but even though I had a smartphone at this point, I couldn't use it in class, so I printed out the manual to reference it in class. I wrote a bunch of programs in Axe, like a cellular automata simulator, a game of life program, a 4-level grayscale sprite editor (which worked by flickering the pixels of the 1-bit display which had a slow enough response time to create a static gray color if alternated quickly enough). I also learned z80 assembly and used an on-calc assembler and editor called mimas, but editing assembly on-calc was too bothersome with a 64x96 display, so I mostly stuck with Axe.

Eventually I stopped being the nerdy kid who played with his calculator all day, but I had fallen in love with the platform, so even though I wasn't writing code in class, I wrote code for the calculator at home, sometimes on my PC and sometimes on the calculator just because I liked that experience more.

I'll be sad to see these ancient calculators finally phased out of the math curriculum in the US, so that kids no longer get access to that last stronghold of 80s computing. Raspberry Pi is cool, but it's still so much more modern than the calculators, which hurts its coolness factor for me, but more importantly, kids won't have access to it unless their parents want them to get into computing. Soon I see kids only having hardware that seems impenetrably locked down, which is a real shame.

[+] lupinglade|11 years ago|reply
486s typically had 4-16MB RAM. To access this memory in DOS a special driver needed to be loaded, EXTMEM386.SYS or something like that from what I remember.

This article really is somewhat misleading, as that is not an OS, rather it is an application running on DOS.

Did the same sort of thing as a kid on an Atari 130 XE. Was a lot more graphical though. It's something you do when your computer is essentially useless :)

[+] swatow|11 years ago|reply
In the late 1990s, my parents divorced, and my mother took my brother and myself and had us go live in a very rural area of Australia with a psychopath who was wanted in 3 states. This was our new stepfather, so we were to remain in isolation so that he wouldn't be found. This being said, we were not allowed to leave the house after school hours, nor use the internet, nor own mobile phones.

Truly shocking that this could happen in Australia. Where were the child support services? Why didn't the teachers notice anything?

The rest they say, is history. Mum finally ditched the guy who made our life hell. I was allowed to move back to civilization and had my mind absolutely BLOWN away by Crisis screenshots.

I wonder how old the author was when this happened? Was he still being kept captive as an adult?

This story raises serious questions about the adequacy of child protection and law enforcement in Australia.

[+] ghinda|11 years ago|reply
I also have a similar, but definitely not tragic, story. In the late '90s my dad got us a ZX Spectrum, so me and my brother learned BASIC and played Deathchase.

Around ~2000 we got a Pentium "75", that is - 75mhz, 16mb ram, 500mb hdd with no cdrom or sound card. I think it had a 2mb S3 video card, and came with Windows 95.

At some point, after some tweaks, you could play Mortal Kombat 4 in a very small window, installed from multi-rar archives on around ~20 floppys.

We had a lot CDs with games from gaming magazines, with "cool" (or so I thought at the time) HTML/JavaScript autoruns, that ran with Internet Explorer 4. Since most of these games (eg. NFS 3) wouldn't run on my PC, I found out how to "View Source", and I basically learned HTML/CSS/JS from them. In 2003 I sold my first "DHTML" menu widget.

[+] robotkilla|11 years ago|reply
Throwing my story in the mix: I owned a 386 and a 486 when I was around 9. Hand me down computers. My family was poor and we didn't have the internet and I'm not sure it would have mattered if we did back then. I learned QBASIC and Dos from library books and help files. Made lots of text adventure games and later games with minor graphics. I'm a professional developer now (have been for 12 years). I know multiple languages including python and I still make games on the side as a hobby.

I keep seeing stories similar to mine. I really think we (humans) have lost something with new tech. Simple UI breeds users whereas hard seems to breed developers.

Edit: typed that out on my phone - made some typo fixes.

Also forgot to mention - I never went to school for CS and I dropped out of community college which I attended for graphic design.

[+] kokey|11 years ago|reply
I can relate too, though my situation was also not that bad. Too poor to buy a computer, learned programming (BASIC mostly for the C64) from library books, and electronics from library books, and general details about PC hardware from magazines. This all without having a computer. Then I managed to repair and salvage enough old PC parts to piece together my first 8086 PC, eventually upgraded to a 286. We were long distance calls away from any city so dial up connections were impossibly expensive, so I learned to hack my way around some online services and phone phreaking to get myself onto the internet in 1993. I then got hooked on Unix and the internet and it became my ticket out of our in the middle of nowhere town all the way to living in the developed world.
[+] sauere|11 years ago|reply
QBasic... those were the days.

I actually started programming around 2002/2003. At that time QBasic was of course already horribly outdated. But that was what my school teacher was using. We used it to have direct PEAK/POKE access to the LPT-Port (the big, bulky printer port!). So we connected LEDs and other Stuff to the LPT Pins and made them blink with QBasic (and Windows 2000).

I still sticked to QBasic a while because i refused to learn anything else and C-Style languages just looked scary to me. By the way, if you are looking for a cool, modern, cross-platform BASIC Compiler take a look at FreeBasic. It started out as a QBasic-kompatible Interpreter but now is a Project on it's own.