Blog

"It just clicked"

I have been messing around with computers for most of my life. I would play around with the appearance/cosmetics of Windows XP/Vista/7. Install custom ROMs on my Android phone so I can customize the aesthetics to my liking.

I did not start coding until second semester of freshmen year (2014) when I took Intro to Java. I learned if-else statements, for loops, classes, objects, etc. I took the follow-up class and learned Java FX, data structures, sorting methods, big-O, version control, and more. I struggled. It was not a fun experience and it made me question if programming was for me.

The next time I took a programming class was after I transferred schools. The Industrial Engineering degree I was pursuing required Python. So in the summer of 2015, I took the Python course and learned a lot of concepts that was taught in Intro to Java. I created a little game with turtle and tkinter, created a chat board through pymysql, and did some XML processing. Also dived a little bit into web scraping and data processing using the pandas package.

For most, the first internship is a way to understand how corporate world works. It's a time where you find what interests you and what doesn't. I realized I did not like working on Excel and use software like SAP. I wanted to improve a process that was very menial. I used VBA and created a script that goes through an excel spreadsheet and outputs a calculation. I know what you're thinking, "Why not just use Python?" Using Python to do data analysis was in its infancy back in 2016. Jupyter Notebook was created in February 2015. I didn't know about it much later. Despite not knowing about Python, I still had fun and accomplished creating that script that automatically does calculations without having to do all that manual work on Excel. Maybe coding was for me.

At the end of the first internship, I wanted to continue to be in the business side of things but also be able to code whenever I needed to. In this second internship, I was a data analyst tasked with producing monthly operational performance reports for mainline and regional carriers and any ad-hoc analysis. I used SQL to pull the data from the SAS servers and Excel/Powerpoint to produce the monthly decks. The process very convoluted and messy. The powerpoint was linked to Excel so whenever data was changed in Excel, it would show up on the powerpoint. Because there were so many metrics that were linked, it was hard to "debug" and figure out where errors were coming from.

I didn't know about Jupyter Notebooks until in 2018 when a friend shared with me all the cool stuff he learned in the same Python course I took three years prior. Jupyter Notebooks was gaining in popularity and the course added it to the cirriculum to help us Industrial Engineering students prepare for the rapidly evolving Machine Learning/Data Analytics job market. Notebooks makes data analysis so much easier as there was no more compiling all at once to have an output. All you had to do is run a piece of code in the notebook and the result will show up. It makes development so much easier.

It's amazing to see how fast technology changes. Looking back, if I had known about Jupyter Notebooks, that would have made life so much easier in both internships. I would have created a more modern solution than VBA at my first internship. Instead of Excel, Python would be taking care of the data processing as well as the visuals. Knowledge is power.

With the advice of my friend and the continued development of Jupyter Notebooks, I started to experiment with jupyter notebooks at my third internship. A simple join that would take forever and possibly cause Excel to crash now takes only a few seconds. It is from this moment forward I could never use Excel the same ever again.

Fast forward a year later, I landed my first job as a Business Analyst. The intention was to continue to hone on my skill in R. I have used R in my classes but never used it in a corporate capacity. I picked up on dplyr, tidyr,ggplot2, and the other packages in tidyverse and was able to create some nice analysis and visuals for leadership. However, with peers slowly transitioning out of my team and no one to really learn from, it was time to begin a new chapter.

I was not sure if I wanted to continue being a Data Analyst or do someting new like Data Engineer. I applied out to both roles and eventually landed with American Airlines as a Data Engineer. It is here where my learning "took off" and it finally "clicked." All of those years of scripting and strictly sticking to functional programming was finally coming to an end. A was tasked to create a simple monitoring tool that checks if a file exists in Cloud Object Storage. It was meant to be a short-term solution. Something that would help my fellow developers check if their jobs were creating outputs or not. However, as more and more features were added to the tool, the more and more the tool "outgrew" itself. Functional Programming had outlived its purpose in this project. It was time to revisit an old friend - Object-Oriented Progrmaming. My code went from a thousand and a half lines of code to just a little less than a few hundred.

"Trust the Process"

Fans of the Philadelphia 76ers know this quote by heart. Likewise, it is a daily reminder to me that even though I may not have understood it the first time, it's okay. Programming was difficult to pick up the first time. I didn't like Java and I didn't like Object-Oriented Programming. But it was through years of functional programming that I started to really appreciate OOP. Sure, it took a language switch to Python but it was all worth it.