Dev Retro 2022

Dev Retro 2022

To quote the great computer scientist sister Maria Von Trapp, "Let's start at the very beginning, a very good place to start."

It astounds me, for lack of any other word, that I am even in a position to write a 'Dev Retro' post for 2022. At this point exactly one year ago I embarked on yet another year - 14, to be precise - in the legal field. My most recent 'programming' at that point: a Grow With Google challenge from several years prior, wherein I learned some basic JavaScript and brushed up on HTML and CSS skills that hadn't been addressed since I co-authored a website for a club at my college. I won't put a specific year on that to avoid dating myself, but suffice it to say the thing used frames and we made the navigation buttons in MS Paint.

I tend to avoid writing in absolute terms, but everything - literally, everything - was about to change for me professionally.

Due to an end-of-year mixup at my home office's accounting department, the check that was supposed to be sent to my office's internet provider for December was inadvertently sent to me instead. I knew with the combination of holidays there was no chance for me to mail the payment and be sure that it would arrive on time, so I drove over to one of the ISP's retail locations where there was an in-person pay counter. I handed over the check and headed back to my office, and on the way I noticed a building on Main Street I hadn't seen before.

Lettering on the window offered 'Coding Classes - Full or Part Time!' for adults. I took note of the place's name - Awesome Inc. - and decided to check them out when I got back to my desk.

In short order, I enrolled in the upcoming session of Intro to Web Programming, a night class meeting on Wednesday evenings. I didn't know what to expect, but it seemed an easy lift as New Year's resolutions go.

I was hooked.

I loved everything about what we were doing in the class, from learning about the new things in HTML 5 to getting to play around with Bootstrap and making API calls in JavaScript.

For my final project, I wrote a web app to take the place of the decks of cards needed for Trivial Pursuit. The idea came to me one evening when I was playing the game with my younger daughter (11 at the time), and her Entertainment question was a current events one about The Facts of Life - a show that went off the air literally decades before she was born. That same game, I missed a question about eastern European geography because the answer on the card was Yugoslavia.

So I got to thinking that a pretty straightforward app drawing on a trivia API could offer more current material and speed up gameplay at the same time. The result - Pursuit of Trivia - came together rather quickly and seemed to impress the crowd at Demo Day.

The first and most significant thing I noticed after Intro to Web Programming ended was that I missed it - a lot.

I signed up for a few challenges online and some free classes and tutorials to keep my skills up, but it wasn't the same as being in the classroom each week learning alongside others on the same journey. I knew the place where I did the night class also had a full-time web developer boot camp, but to pursue that would require considerably more forethought than signing up for a once-a-week evening class.

In the end, after a lot of soul-searching and number-crunching between my wife and myself, I went for it. I gave notice at my office and, in August, became a full-time developer-in-training.

Over 500 hours of instruction later, I am proud (and no small measure stunned) to announce that I am a full-stack web developer.

Our boot camp covered front-end technologies like JS, HTML and CSS, Bootstrap and React. We spent a couple of weeks on Python and SQL, then wrapped up the instruction portion of the course by learning Django, DRF and PostgreSQL. It was a wild ride, incredibly intense, and at times I had serious doubts as to what I had gotten myself into. I stuck it out, however, and would sign up to do it again tomorrow should the opportunity present itself.

In the last approximately three weeks of the course we designed our own final projects which we then built back-to-front. I decided to make an e-book reader and audiobook player for public domain works, using data from Project Gutenberg and Librivox.

There were several days during the following three sprints when I found myself wondering if anything was ever going to work the way I had it planned out in my head, but I trusted the system and kept plugging away at things and darned if an e-book reader and audiobook player didn't eventually take shape where before there was nothing.

That, to me, is the real magic of this field. You have a problem you want to solve or an existing solution that you want to improve, and simply by stringing together some logic and data you can will it into existence. It's like writing, which I also enjoy, but with more instantaneous gratification.

My project, which I dubbed VoxPublica, looked pretty good and worked quite well by the time demo day came around. More on all that in an upcoming series.

That is my #devretro for 2022 - a year that started with me in an entirely different field and ended with me designing and building a fully operational full-stack web app with a Django/DRF back end, a React-powered front end, and a Python layer in the middle. I have a few promising leads on some developer or QA jobs and hope to hear more about them in a week or two. All in all a pretty productive few months, and I can't wait to see what 2023 holds!