40 Years of Programming
Written on
40 Years of Programming
I wanted to write a little history of how/why I learned to code and articulate my love of computing and engineering that my children could read. That's the inspiration for this posting.
When I was a teenager movies like WarGames (note the title for my blog) and the dawn of personal computing fascinated me. My grandmother owned a real estate business and when she baby sat me I used to spend days around here office playing with anything that would occupy my time. My first introduction to "computers" was a paper type-terminal the office had so they could dial into the real estate board central computer via a modem and look up listings. I remember spending hours (and wasting a lot of paper) connecting over the phone line to the central system and poking around out of the sheer fascination of being able to talk to another computer miles away over a phone line. I think it was my interest in that terminal that inspired my mom to buy me a computer to play with.
My first language
My first computer was a Radioshack TRS-80 that my parents bought me when I was 11 or 12 years old. The TRS-80 came with a manual that included a simple implementation of [BASIC[(https://en.wikipedia.org/wiki/Level_I_BASIC)]. This is was my first introduction to programming. I spent hours punching examples from the book into that little computer, learning the foundations of if statements, loops etc. I vividly remember writing my first endless loop that printed "Keith Lawson" forever and being astounded at the power of computers! The only drawback was that the TRS-80 didn't have any internal storage so every time you restarted it you had to type your program in from scratch again. Sometime in my pre-teen years I got sick for a week and had to stay home from school. To help me occupy my time I convinced my mother to buy me the cassette tape drive for the computer. Boy was it amazing to be able to hit record and slowly write my programs out to tape!
High School Years
Somewhere around grade 8 or 9 I got a Commodore 64 for Christmas. I didn't spend a lot of time programming on the Commodore because I quickly figured out there were endless video games I could play that were better than the Atari 2600 we owned at the time. Most of my time on the C64 was spent renting games from the Software Library we had in town and learning how to crack them so I could copy them. This led to my experiences with phone phreaking so I could dial into Florida BBSs and download video games but that's a story for another blog post.
My programming through highschool was mostly for the early computing classes my school was offering at the time. We had a lab of dumb terminals at the school connected to the school board's central VAX system. I spent my time there writing VAX Pascal. One of my most memorable projects was writing a roulette wheel that printed out a little ASCII rendering of a roulette game and basic commands to play. I have 0 recollection of that pascal but got great marks and had fun doing it.
Undergrad C, C and more C
When I was in university in the late 90s - early 2000s Sun Microsystems was the platform of choice and SPARCStations were everywhere on campus. The computer labs were dumb terminals or Sun systems running X Windows GUIs that we use to telnet (yes pre-SSH days) into the comp sci systems and write C in text editors. I swear I wrote hundreds of thousands of lines of C during university. C is the language I learned the foundations of computer science in but never translated to a tool I used in industry.
Perl
Perl is the language I have spent the most time in. It was the language of choice of the senior sysadmin when I started at in my job as a junior Solaris sysadmin so I didn't have a lot of choice. Python was around at the time but I didn't look at it then and would have never been able to convince the team to switch. Coming from C Perl was a bit of a learning curve for me but I certainly grew to love the language. Perl was a swiss army knife for us. We used it for everything from automating administration tasks to writing custom Apache modules using mod_perl to full stack web apps that were a combination of mod_perl modules and Perl CGI.
I absolutely loved Perl and it is an amazing language. It makes me sad that Perl 6 never really came to fruition and it has declined in use but Python was there waiting in the wings to pick up all the developers like me who needed a Perl alternative.
Rust
Rust bears a little mention here because I did run through the tutorial from their official documentation to explore the language and understand where I could use it. My C experience was helpful in understanding rust and I do feel there's a great future for this language but I didn't have any needs for a low level language so I haven't used it extensively. I still would like to find a little project that rust would be suitable for to explore the language more.
Perl to Python
I didn't write a lot of code through my first few years of management because I wanted to focus on my leadership skills and there wasn't really a place for me to be writing code at work. During that time we had 3 children (2 of them twins) so home life was a little hectic and I wasn't working on any side projects. When we got through the fog of babies, diapers and toddlers I began to get that itch to create things again and needed a new language. It didn't take much time to decide Python was the natural transition from Perl and I set out to move. To this day I still find myself writing Perl in my Python projects by accident so I maintain a little Python reference page for myself with useful patterns to save time googling or combing through the Python docs.
Love of Programming
Every programming language has its strengths and weaknesses and many religious debates have been waged over languages. Regardless of your language of choice or the language that is required for you job the key to being a good developer and maintaining your love of coding is to stoke the flame that keeps excellent developers going, curiosity. It takes years to get really proficient in any language so there's benefit in sticking with a primary language for a long period of time but be curious, explore new languages and frameworks and keep an open mind to the future. I've had to evolve over a long career and suspect Python will be the last significant switch I do but I'm glad I spent time with all the languages in this posting. I'm a stronger developer for it and it builds confidence you can switch to anything your hobby or career demands.