What did you start programming on?

(c) Bertrand Le Roy There’s some kind of controversy going on today in our microcosm. I don’t want to enter that controversy because I think nobody’s willing to listen to anybody but themselves.

Instead, I want to propose something different, a trip down memory lane. Most people reading this blog are professional developers who in general care about good practice and good craftsmanship. I do too.

But I also remember how I got started with computers. It wasn’t in a computer science class. I learnt by myself on a TI99/4A in Basic first and then Extended Basic.

It was a magical experience in more than one way: I didn’t really understand what I was doing or what was going on in the computer. I was just doing whatever worked. I had no idea programming computers was hard because it didn’t seem to be.

I was reading books and magazines where I couldn’t understand half the words (I’m French and most of the literature if not all of it was in English) but it didn’t matter. I had silly notions at first, for example, I remember distinctly asking myself if a goto would rewind the cassette tape to go back to that instruction. That is how ignorant I was.

Despite all that, I was able to produce a bundle of spaghetti code that would probably pop my eyes out today but that was a decent video game that I was able to sell to a few people. None of them looked at the code and told me “you’re doing it wrong”. That encouraged me and allowed me to buy new toys. I went on to learn 6502 assembly and dug deeper and deeper into lower layers of my new Atari 800XL. I was starting to make good sense of all this.

Later, I started web programming. Again, silly notions about what was happening behind the scenes. I had no idea what a database really was, it was just a place where I could store stuff and magically get it out later. I had no idea what an object was, just that I could put a bunch of properties on a variable. Inheritance? What’s that?

And here I am, 30 years later, thinking that I’m not too bad at what I’m doing, and occasionally pontificating on the silly things that n00bs can do sometimes.

But there is one thing that I know: I didn’t learn all of that in a week. It took me 30 years to learn all I know today about computers. It was an extremely slow process of doing stuff without understanding it and slowly digging through the silliness to find how it made sense. That’s how I’ve always learned and how I still do it today.

So seriously, try to remember how things were before you became this über-computer geek. How did you start programming? What hardware did you use? What language? What were the silly things you believed?

I can’t wait to see your answers in comments or in trackbacks.

