15 years in the making: the origins of my career in web development
I wish I could tell you the first time I actually programmed a computer. When I was a child, I created a library in my bedroom and “loaned” books to my siblings, using Excel on an old Windows machine to keep track of who loaned what and how many days were left until it was due. Many computer programmers will tell you this doesn’t count as programming, and surely I was no child prodigy. Nonetheless, Excel provides an interface to interact with and manipulate data, and I used a formula to calculate due dates and fines. And honestly, what kind of 10 year old uses Excel to track borrowed books to their siblings?
A few years later, when I was in the seventh grade, my parents purchased a family computer for Christmas. I had been aggressively hinting at a Mac (think: laminated printouts of the tech specs from Apple’s website), and at long last, we had one – an eMac. Rather, I had one, as I monopolized the machine the one hour per day my mother allowed us to use it (on a dial-up connection, no less).
In need of a way to justify using the computer more, I eventually found a way to convince my parents. My father owns a custom closet company in southeastern Wisconsin, and his website was, well, very 2003. This being the early/mid 2000s, Flash was how “cool” websites were powered. My interest budding, my mother bought me a book at Barnes & Noble to help me learn Macromedia Flash MX 2004.
This was the book I would read instead of doing my homework. I would take it to read at my younger brother’s summer baseball games, poring over what Flash was capable of. Eventually, I convinced my dad to let me build him a new website – a Flash website, with animation and other features that now elicit a cringe. He was able to purchase a discount license for a web development software suite from Macromedia; I believe it consisted of Flash, Dreamweaver, Fireworks, and some bizarre thing called ColdFusion that I never remember using.
I suppose you could loosely call my father my first client, and it was certainly a learning experience (lesson learned: temperamental 14 year olds don’t make great freelancers). At the end of it all, I built a functioning Flash-based website with an image gallery to showcase his products. I remember what it looked like, and I only sort of wish Wayback Machine had an archive of the site (I can’t find the .swf files anywhere).
The license to the development software truly was the payment for my services. I only used Dreamweaver to put together the bare-bones text elements of the site with the Flash, but soon found myself surrounded by more books to teach myself how to use it. I started to learn HTML by looking at the spaghetti Dreamweaver’s WYSIWYG editor created in the background. By today’s standards it’s not pretty: Dreamweaver had a love affair with inline styles and using tables for layouts. I used Fireworks to design sites, slice up the elements, and create hobby websites.
Dreamweaver also included ways to build more dynamic websites by connecting to databases and helping build PHP pages. I dove right in without any structure or knowledge of how it worked. By this time I was in high school, and the student information system they used was Apple’s PowerSchool (now owned by Pearson).
PowerSchool was an interface for taking attendance, reporting assignment-level grades for classes, tracking a balance for lunch purchases, and so on. Records at my elementary school were paper-based, making PowerSchool a pretty neat interface in comparison. It was also my first real inspiration for a dynamic website, and I sought to make my own PowerSchool using Dreamweaver.
I had no idea what front-end or back-end development was and no knowledge of good web application design. But I found a way to join tables in MySQL and create different students with different class schedules. I was able to create an interface to track student lunch purchases, and it was better than PowerSchool’s in one way – instead of requiring the user (lunch lady) to tabulate the cost of the items and type the number in, my interface had a menu with prices and food descriptions. Now, your parents could see just how many chocolate milks and French fries you were buying for lunch, instead of just the amount it cost them. You could call it my first differentiating feature!
Nothing tangible came from my efforts, of course, but as time went on and different web technologies emerged, I continued to experiment. I was never a great student in high school (just ask my PowerSchool homepage!), and found inspiration through developing on the computer. Never did I take a formal approach to learning; I mainly used tutorials and extracted parts of thick web development books to help me along.
Once in university, I applied myself to other disciplines – French, sociology, and urban planning – and rarely dabbled in web development for those three years. In three years, a lot can change in the development world. Once I found the inspiration (or time?) to sit down and give web development another go, I felt completely lost. I realized never having learned fundamentals of programming, how to read documentation, or even how the computer really worked, left me fairly unable to adapt to changes in the landscape. By this point, we had fully-capable smartphones, websites that didn’t require full page reloads to update data, and so on. I took not a single course in computer science during my college studies, and am unsure if that would have really helped in the first place.
I realized I needed a structured, fundamentals-focused approach to learning web development that would prepare me for the always fast-changing landscape of web development. I tried tutorials and free courses online. Books did not help any longer, and felt too much like my old way of learning. After leaving university with an average amount of student debt, coding bootcamps costing thousands of dollars were certainly not appealing. In a way, I gave up.
My first job out of university involved some data processing using Excel, much of it monotonous and repetitive. I now know I have somewhat of a “programmer’s mind”, an characteristic of which is a certain degree of laziness. Selecting, copying, and pasting things repetitively between Excel sheets is really boring, even if you’re getting paid to do it. I learned how to write macros in Excel (and I hope I never have to write them again), helping me automate aspects of my work – partly so I could do more productive tasks, and partly so I had more free time.
Over the following few years, I had the opportunity to write scripts to help automate some data processing tasks, including one script that would save a colleague an entire working day’s worth of time copying, pasting, and manipulating data from dozens of Excel spreadsheets. Seeing how pleased he was with this relatively simple script, my interest for programming was rekindled. I started to think of ways I could use this skill to improve people’s lives, even if it just meant sparing someone the monotony of a mundane task.
Having a little more money and years removed from university, I was ready to learn. Coding bootcamps still sounded too good to be true and were a little too expensive. I did some research, tried tutorials again, and eventually found some clarity with Launch School. They offered a few free and fairly in-depth online books I read through. I had moments of clarity and “a-ha!” exclamations that I never found with tutorials or other expensive programming books. I decided to take the plunge and sign up for the program, which is just shy of $200 per month and self-paced. No promises of becoming a “full-fledged developer in just 8 weeks!” I would finally learn this the right way, or at least the way that would work best for me.
In my next post, I will cover what I have learned in the first few months of the program, why I took a break, and why I’m now getting back into it. I hope this blog will keep me honest, and provide a platform from which I can share with you my journey into formally learning how to be a real web developer, nearly 15 years after I created my first web site.