Friday, November 2, 2007

Blogosphere.WriteLine("Hello World");


Hi!

I really like developing software. Ever since my first lines of code on the green screen of an Apple IIe, it's always fascinated me to be able to think of something in my head and then be able to "code" it.
10 PRINT "THIS IS COOL!!!"
20 GOTO 10

The fascination started with Applesoft BASIC, which led to GW-BASIC on my first home 386 computer complete with Windows 3.0 and a turbo button too! You should have seen my joy when I found the "PLAY" command (much to the dismay of anyone who actually ran the programs).

After awhile, I felt that .BAS files were for wimps. True men made .EXEs whose first two bytes were MZ followed by a odd heart shape. I was convinced it was black magic at the time. Where were the line numbers? I didn't know, but it sure was a magical day when I found QB4.5.

QB4.5 could "compile" my code. To me, that was elite speak for "make me a true man and give me an EXE from my code!" Which, to the first approximation is still true.

After several years and hundreds of pages of dot-matrix printed code later, I became visual with VB3 and then VB4. It was quite different from my glory QB4.5 days. The mouse actually did something useful. To be honest, I really didn't write much VB code because we got a new computer (Pentium 100MHz/Windows 95) and I discovered the Internet.

Ah yes, the Internet. Back in the days of IE 2.0 and SLIP/PPP connections at blazing dialup speeds. Actually, I didn't need much speed since I spent most of my time on IRC in places like "#VisualBasic". Probably the best find all year was when I was able to download a trial edition of Delphi 2.0.

Everything was new again. I had to learn something called Pascal (or at least a dialect) of it. But it was worth it my friend. Not only could Delphi make EXEs, but it let you do some sewing with threads. The culmination of all of this was learning how to write a web server and actually implementing as much of RFC 2616 as I could. While other web servers were experiencing things like buffer overflows, I was all smug because I didn't write anything that had the word buffer in it.

Well, that thinking worked until I learned that Delphi's string class did in fact use buffers, albeit sometimes unsafely. You learn.

What more to the software world could there be? Surely all I needed was to get a piece of paper at a college saying that I knew all there was to know about computers.

Riiight.

Purdue taught me that I didn't know that much at all, and more importantly I never would. And that was o-k. I wasn't as good as my high school hot-shot mentality thought I was. This lesson was worth every dime I paid to the school.

Years of pointers, recursion, karnaugh maps, asymptotic analysis, static single assignment, flip flops, programming languages named after coffee, and more taught me that there was a lot more out there that I probably never would have dived into on my own had I continued on my high school path.

Having my middle and high school pride destroyed was a good thing. As a matter of fact, it keeps things interesting. Every day I get to learn something that I didn't know before.

That's what this blog is about: little bits and pieces of things picked up along the way that I think are interesting.

What's your story? How did you get involved in software? The best part about blogs is the interaction. I hope you (whoever you are) participate. Tell me when a post stinks or wastes your time and how I can make it better. I hope to make this blog interesting to you. My plan is to take the good lessons from guys like Joel, Hanselman, Atwood, and the 160 or so others on my feed list.

Let the conversation begin!

3 comments:

nhyone said...

Stumbled onto your blog when I was looking for techniques to combine JS/CSS files.

Our early path are very similar: GW-BASIC, QB4.5, then Delphi!

I'm surprised you still use GW-BASIC on a 386. I ran it and QB4.5 on a 8088...

Like you, I had a moment when I thought I had learnt everything there is to computing. That was when I finished reading the GW-BASIC reference manual from cover-to-cover, trying to soak in every keyword and function.

I thought GW-BASIC could do everything, just that it was slower and had a 64 kB limitation. (I picked up x86 asm soon after.)

Jeff Moser said...

nhyone: Thanks for coming back to my very first post. It's a rare find to see someone else that has a similar story. I still have the GW-BASIC reference manual (although I confess I haven't opened it in years). Kudos on moving to x86 assembler. I didn't get into assembly until college, but I always enjoyed how fast everything was and how big memory seemed back then (e.g. 512 bytes of SRAM was often enough).

ColmOCi said...

turbo! god be with the the days !