In the beginning there was code…

I’ve had an on again, off again sort of relationship with programming ever since elementary school. I’ve picked it up, thrown it down, stomped on it, and picked it back up again. I’m here to share my journey through technology and how I’ve ended up back where I started multiple times now. What has changed this time, is me:

Apple II – My first programming experience

In 1993 at the age of 7, we had dial-up internet at home and were very likely the first people online in our county. My father had a QVC late night ordered IBM clone desktop. This bad boy ran DOS and Windows 3.1 on an i386 processor, 64mb of hard drive space, and some negligible amount of memory. In ’95 we ordered two Gateway 2000 computers with the first Pentium chips at 200 Mhz. These milk cow colored Ferraris came with Windows 95 and newer dial up modems. They had graphics cards and sound cards along with the holy grail 12x CD rom! Remember that new computer games back then wouldn’t run on a lowly 2x or 4x drive. Microsoft’s Close Combat would go on to spin violently inside while my brother and I made jokes about the disk exploding.

My first PC that I bought. $2500 – Same time Apple II installed at school.

It was during 4th grade, and most likely the winter of that 95/96 school year, that my Elementary school installed two dozen Apple II computers. Our Music room had its walls completely lined with strange computers. It was an odd sight to discover one day as we all came in for Music class. We found out later that we would get to use the Apples as part of a special project. I don’t recall which class or time period changed in our schedules but for a month or two we would spend time working on these green-screened, mouse-less computers. (I can see now where my PC elitism over Apple products began at an early age.) (Full disclosure: I’m writing this today on a MacBook Air.)

During our time working with the Apple II, we learned to use some commands and supply values with those commands. I can’t remember if we used a graphing program or if it was some sort of compiler but we made a list of commands that rendered a road and eventually a city. The road had 2 solid lines and a dashed line down the center. Using these line commands and some values, we eventually rendered a city scape above the dashed highway that cut horizontally across the bottoms of our screens. Included with the program were some sort of stamps or symbols that could also be inserted into our city. I think there was a bus object we put on the highway and maybe an airplane object that we positioned in the sky above our buildings. We would save our creations onto the 5-1/4″ floppy drives each day and then return to work on our designs by loading our floppy disk into the dual drive Apple II.

As our time with the Apple II ended, I quickly forgot about my first programming experience. Video games, the internet and High school all happened. Did I mention Video games? It wasn’t until many years later that I even remembered my time spent in 4th grade writing a list of commands to render our little city scape. You see as a young man-boy fresh out of High School, I knew everything. I knew that I was going to be a millionaire by age 25 and retired at age 30. Somehow my life as a rural country kid, was going to transcend into riches simply due to technology existing and me being awesome.

I threw away my opportunity at a university and instead choose my local community college. I wasn’t sure what IT was, but it had something to do with computers. I was deleriously in love with a local girl who shortly after starting classes, wasn’t in love with me. No matter, I was only slightly delayed on my path to glory. You see, I had chosen to take the “Programming” tract of the 2 year associates degree in IT. Success was just a few weeks away surely.

In 2007, after 3 years of working on my 2 year degree, I finally graduated with an associates degree in IT. Network emphasis…..

During my first semester of college, in a Visual Basic class, I got behind on my coursework. Rather than studying harder or trying to catch up, I decided that networking was somehow better. To be honest, I had just given up during my first semester. My effort was minimal. The next two years were rocky. A half dozen different places to live. A move to California. A move back from California. Somehow by the good graces of God, I finished my associates degree and found a job.

I started my first professional tech job at a bank. I fixed Windows 2000 and Windows XP issues. I fixed printers. I disassembled printers. I would use sandpaper to rough up the rubber wheels inside the printers that had gone smooth from a billion+ print outs. I managed file servers, an exchange server, and even helped integrate a black berry server with our exchange server. I used Active directory and managed our domain controller. I didn’t create anything though. I just fixed problems using existing tools and solutions. It wasn’t a bad job at all. I just wasn’t very excited about this job at this time in my life. I was supposed to have been a millionaire by now. My delusions were only beginning to crack.

My next job was doing IT work for the community college that I had barely graduated from. (Luckily they saw more in me at the time than I did.) One of the great benefits of this job allowed employees to take a certain number of classes each year for free. In 2010-2011, I took a C++ course and an HTML/CSS course. I then took a follow up C++ course in the spring. I loved it. In the fall class we used the DarkGDK to make game objects and script some simple games. The DarkGDK was a game development library along with some tools that hooked into Visual Studio 2008. The library was really fun to use as it simplified all of the game math. Using pre-built functions to draw and make shapes was similar to my 4th grade Apple experience but I don’t think I connected the two events at this time. The 2nd semester course was formal C++ making command line tools. I made it 3/4 of the way through the book but never fully finished in the end.

I worked at the community college for five years before deciding to take a detour back home. From January 2013 until January 2015, I worked away from the IT world. While these two years were filled primarily with farming and ranching duties, I still fixed computers problems for people on the side. I was even allowed to teach a night course back at the community college on Windows 8. Teaching had its own challenges but it did allow me to create things. There was a sense of accomplishment when my own instructions and metaphors helped the students gain understanding. I discovered an appetite for technical information that I could then digest and share with others.

