How I Started Coding
Like everybody else, I started out coding by writing random batch files in Notepad on Windows. When I was 10, I wrote the first “app” that actually felt useful.
Back in my day (2007), pretty much nobody in elementary school had phones, so how was I supposed to talk to my friends? We couldn’t download anything onto the school computers and they blocked any website you’d really want to go to, but we were able to plug our USBs in. So the answer was obvious, build a chat program, and put it on the school’s network via USB! In the end what I made was trivially simple - a script that would read and write to a text file hidden away deep inside a retired teacher’s shared directory. When you loaded it up, it would ask you for a nickname when sending messages, and if you typed “REFRESH” exactly, would refresh the message log. I brought the script in on a USB and at my next computer lab, put it in several shared locations so I could tell people where to open it up from.
At this point you might be asking yourself why we didn’t simply edit the text file directly. Well, frankly, I was 10 and I just don’t think I thought about that. In fact I’m pretty sure that the first time I ever had that realization was while writing this, right now. Hindsight is 20/20 I suppose.
But anyways, I felt useful and was hooked. I never took it super seriously but I wrote all sorts of batch scripts to do different things for me, I’m sure most of them were similarly useless if I could remember what they were.
Finally in 7th grade I saw people talking about Visual Basic while browsing Hack Forums. I was beyond excited to be able to make a program with a GUI! I downloaded a cracked version of Visual Basic 6 from The Pirate Bay and started following tutorials.
Several weeks later I made the first program I was actually able to make some money off of.
The Bomb Spammer
To give some context, now that we were grown ups (12), most of us had phones. They weren’t like today’s phones though, no no no. The lucky kids had phones like this:
But most had something closer to this:
I don’t think I knew a single person in middle school who had an iPhone, and only a select few had ones with a full keyboard.
Other than being ugly, these phones were slow. While it’s difficult to make any direct comparison between the speed of the hardware then and now, it was common for phones back then to have a single core running at ~40-200MHz. Compare that to today’s iPhone 14, with 6 cores running above 3000 MHz (3 GHz).
It wasn’t just the hardware that was slow, the cell service was also orders of magnitudes slower than what we expect today. Today we have 5G, which is seemingly as fast as we’ll ever need it to be (for phones). But at the time, we didn’t even have 3G yet. Typical speeds were around 12 Kbps, while T-Mobile’s 5G network averages above 150 Mbps in Q1 2023. That’s about 10,000 times faster.
What this meant was that, for example, getting too many text messages at one time would completely freeze your phone. Sometimes for a long time. So people would screw with each other by sending a bunch of texts as fast as possible so the other person couldn’t use their phone. The only downside to that method was that you had to be sitting there doing it.
And so finally we get to the point - I made a program to handle spamming people’s phones for me. I introduce: The Bomb Spammer.
You’d feed in a list of emails and passwords to send the texts from, choose your message and how fast to send them, and start it up. As step 5 from the image will tell you, the file
reg.txt needed to exist for the program to be usable. It contained a secret key (vinnyisboss) that would allow the program to run if present. I charged $5 for the program, and I’d supply the
reg.txt file to my friends or anyone that paid.
Obviously I didn’t make a ton of money off this thing, but it felt nice to have ~$50 cash in my pocket from something I created. Not to mention all the fun that was had blowing up people’s phones and having my own blown up in retaliation.
In high school I didn’t really keep up with coding or improve my skills much. I guess that’s why I didn’t go into college expecting to be a dev.
In college I was a physics major for the first 3 years. It wasn’t until the end of my third year that I decided I didn’t want to do physics anymore. To make a long story short, I was terrified at the prospect of spending my whole career on a problem or small set of problems that I a) might never solve and b) might simply not matter in my lifetime. I saw all the PhD students excited about tackling these niche problems, and felt like I just knew it wouldn’t be for me long-term. I knew I wanted to switch, and looking back at my past experiences and interests seemed to lead to computer science being an obvious next choice. I didn’t actually major in computer science though!
I ended up with a B.S. in Data Science. Why that over CS? Well, it came down to 1 single factor. The statistics department (where data science was housed), like the physics department, accepted all my math credits from high school and MSU. The CS department didn’t accept a single one, and wanted me to go back years of math. I was already going to be starting my 4th year, which made that impossible unless I wanted to be a super-duper senior.
The Data Science
So I ended up being a data scientist (now machine learning engineer) instead of a software engineer. Initially it felt like a compromise, but during my senior year I realized there were a couple big advantages to studying DS over CS.
- It made more use of my math background. CS didn’t really care about anything other than discrete math, so long as you had the department prereqs completed. In DS, I could actually use all the statistics and linear algebra I’d learned
- DS was closer to physics than CS. It may not seem like there’s any link at first, but I think there is, albeit a small one. Physics is about being able to model the physical world we live in and using those models to make life better (engineering). DS is the same, except we aren’t often modeling anything physical, and those models feed into (software) engineering projects all the same. So the data scientist is to the software engineer what the physicist is to the civil, nuclear, electrical, etc, engineer.
This post was supposed to be something entirely different, but by the time I shit out 1,300 words in this thing I felt like it was too late to just delete it all. So more than anything it’s just a little story. There is no point or lesson. If you got here, sorry, but thanks!