Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
User Journal

Journal Journal: How to become a programmer without going to college, then get bored with it.

the things you do on a boring, wet afternoon, or: Drunk recollections on How it all got started.

How to become a programmer without going to college, then get bored with it.

1973 - 12 years old - Started reading books about computers, and got my hands on a COBOL book from the Boise State University library. Learned to read some kind of punch cards by sight. Mostly the realm of science-fiction to me.

1976 15 years old - Studying for my GED. Wound up writing a basic addressbook program in COBOL to show one of my instructors that I was interested in it, then was moved 200 miles away. Finished my GED, but spent more time getting stoned and GIRLS than anything serious. Forgot about it for a couple of years.

1980 -

COBOL - workstation data entry
        Sperry Univac - https://en.wikipedia.org/wiki/UNIVAC_1100/2200_series
        VAX/VMS https://en.wikipedia.org/wiki/VAX
                Making lookup tables for zip codes and counties. As hard as it may seem to some today, making zipcode lookup tables for 5 states with the ability to add to it Real-Time (as opposed to Real Soon Now) was harder for the three of us coding it than it was to input the zips. I made my money doing data entry and was paid by the document. Anything I could do to help make entry faster was noticeable in my pocket as soon as the next paycheck, so it was worth my time to do a lot of off-time reading.

1985 -
Got my hands on my first personal computer:
        Apple IIe - https://en.wikipedia.org/wiki/Apple_IIe
                The enhanced version, all the options, including the extra memory, but not including the InCider External Hard Drive. Too expensive.
                That decision ment a lot of disc swapping.

This is the point I guess I differed from userland for the first time. I got
my hands on a book that showed me how to use:

Basic - https://en.wikipedia.org/wiki/Applesoft_BASIC

Coolest thing ever!

Before I had finished that book, a friend lent me a copy of: Nibble Magazine - http://www.nibblemagazine.com/

which led me to: Beagle Brothers - https://en.wikipedia.org/wiki/Beagle_Bros

which got me started on: assembly language - https://en.wikipedia.org/wiki/6502

All of which first taugh me the Importance of Source Code. I wasn't doing the equivalent of cut and paste. This was documented source code that explained WHY it was that way, but I still had to type it in. Every friggin byte of it.

and then all hell broke loose. Somewhere, for some forgotten reason I wound up with a copy of: https://en.wikipedia.org/wiki/The_Codebreakers

I no longer remember how it led me back to:

        compiler design - https://en.wikipedia.org/wiki/Principles_of_Compiler_Design

which led to:
        K&R C - https://en.wikipedia.org/wiki/The_C_Programming_Language
        Aztec C - https://en.wikipedia.org/wiki/Aztec_C

and getting that working on a IIe made me look for options which led to:
        Pascal - https://en.wikipedia.org/wiki/UCSD_Pascal
        Lisp - https://en.wikipedia.org/wiki/Lisp_(programming_language)

The latter scared the crap out of me. What an alien language. Then I bumped into: FOURTH - https://en.wikipedia.org/wiki/Forth_(programming_language)

Nope. Ain't going there. (Funny, I look at FORTH now and it looks pretty nice.)

Perhaps this might be the place to mention that my math skills topped out at algebra, and have still never went beyond.

But I was into programming up to my neck and I never looked back.

1986 -

Time to upgrade for the first time. And the first time price made the decision for me in the hardware world:

        Apple IIgs - https://en.wikipedia.org/wiki/Apple_IIGS

        The computer below with all the available options was less than the cost of the the Apple offering:

        286 IBM PC XT - https://en.wikipedia.org/wiki/IBM_Personal_Computer_XT

So I bought the IBM.
Time to learn more new stuff.

        MSDOS batch programming - https://en.wikipedia.org/wiki/DOS
        Basic - https://en.wikipedia.org/wiki/GW-BASIC
        then
        QBasic - https://en.wikipedia.org/wiki/QBasic Yeah! - FUNCTIONS and SUB-ROUTINES
        C, C++, Pascal, Borland turbo Products - https://en.wikipedia.org/wiki/Borland

Learning to make event based user interfaces for first time while diving into database world:
        DBase III, III+ - https://en.wikipedia.org/wiki/DBase

which of course led me to find out about - https://en.wikipedia.org/wiki/SQL

Databases were fun! Let's do more!

C Database Development by Al Stevens
C++ Database Development by Al Stevens

which eventually led me to another source code treasure chest: http://www.drdobbs.com/