Despite my limited success as an adjunct night time instructor, my own skills in C++ and HTML had however grown rusty as barb wire. I had a choice to make about my future and my skills. It was time to decide if I was going to live off of the land, or live off of my technical abilities. Being that my technical abilities were more profitable than my agricultural abilities, the choice was easy if only considering finances. In January 2015, I took a new job, back in IT.

My new job in IT is still my current job today in 2019. I remotely manage a network of video conference endpoints along with an office full of devices. iPads, Chromebooks, security cameras and yes, even printers. I was able to use my ailing HTML/CSS skills to make a static page of organized links to our video conference endpoints. I use this page every day at my job, but it has remained mostly unchanged since it was created. My daily tasks revolve around end user support and answering help desk tickets. The idea of creating software or doing much programming of any sort is beyond the scope of this job unfortunately.

Starting in the fall of 2016, I went back to school for a bachelors degree. With 91 credit hours already under my belt, I was faced with yet another decision: Start over with zero credits at the state uber-versity or go to a school that accepts my 2 year associates and extra credits? Could I move away and spend all day going to classes? Who was going to to pay the bills while I was at school all day? The choice was easy. The execution would still be difficult.

I went with the smaller university that accepted my credits and allowed me to continue working at my job. This was ideally the best of both worlds. Work all day doing IT, then come home and study all night. What could go wrong? Looking at the various bachelor degree options there were several in computer systems and networking. I decided to get my bachelors degree in Software Development. I would finally have another chance to study programming. This could be my chance to switch from IT into development. A chance to switch from a service role into a production role. A creator rather than a helper.

My classes ran an accelerated schedule of two classes at a time for 8 weeks, with one week off as the 9th week. Followed by two more classes at a time for 8 more weeks. The intention was to go perpetually for 2 years at this pace. The reason for this pace is because this course load qualifies as full time. Full time is needed for financial aid which was essential to me being able to go back to school. The pace isn’t impossible by any means, but my life has proved to be near impossible while on pace.

I took off a semester after my first 16 week run. I was exhausted and burnt out. I then did another 16 weeks of classes before taking another semester off. We were studying Java and Object Oriented Analysis and Design. We had a web course that was supposed to involve Javascript and HTML/CSS but the server was messed up so we just did some Pearl and PHP. I enjoyed the time I spent working with Java and Pearl. Learning about RegEx or regular expressions was perhaps the most memorable. We hadn’t really done anything with object oriented programming at this point other than read about all the relationships the different objects can have with one another. I took my customary semester off and then started classes again in early 2018.

Intermediate Java and Databases. We started in with our 2nd level Java book. This book immediately reminded me of my 2nd semester C++ book. Lots of console applications with a lot of dry language rules. The first few chapters were review from our first Java book. Operators, Control Flow, Arrays, etc. Everything was going along fine until we started creating objects. Suddenly I was struggling to create the homework programs correctly. My GPA started to fall. By week 5, I dropped out. This time it wasn’t just a semester off. It was off for good.

Fast forward to today, May 19th, 2019. I’ve spent the past year working and fixing computers on the side. I’m about 9 months to a year away from my bachelors degree. The exact timing depends on when I decide to fill out financial aid and re-enroll in classes. It could be 5 years away at this point. At this point in the story, my degree doesn’t matter as much. I’m long past my original goal of being a millionaire by age 25. I forgot to retire when I was 30. So now what?

A couple of months ago, I realized that the harder I kept thinking about being a programmer, the further away I was getting. If I was ever to get out of IT and into a software related job where I could create, I would need a degree. To finish my degree I would need to learn object oriented Java and Databases with SQL. The remaining courses after Java and Databases are more Java using the Spring library for MVC and more databases. Knowing that a functional web program of some sorts is the end goal of my software development coursework, I had another choice to make: Re-enroll and endure a hectic schedule while trying to learn Java and Databases, or just learn Java and Databases.

If I have to create a hosted web application that interacts with a database, in order to pass my classes, then I should be able to create exactly that. Whether I’m paying for college credit or not, I should be able to create the application. Correct? Can I create that application right now? Well? Why not?

The reality of software, code, programming, scripting etc. is that you can either produce or you cannot. A half production doesn’t do anything for the creator or for the user. Programs either work and work well, or they are replaced and forgotten. Degree or not, certificate or not, the creation either has value or it does not. Can I deliver value or not? I must admit that I currently cannot. So what can I do?

Yeah? What can you do?

>_

What I can do is double down. Re-commit. Continue learning and creating with renewed focus. All the potential money, would-be jobs, and wealth be damned. I can pickup my books and continue on. I can do it for the love of knowledge and nothing else. As it should be.

I’ve recently made a program that helps my wife each day at her work. I found a problem she was encountering that I could actually solve. I made a complete solution using my Java skills and a bit of love. I’ve learned about Java deployments and producing code to run live on a businesses computer. Today I’ve created my first blog post to document my journey into the future. Today I re-commit to studying computer science regardless of what it does or doesn’t bring.

My name is Todd and I’m committed to studying and playing with software. If I remain committed and studious, my degree and financial issues will resolve themselves. Else I’ll remain in IT with a steady paycheck && a fun hobby.

Thank you for listening.

Leave a comment