I first got into coding kind of by accident. My uncle, who is roughly the same age as I am, had experimented with programming when we were young, messing around with writing simple games on his dad’s Tandy-1000 (an antiquated bit of hardware today, but back when Grandpa got it, that thing was mind-blowing to us… it was like being a cave-man who’d discovered a portal into the future). I was impressed with him, but not enough to pick it up myself at the time… I was more interested in honing my artistic skills drawing and painting. It wasn’t until the web became something familiar with consumers quite a few years later that I actually started to take notice. I’d moved in with my uncle and started to dabble with Macromedia Flash, as its visually-oriented tools made a lot of sense to me. I rarely touched any of the backing code, however, focusing instead on the graphical end of things. This dalliance was interrupted by my entry into the Marine corps, and it wouldn’t be until I was able to purchase my first computer (a cheap eMachine) about a year into my enlistment, that I began to seriously endeavor to learn anything useful. However, this being the days when the internet was still in its adolescence and Google was just starting to be a thing, I spent a lot of time learning through trial-and-error.
My first real lesson was when I decided to learn something about this ‘Linux’ thing I’d been hearing about. I was sort of familiar with UNIX and knew a lot of important systems ran it, so thought it might be useful to learn a similar OS. I purchased a book on Linux and an actual hard-copy of RedHat from the PX on our base, and proceeded to install the OS on my machine… only to discover to my horror that the dial-up, 56kbps winmodem that came with my computer was not supported by Linux. I’d lost the ability to access the internet, negating the usefulness of my computer in a little less than an hour. I spent the rest of the night reformatting my hard drive and reinstalling Windows ME (yes, it was that long ago). This was the first occurrence of breaking something, and then learning on my own how to fix it, that would become my normal pattern of learning in the years to come.
Skipping forward a few years, I’d taken some programming courses at the local community college, and gotten married. Facing my imminent exit from the Corps upon my EAS, I’d taken a job from a temp agency, doing construction work on base, with the promise that there would be more work with the crew upon completion… a promise that was not fulfilled. The temp agency, however, had a job opening for a tech director, and they saw I had some computer experience, so offered me the position. What I didn’t know at the time, was that ‘Tech Director’ actually meant ‘The only guy on staff that knows anything about computers and needs to install and keep everything running, as well as design and write all the content for the company website’… a position I was woefully unprepared for. While I gave it my best shot, I was unsurprisingly let go from that position about six months later. Despite my failure, I was determined to make my way in the industry… my next job came in the form of a recommendation from one of my old Sergeants… he had a buddy who had started his own tech company, and needed some help. His company, as it turns out, handled network wiring. Not exactly what I’d wanted, but it still involved a lot of work with computers, so I spent much of the next year running network cable in warehouses and office buildings. In my spare time, I worked on the company’s website, and honed my skills in HTML and CSS to the best of my abilities. This was working out great, I thought… until it turned out that my employer was spending all the company’s funds (including as it turns out, my payroll) on his new girlfriend. I discovered this one morning when, after having deposited my paycheck and payed my bills for the month, I woke up to a negative balance of a few thousand dollars, as my employer had cancelled my paycheck after issuing it to me, and then skipped town. Dejected, I spent much of the next year in a protracted legal action against my former boss. I was awarded a $12k settlement, of which I’ve never actually seen a dime. I also didn’t work in tech for the next couple of years. I did, however, find work at the local Pizza Hut, as an assistant manager. There, I worked alongside two Cisco-certified engineers who had also been having trouble finding work, due to the fact that the ‘dot-com bubble’ had just burst, and there was now a glut of similarly-skilled tech-workers in southern California who were now finding themselves in the same position… out of work and wondering just why they’d bothered dropping so much cash on training and certification. I thought, if these guys, so much more qualified than I was, were having such a hard time finding employment in their chosen field, there was little hope for me. My salvation came in the form of that uncle I mentioned earlier, who recommended that I come back home to Texas and apply at the company he now worked for.
Skipping ahead a year or so, I was now working for that company in Houston, and again, much of my duties involved pulling cable (as well as providing IT support and computer repair for the boss’ family, ugh), but I was afforded much more time to hone my web development skills, as I was also to take over management of the company’s various websites. All for the low, low wage of $10/hr. Again, I found myself in the position of the company’s lone developer, so did most of my learning on the internet. At first, I did so through a couple of online colleges — both of which restructured their GI Bill programs so as to make them totally unworkable by anyone who was also trying to support a family of six while attending school, forcing me to eventually drop out. After that, I relied on various message boards, tutorial sites, books, and so on, trying desperately to consume any and all knowledge I could, and struggling to keep up with the constant inflow of new information. I went off in several different directions, but eventually learned enough C# to get roped into writing a bit of concierge software to control the automation systems for one of the high-end condominiums we were servicing. I had not, however, learned anything about version-control systems at this point… not that it really mattered, because a last-minute hardware change to a Linux-based tablet platform required me to rewrite the entire software from the ground up in PHP. It was at this point I was offered a job writing Flash apps for twice what I was making at the position I was then in.
At this new company, I found myself in the strange position of being the lone Flash (and later, lone OSS) developer at a mainly Microsoft-based development shop. While I got to do a lot of design work at this company as well, my duties once again included supporting the various websites the company relied on, as well as doing a lot of application architecture and UX engineering… basically, if there was a job the company was offered that did not require a certified C# or SQL-Server engineer, the job fell to me. I continued to learn all I could, from all the sources available to me, but it was still pretty aimless… I was starting to get really perturbed by the thought that, despite all the experience I was getting, I’d always be in a position where I’d be a jack-of-all-trades, and a master of none. I decided to deep-dive into Ruby development, as Ruby’s syntax had always appealed to me, and its package ecosystem was pretty mature. I landed a gig building a Ruby application for a logistics company that supported the oil industry, again doubling my salary. Wow, this is working out great, I again thought… and it did, until the bottom fell out of the oil industry a short while later, and the project was cancelled.
The story I’ve just shared, while it seems long-winded, is actually the short version. I told you all that, so I could tell you this… the long, rough, winding road I undertook to get where I am today could have, for the most part, been avoided, if only I’d had someone to guide me down the right path. A mentor. Someone who’d already established themselves, and knew what it would take for me to get where they are. When I first discovered Vets Who Code, I was immediately impressed with their program, and wanted to contribute in any way possible. Here was a community that, by assigning established mentors to veterans who were just starting out in the industry, was able to impart years worth of the right knowledge in months, and allow fledgling developers to achieve what it had taken me over a decade to do on my own. The difference having a mentor makes is obvious to one who’s made his way without one. While coming up, I had no one to warn me of dubious employers or poorly-defined positions, or even what a fair wage was for a developer. I had no one to point me at the tech which would best serve me when looking for work, or the best-practices and tools which I’d need to work with that tech. Even what I’d learned through nearly completing a computer science degree had not prepared me for the realities of the business, nor had it given me any sense of direction. I had the basic knowledge, but no focus. The VWC program provides our troops (at no cost to them, aside from the work we expect them to put in) all that I was missing… real-life experience with the industry-standard tools and tech of the trade, and the guidance to parlay those skills into a well-paying position. While most paid coding boot-camps will give you the knowledge, few of them will give you the community, and the guidance. To me, that’s where our program really provides its value. Had this program existed when I first began my journey, I have no doubt my career path would have been radically different. I’ve watched graduates of the program score gigs I would have killed for when starting out, and some I’m a little envious of now, if I’m being perfectly honest. As a mentor in the program, I’m damned proud of all of our troops and their continued success, and strongly encourage any vet interested in becoming a developer to give the program a shot. And if you’re reading this and are already established in the industry, I invite you to volunteer as a mentor… help make a fellow vets’ path to success that much easier; the road they have ahead of them is tough enough as it is.