which taught me my limitations by the time I finished with the D-Flat project. While I had taken no classes nor read any structured programming books, this provided me with a lot of theories without me noticing.

Probably the last of the theory books for me:

        Plug and Play Programming: An Object-Oriented Construction Kit by William Wong (it will bend your brain! a must for template geeks)

        Developing your own 32-bit operating system 1st ed. by Richard A. Burgess. Everyone should have to make at least a 50 word capable compiler at least once in their programming life. Makes you humble, it does.

1995 -

And then I got lazy and started looking for an easier way to do my favorite thing: databases.

Borland had already spoiled me, I wanted an IDE, and not just any. A Visual one. I was tired of writing the code for each visual component for each program.
And of course, database connectivity. I don't remember why I picked basic.

First stop: https://en.wikipedia.org/wiki/Visual_Basic version 3.0

This made building the user interface easy, and since most of my databases were in dBase format and I already knew basic, it was a good place to start.

I've always been partial to pascal as a language though, and I found: Delphi 2 - https://en.wikipedia.org/wiki/Delphi_(programming_language) a few months later, and that became my IDE of choice. I could do everything, it compiled quick and tight, 16 or 32 bit programs. Everything I needed.

Then I bought a copy of Linux Secrets, which came with Slackware Linux 3.0. Time to re-learn a whole bunch of stuff, and play around with some new.

But that's an even weirder story. Includes all the hardware wonderland I wandered through, a true land of the boojum. Thar lives Novell, Unix, SUN, BSD!

Bear in mind now, I started all of this with a hand written COBOL program when I was 12 (1973), and I can't sight read a punch card anymore, but all of this has been my most entertaining hobby throughout my life. I have made a professional living doing database programming, software tech support, hardware tech support.

Now I remember! All because I originally wanted to write a better program to pick football games. I wrote one in 1985 that used to pick 11 of 16 NFL games each week.. It also picked the https://en.wikipedia.org/wiki/1986_Indianapolis_Colts_season games perfectly, and I cleaned up on the last 3 games. But I could never get a good point spread. Never have.

Somewhere along the way, I know I read at least one book on data structures and at least glanced through some Finite Mathematics and Linear Algebra. Again, I don't have the math, but I can follow the source code a long ways. I have learnt most of my theory that way, and it's always from stuff that works!

I can no longer build an Inverted-Indexed-BTree, but I remember I learned how from Al Stevens, and if I need it, I know where it's at. I'm sure it still works the same. I do remember that for the longest time I would have dreams that were D&D spin-offs while I was trying to learn all the neat node shit. Writing the code to traverse nodes was scarier than any GRUE or ORC, and harder to track and took as much skull sweat to get through.

I forget specific lines of code I have written, but I always remember the place to find the information and theory again. I used to have a huge collection of books. Now I cheat and look it up on the internet or the collection of pdf files and ebooks I keep around all the time. I always have some reference open when programming.

After all that, picking up web site programming was just learning different ways to do the same old things. PHP, MySQL, BootStrap, server side, client side.

And then..... well, and then.

The 1000 time I've been asked to implement the same fucntion -- "just a little different" -- in the language of the week.

I cannot pin down when it happened, but at some point I quit learning how to do bleeding edge stuff, then cutting edge stuff, then - unfortunately - current stuff.

I got Slackware 3.0 (Yeah fucking Patrick!!!) running on a 386sx, 486sx, 486dx. One of them from the cdrom included, the other two from the massive floppy download. All connected to my ISP and thence USENET.

But I can't get the latest version of running on my vintage Dell Inspiron 1720. At least not with wifi.

So I'm stuck with this .... never mind.

So now I play around with Lazarus, different database engines, but mostly, I fish a lot and have started getting into electronics. More specifically, green living electronics. It seems a natural progression. I find a lot of similarities.

The biggest lesson I learned, what made it all possible for me to do it my way, was my inquisitive nature and joy of learning.

But it probably would have came to naught in the end without the generous contribution to learning that all the thousands of hours and probably more than a million lines of code by an untold number of authors made so AVAILABLE. The source code was amazing enough as it was, but they explained it all step by step. And it worked! Thank You All. It was the experience of a lifetime.

And so ends my tale of woe. Learn another hobby. Have bunches of new fun.

And the fish are tasty and don't talk back.

Slashdot Top Deals

"Just the facts, Ma'am" -- Joe Friday

Working...