CS or programming?<p>TL;DR: what got me into programming was looking at software and saying "I want to be able to do that", then creating a text file and changing its extension :D<p>I started programing when I was 9 (I'm in my mid thirties). My family bought a computer when I was about 4 and I used it since then. To put that into perspective, it cost as much as a 150-200 square meters piece of land or a car at that time. The printer cost about as much, which my family bought. The 90's was civil war and the country was isolated and sanctioned and in deep economic trouble.<p>I wondered how when I type an executable's name and hit Enter, it does something useful and displays things. Games. Utilities. Programs that did amazing things. Doom, Prince of Persia with a cute little mouse opening the door, Duke, Wolfenstein.<p>My first attempt at programming was Papua New Guinea style: I created a text file, changed its extension to .EXE, and ran it. I don't know what I hoped it would do. It didn't work obviously, and I changed its extension to .COM and tried again, as if it would take pity of me and "bring cargo from big bird in the sky".<p>We had no internet back then in the country. I learned BASIC as a child (QBASIC, GWBASIC, etc) from the interpreter's documentation. It was in English, which I didn't speak (only spoke French, Kabyle, Algerian, and Arabic), so I was basically copying the code, running it, changing it and seeing what breaks, and learning causal effects. I had a Harrap's English-French dictionary I used to understand key words from the docs. It was tedious but a bit more systematic and an effort to understand actual causal effects as opposed to trial/error. My first "major program" was one where you enter the name of a country (all caps or it didn't work), and it'd return information such as population, capital city, surface area, etc. I had entered every country's data by hand from a Larousse French dictionary.<p>I then learned x86 Assembly mainly from a book called "La Bible PC" which was a 1600 page book on systems programming, buses, cycles, BIOS and came with a CD containing code examples. Learning TSR (int 27) and writing ASM code to print on LPT port and display graphics was fucking amazing. I also tinkered with hardware, making cables, playing with DB9/DB25, hooking up scavenged LEDs to them, etc.<p>Then did a bit of C, which was so, so higher level than x86 Assembly, then Pascal.<p>Then I did Visual Basic for DOS. Buttons and forms, wow! Then Delphi, which is Pascal'ish. These are teenage years.<p>I would read "Science & Vie" articles that talked about a thing called the Internet as a child. It sounded like an amazing thing but we didn't have it. It was very frustrating not to be able to take part. As a teenager, I'd buy CD's that contained content from BBS groups with .NFO files. There were crews of people doing amazing things! I learned a lot from viruses and "programs that changed other programs to make them do something they were capable of doing but were prevented from doing until certain conditions were met". It was exhilarating to know such things and people existed and worked together and frustrating not to be able to partake.<p>In the late 90's, we had Internet in youth centers but it was expensive by the hour. Then residential but it was really expensive (it cost as much as a salary).