From BASIC To A Basic Ruby App
My first experience with programming was when I was 7 years old. Being a typical youngest child of the family, I would often copy the activities that I observed my older brother and his friends were into. My brother had a friend who was into programming and I remember one day the two of them made a simple game using the primitive programming language BASIC. There was nothing groundbreaking about the game, it would ask you simple questions and then prompt you to answer with a number or a specific word. There were no graphics at all but I was absolutely hooked. It’s important to emphasize that this was happening in the all-too-distant year of 1986, back when Ronald Reagan was still President. Younger generations probably struggle to grasp just how truly limited personal computing was back in those days given how in present time we all have in our pockets what would have been considered a supercomputer back then. I was actually around and active in computing back in those days. Very young, but very into it.
In learning BASIC I made my own games for a year or two but eventually I ran out of new things to do with it. It was a toy and I was a child and like most children I grew tired from not having any new bells and whistles. I didn’t have anybody in my family or at my school to show me where I could take things next. I think back on those times now, almost 30 years later and imagine what if. What if I had stuck with programming for 30 years?
The truth is, my school did not offer any programming courses. Even by high school in the mid 1990’s, though my school had a computer lab open to those who coded as a hobby, only basic computing was taught and never programming languages. I wish I had somehow stuck with it on my own though.
Better late than never though right? I have worked on website development in various capacities professionally for the last 10 years. But other than vanilla html and css I never delved deep into creating my own programs, at least not since those BASIC days back in the 80’s. I incorrectly believed that true programming was far out of my reach, that it was something that required many years of hard work and a CS degree before one would be able to make anything useful. While it’s true that it takes many years to master, I was dead wrong about not being able to make something in a short amount of time.
That’s why this simple ruby gem which tells you real-time weather information is so meaningful to me. Without graphics, images, links or colors it takes me back to my BASIC days. But unlike my childhood programming, these ruby skills represent a new path forward for my career.
When I co-founded a tech startup a few years ago, my company needed hundreds of thousands of items scraped from major supermarket websites. Working as a project manager, I hired a man from Pakistan to make the web scraper for me. I can’t remember what I paid him but it was hundreds of dollars. This weather gem, which scrapes from the weather underground website, is proof that I now possess what I consider to be a superpower. The ability to bring my tech ideas to life on my own, with my own two hands and without having to pay anybody else or involve anybody else to me is the representation of freedom, and the feeling is absolutely exhilarating.
Aside from what it means to my life, I must also say that coding this gem was a pleasure. I ran into a few walls every now and then, which I call “why the #$^& isn’t this working moments” that happen on every project. But I was ultimately able to overcome all of those issues from careful trial and error and occasional googling. I find that I am getting much better at debugging from isolating different parts of a method and testing them one at a time. Breaking things down allows me to laser focus in on where the actual problem is, rather than changing all parts of the method and breaking things that previously weren’t broken.
I’m also proud that, without learn lab tests to lean on, I was able to think through possible problems users could have with my program. For example, my weather app requires people to type a number between 1 and 6 at one point. What happens if somebody types a number higher than 6, lower than 1 or something that isn’t even a number? These were the little things that I worked through on my own and I am delighted to have created something from start to finish without any hand holding.
As I move on to making rails apps I am pleased that I can make little gems that can work behind the scenes to enhance the visual web apps that I will soon be creating. I’ve had a wild 3.5 decade journey to this point, but now that I can program (again) I know it is something that I will never again fall away from.