Sunday, November 2, 2014 at 11:36 AM

How I started programming

I was 18, a college student, math major, in 1974.

A circular went around to all math students, we're teaching computer programming, sign up for the class if you're interested. Here's the thought that went through my head. "This is something I might be able to get a job doing." So I signed up. That was it. I learned how to do it, but it wasn't much fun because the way we worked with the computer involved a lot of time waiting. If you left out a double-quote, it could take hours to find out. Fix it and wait for a few more hours. And you only had a budget of a certain amount of computer time. Once, doing a project for a professor I ran out. So I did the work by hand. It took a half hour to do what I had failed to do in days of programming and waiting. That's where we were in the mid-70s.

After school I got a job in NYC as a programmer. We had interactive terminals. Type a line of BASIC and get an immediate result. Change it a little, different result. We still had budgets of time then, the company I worked for was in the time-sharing business. It was economically impossible for some organizations to buy their own computers, they cost millions. So we let them run their apps on our computers. My job was to write custom programs for big customers. When their programs ran, the company might get $10,000 per day for the service. My time was a freebie. I wasn't encouraged to make my programs efficient, but I did anyway, to the best of my ability. All this on hardware that had far less capacity than the iPhone you carry around today in your pocket. Computers were still very expensive.

After that I went to grad school where we had Unix. Where these other systems had been major hacks, things plugged into other things without much thought, Unix was a perfectly balanced system. You could see this even reading the source code. It taught me to aspire someday to writing code with such clarity and simplicity. I arrived at that place after about 20 years of trial and error. Now I always put the extra effort in to factor code, and go for max simplicity. That means I can build ever-taller towers of technology.

After grad school, in 1979, prices had dropped enough so that I could buy my own computer, and I did! It was really cool. 64K of memory, Z80 processor, two 8-inch floppy drives, running the UCSD P-system on top of CP/M. I wrote my second outliner there, and a relational database, and integrated them. What a thrill to make all that software work, in my living room.

Then I moved to California in 1979, to Mountain View, and hooked up with one of the early software publishers. I got to know people at Apple, Atari, at the local computer store (which was our hangout) and I was still working on the P-System, only now on an Apple II.

It's been getting better and better all the time. Today I just have to click a button on the code I'm editing, and it's immediately deployed to the public Internet. I reload my web page, and I've installed the new version. Time between tests is so short that I can afford to try lots of stuff out. It's pretty great. And btw, no one gets to say what I can and can't deploy, which is as it should be.

Last built: Sun, Mar 22, 2015 at 5:50 PM

By Dave Winer, Sunday, November 2, 2014 at 11:36 AM. Shut up and eat your vegetables.