37 Comments

  • +1 for Basic on a TI-99/4a at age 5, followed by C64 Basic and 6502 assembly at age 8. Programming the TI's speech synthesizer was the real motivator (we didn't have Terminal Emulator, so I had to WORK at it to get mine to say four-letter words).

  • I started coding on a RadioShack TRS something-or-other, and my first real class was in high-school, booting a machine similar to the one you describe using a cassette tape.

    I also remember that there were no cell phones, no cordless phones, no internet (as we know it) a few billion less people on the planet.

    DHH wasn't even born, and ScottGu was in elementary school.

    I think I know what made you write this post :). But remembering the first "girl" or "boy" you (3rd person 'you') doesn't make your marriage all of a sudden work - you made a commitment, and yes those halcyon days might be rife with excitement and discovery - it doesn't mean you can have them back.

    In other words - it's easy to set the stage - a "remember when" and try to apply your experiences to the modern day. It's what my parents did - and it's what made them typical parents of the 80s: cocaine was something my friends did routinely, and it was something they saw on TV on Miami Vice and couldn't believe it.

    You've managed to nail, almost precisely (but with different motive) precisely the anxiety many feel about the WebMatrix/Microsoft.Data stuff: it's a parental response - parental in the way my mom and dad might have sat me down when I was 15 to "talk about The Pot".

    Do you, honestly and from the heart, believe that you and the rest of the ASP.NET team *really believe* you understand the motives and intentions of the "PHP Youth" today? You're not them, you're not in their circle, you're older than them, you have different values. You were raised in a different time. You were raised with different expectations - the world was a smaller, easier place.

    I kind of think they are immune to your consultations, my friend.

  • PS- Basic's DATA statement was total voodoo. Typing in those gigantic listings from the back of Compute! magazine where the last half of the program was DATA statements was pure black magic. Hated it when I lost hours of typing because I was too impatient to save to tape before running...

  • It must have sucked to be you, Rob ;) Seriously, the engineers who built the TI99 were not my age, they were probably on average the age I am today.
    I am *not* trying to apply what I remember from those times.
    What I am trying to do is to get people to remember what it was like to start something really new.
    I'm seeing all kinds of comments to the effect of "if you're not a professional programmer, you should not program". That is absurd BS is all I'm saying. Of course you should. Run with scissors!

  • I love these walks down Memory Lana.

    I started writing code on a Vic 20 and a TRS-80 model one. Back in those days fun was retwriting your character set (Fonts) which was how I started learning binary. You basically had to use binary in an 8x8 grid to lay out your characters and then figure out the decimal and poke it.

    That was in between playing lots of Scott Adams adventures :-) Or in the case of the TRS-80 playing Mule.

  • TRS-80 / Basic in the late 1970s followed, after a 30+ year 'hiatus', by c# / asp.net. I loved, and love, the feeling of ignorance giving way to sudden comprehension, (and the immediate inability to remember what it was like not to know, or to sympathize with those who don't yet understand).

    Of course, recommendations from scissor running survivors should be treated with statistical caution. No one who died after impaling themselves is around to caution against it. But, by all means, run with them. By a pool preferably. :-)

  • Right - the thrill of the new - believe me I get it (it's Me, after all - I live for that thrill). I do believe that you're selectively filtering the responses you're getting, although yes, there are people who are taking the theory road.

    It's not that "UR DOIN IT WRONG" - that's not what I'm saying *at all*. I'm trying to tell you that the audience you're trying to appeal to has already been appealed-to. They're just not that into you. They made their choice - and that choice is PHP.

    It's PHP because of Wordpress, Joomla, Drupal, OSCommerce and 1000s of other apps they need to extend and support.

    It's PHP because Microsoft needs/wants to exert control over the platform, suffocating CMS plays like DotNetNuke and Umbraco (Orchard... you know what I think about it).

    It's PHP because C# isn't dynamic, and it's not easy no matter what you do to it - it's C#.

    It's PHP because *it's not Microsoft*.

    You know this already, so does ASP LT. Add marketing and LCS and ... boom: WebMatrix.

    Blow my mind, Bertrand. Take me forward - that's where my WOW is. I already did my TRS-80/Apple 2c/thing.

  • @Rob: somebody who hasn't started has not already been appealed to, by definition. I am not filtering anything, selectively or not: I'm just running with scissors and having lots of fun doing it. I really believe, from the heart, that this is the key to appealing to *some* people. I'm not sure who they will be (I do have some ideas but I may be wrong and it doesn't matter).
    And to be frank, the attitude I'm tired with is the Guardian of the Temple attitude. I want more people in the freaking temple. I want people to dig holes through the walls of the freaking temple.
    And yes, you *are* saying "you're doing it wrong". All the time. Listen to yourself. (and I'm saying this as a friend, really, because I care).
    And for what it's worth, you know how I feel about which language should be used for this kind of stuff, so your C# argument doesn't move me much ;)

  • I've started with a qbasic under dos, in age about 12.. i liked it very much and my dad inspired me for programming :).. I had a book, something like "Basic for kids" that was all my computer literature :)

    after I had a great pause in my development "carear".. back to programming near 20 then I was studing in university. I was also to start help my dad to do some computation of science problems he worked on.. that's there I met C++ :)

    i remember it was hard :) understanding of OOP concepts, virtual functions, templates, exceptions.. wow, I've spent a lot of time with a Stroustroup book. But those efforst gave me a change to find a job as junior developer in one of the companies.

    I'm no longer work with C++, but more with ASP.net/C#/JavaScript.. but that was a great time, when you studied yourself with programming :)

    Thans for you post :)

  • Started with BASIC on the VIC-20, then on C64, eventually mucking around with a little bit of assembly. Almost same CPU as in Bender's head, now that you mention it.

    And agreed - Mule and Scott Adams Adventureland are both classics. Remember to yell at the bear, kids.

    Still remember learning as you go. Thought it was funny even at the time in BASIC the standard was to number lines by ten so you could always wedge more logic inbetween as you need it.

  • Started with Basic on a Sinclair Spectrum at the age of 6 - 7, 23+ years later... I still have it :)

  • I started on an original Apple II with cassette tape drive. I started learning BASIC when I was around 5. I remember when we upgraded to 16K of RAM and a 5 1/2 floppy drive, we were living the high life. We still have the computer and I keep thinking about digging it out one day...

  • Basic on Russian BK-0010 PC 20 years ago.

  • Started with Borland Pascal 20 years ago (1990).

  • I'm another TI-99/4a with Basic guy. I was about 10 when I got the computer as a Christmas present from my aunt. I spent HOURS typing in the example code and making it do "cool" things like bounce a ball around the screen.

    I then discovered the difference between in memory and on disk storage when I thought simply saving the program in memory stayed there after you shut things down. Sadly I had no cassette drive. 8^D

  • I started with Javascript (doncha know) in 1999, then worked my way up to Java and then back to AJAX powered web apps with PHP.

  • I started with Microsoft.Data API ;)

  • I think the diatribe with Rob is the most fascinating part of this post. I was just going to chime in with a "BASIC from the back of 3-2-1 Contact" note but I was intrigued.

    Regardless of whether any of us understand the motives of "PHP Kids" we need to realize that none of us use the same technologies we started with. If the only thing you learned while writing a COBOL program was COBOL syntax then I can guarantee you're out of a job.

    If, on the other hand, you learned critical thinking, program structure, team communication, and how to get things done then you've got skills you can take to the next "generation".


  • @Andrew: great points you're making.

  • In 1970, APL on a special terminal with the APL characters, connected (through the cloud, mind you) to an IBM 360.

    I fell in love ...


  • I'll probably be ignored here but here is opinion:

    If I want to be a young dev your trying to attract you have to look at this: (1) financially not much dough (2) probably going to build something fun - ie a gaming hobby site let's say.

    So I go sign up for a host with my gaming friends and we sign up .. Oh let's say Bluehost for $6.95 a month right?

    Next we look and see they have (1) MySql and (2) php, perl and ror . Let's say they go off and create this site with php then. And they have this nice MacBook their parents bought them for their sophomore term at State U.

    I just set the ground work. Betrand come to this world and not commodore64 world :)

    So Microsoft has no place in this world because they only want you to run .net on Microsoft OS machines on IIS with MS SQL tools.

    I don't think it's the 'tools' - you learned your first skills regardless of skills right? I know I learned MySql because I certaintly can learn this on some expensive Oracle database right?

    What am I saying... It's not about the tools it's about accessibility. If Microsoft wants to expand it's base then how about making it more accessible to devs outside of this 'it has to be built and run only on our OS and server' mentality!

    I should be able to install VS 2010 Express on my Mac (just like I can install Eclipse on a Mac,windows,Linux box) and create a .net mvc 2.0 app using Linq that comes with a MySql database and then deploy my app through FTP to run on the Apache server.

    Now if I can do that THEN maybe that person would find value in these novice tools and in this technology.

    Maybe?

    Right now the MS world is just constrained in the commercial world that I can't really see some young dev today be able to build a web app in .net and even have a place to put it.

    MS has fostered this 'only on Windows' approach and I think personally it's not a good one.

  • Atari 130XE - a 6502-based thing with twice the amount of memory addressable by the 6502 chip: http://bit.ly/a5LoW1

    After buying it I realized that all software available for it was games so I had to learn how to write my own... ...I ran into the same language barrier as you, and ended up learning English from the manuals that came with the machine. :)

    A few years later I moved on to PCs and by the time I finished high school I already had a programming job at a software company...

  • ...oh and Rob, I think Bertrand was trying to _avoid_ bringing that whole debate into his blog. There's plenty of space available in the rest of the intarweb to voice your opinions on Microsoft.Data... :)

  • I started in BASIC on a TI99/4A, too! Then Extended Basic. Then, my dad got me this computer which was supposed to be the next generation TI99/4A ("Geneva? What that the name?). But, turned out to be a bad move because everything went PC.

    Then, learned Pascal in high school. The school has Radio Schack TRS 80s and then they were upgrading to PCs.

    Then, I went to seminary to study for the priesthood and, but the time I got out and back to computers, everything had changed. I remember telling my dad (just out of seminary) that CD-Roms were a dumb idea. So, he didn't get a CD-ROM on his computer. 1 year latter, there was no more software available on 3.5 inch floppies. Opps.

  • ZX-Spectrum BASIC and then Assembler 15 years ago. It was amazing at that time :)

  • I also started with TI499 too ! I remember my first program:
    10 LET I = 0
    20 PRINT I
    30 LET I = I + 1
    40 GOTO 20

    I was fascinated to see how we could manage some automatic work with just a few line of characters !

    I started working with VB3, falling definitively into MS world, then VB4, VB5, VB6. I came to C++ later, found it really hard, but ATL and WTL was great. I started some web stuff with ASP, and as .Net was launched I moved to management job, and left Visual Studio for a while...

    I restarted to code 3 years later when we launched our startup and today, I can build full Ajax .Net applications, knowing nothing about ASP.NET...

  • @Adham: well, the problem is that this is largely a perception issue.
    Go to http://asp.net and click on the big fat Host button on the top right. You'll see three offers for different hosting needs. Then click on "find more hosters" and you can find offers that are really tailored to your needs (and you can sort by price). It starts at 1.42 euros a month. That is less than 2 bucks.
    It is possible (and easy) today to find super-cheap ASP.NET hosting. Unfortunately few people know that.

  • @Bertrand,

    I think @Adham's point was only partially about the hosting. The issue is less about the tools to build on (your VS, your web matrix, your vim) and more about "the rest". By "rest" I mean what he said (hosting, ability to code on any platform easily (I know, mono is available, but until it has direct, vocal MS backing many folks stay away & don't trust it to maintain compatibility) as well as things like familiarity, ease of finding help, and in many cases, existing free solutions (joomla, drupal, etc).

    A lot of it is also time-delayed, though. PHP, et. al, have had a head start. I really like the way that CodePlex has taken off, and how github seems to have more and more FOSS written in .NET every day, so maybe there is already a change in the winds, I don't know.

    OH, and to stay on topic... BASIC on a Tandy 1000 from Radio Shack which sported a whopping 256 K of RAM which was, in my Dad's words, "More memory than we'll ever need"

  • @Paul: well, what you say sounds an awful lot like "people want it to run on Linux and PHP, they are already using something else, don't bother, you lost."
    We are doing the tools, we are doing the OSS apps, we even made sure PHP apps run well and install easily on Windows, we have cheap hosting, it goes on. I think one of our main problems is perception.
    But seriously, how many developers do you know who develop on Linux (not where they deploy, where they develop)? MacOS and Windows yes. So that means that if you target Linux as your server OS, you are actually deploying to a different platform from the one you're developing on. I'm saying we have an advantage there (but I wish we were making more tools for Mac users).

  • regarding perception MS should provide free or 1$/month shared hosting **AND** make that as public as possible.

    I didn't know that you could find cheap hosting on the asp.net site.. and a lot of other people don't know it either.

    Place a large banner somewhere..


    ---

    A bit more on topic : @Rob : chill out man, why are you so nervous?

    Even more on topic :

    I started with interpreted BASIC on a HC-90 (ZX-Spectrum clone) back in 1990. Then went through Turbo Pascal, a bit of C++ (yuck!!!!), Delphi, Java and then .NET

  • UCSD Pascal on Apple ][
    Nobody could imagine ever need more than 64K RAM

  • It all began for me when I was five or six with an Apple IIc. The system disk was faulty so for years I didn't have ProDOS or any way of saving my BASIC programmes. My programming education - if you can call simply having fun education - began with the Usborne series of teach yourself BASIC books, which took you through things like writing adventure games, kids' primers on 6502 machine code, etc.

  • Level-I Basic on a TRS-80 Model I
    I still remember the manual with a cartoonized TRS-80 cheering up the pages...

  • Commodore 64
    Apple II Basic
    Helix for Mac
    Think Pascal for Mac
    Turbo Pascal
    Light Speed Modula II
    FoxPro
    ... years and years....
    asp.net MVC

  • mIRC

  • I started writing a program to compute the planet orbits with an abacus. We migrated to Visual C# in 2003. I still prefer the abacus: it did not throw obscure exception.

  • I started with paper made cuttoff kit "computer" from kids magazine. Pencil and rubber required to store and clear and own eyes to load - from set of "registers". Narrow paper with pseudocode passed through current instruction window (yes, windows already there:-). My brain as processor and calculator as ALU. I remember for funny "Lunar Landing" algorithm executed many times :-D

    Then irish programmable calculator Calcul PSR-98e, quite nice toy.

    Then I8080 based PMI-80 school computer (hex terminal). Machine code to play melody at first run played content of ROM monitor due to coding bug, so nice cosmic sounds :-)

    Then similar TEMS-8000 school computer, equipped even with stepper motor. Task to do some exact sequence of motor operations resulted in little interpreter (DSL) for few motor related commands.

    Then Atari 800XL - its basic and 6502 (still fan!) machine code, ATMAS-II macroassembler (emulator for I8080 code as school project + Action! OSS Cartridge memory paging emulation optimized in ASM)

    Then TurboPascal on PC/XT/AT - networked hospital IS of 20 workstations on Novell Netware

    AND THEN ... "PC FAND" - difficult to describe here, but this model-centric tool started my addiction to "models first", resulting in difficult living as developer for next 15 years, when tool died... Today, it looks that LightSwitch returns me to the game of clean bussines logic again

    During last 15 years - Delphi, Java, C#/NETCF, Python, everything far from clean bussines focussed "logic only" solutions :-D grrrr

    Still, it seems that I am not good developer after almost 30 years too. I dont want to write again and again the same system things. I want to do it right(!), but its really difficult to do it right(!) in time, when I really desperatelly need to solve bussines logic(!!!):

    LightSwitch, howgh!

Comments have been disabled for this content.