I had first heard of Python during my second year of university, when my dad told me about how it was a cool language that “looked like plain English”. At the time I only knew Java, which definitely does not look like plain English, so this seemed interesting. However, I was still relatively new to programming, so I convinced myself that I should focus on the one language I knew and not spread myself too thin trying to learn multiple different languages.

That was the first time I dismissed Python, and it wouldn’t be the last!

About a year later, I had become more proficient with Java, learned a bit of C and even did a bit of Golang at my first internship. These programming languages all have something in common: they’re statically-typed languages. I remember seeing some Python code at my internship and being absolutely unable to understand what was going on. Not seeing variable types declared everywhere threw me off, and I was convinced that Python code was just hard to read.

Even in my third year of university, I basically still hadn’t used Python. I tried to set it up briefly during a hackathon, but issues with Python versions and a strange issue with OpenSSL prevented me from getting up and running (side note: this blog post actually solved the OpenSSL issue for me). This experience had the potential to be the final nail in the coffin for my relationship with Python, but thankfully it wasn’t.

Funnily enough, JavaScript was actually my first step towards embracing Python. In my first blog post I talked about how frontend wasn’t my thing, and this was definitely true at the time. However, a class I took in Winter 2019 introduced me to Vue.js and my opinion of frontend development completely changed. That was my first time using JavaScript seriously, and I actually really enjoyed it (once I got a hang of some of the wonky syntax). This was also the first time I had used a dynamically-typed language to build something semi-serious; the fact that I actually enjoyed this aspect of it was a key part of my transition to Python.

By the end of the Winter 2019 semester, I was on my way to embracing and actively using Python (though I didn’t know it at the time). However, during my summer at Facebook I didn’t write or touch a single line of Python, so that wasn’t what eventually did it. So what did?

It was pretty simple actually. That same summer, I was working with three other friends to start a chapter of Hack4Impact at McGill. As part of our planning, we had to decide which general tech stack we would be using for the club’s projects. We noticed that other chapters that were more established largely used Flask, which is a Python framework. Much like Python, I had heard a lot of good things about Flask as well. After some basic research, we decided that we would use Flask for our project backends.

Bingo.

Since our club would take on a lot of first- and second-year students, we needed people that could mentor them. These mentors had to know what they were doing from a technical perspective, otherwise nothing would get done (probably). Once I realized this, I did a deep dive into Flask to try and ramp up on it as quickly as possible. It took a couple of months, but things eventually started to make sense. Previously I had only used Java Spring to make REST APIs, and seeing the simplicity of Flask in comparison was a bit shocking. After doing lots of reading, I decided to create a budgeting app for myself with Flask so that I could get some hands-on experience with it, and at that point I was sold. Flask did it.

…And that’s how Python stole my heart. I’m still very early on in my journey with Python, but I’m on the hype train now. Like any language, Python has its drawbacks—but for now I’m loving the simplicity and ease of use that it offers. I’m looking forward to learning more and hopefully building some cool things with Python and Flask.