How I got into programming
Hi everyone! I hope all of you are doing great. If you have been following my blog for a while and keeping a lookout at the comments then you might know a bit about me. If you don’t then today I am going to share my story.
That’s me 🙂
I am freshman at Colgate university in upstate New York (more on this later). I have been programming since I was 12 years old and it all began because of an online multiplayer game called Club Penguin. I used to play that game and like every 12 year old I wanted to excel in it; the only problem was that you had to pay in order to get ahead of everyone else. I wanted to buy stuff without paying and that is how I came across a software called Penguin Storm. That software allowed a person to buy anything without paying a dime. Everything was well and good until I found that all of the stuff which I was buying was being displayed only in that software and wasn’t actually affecting the real game. This led me on a quest to figure out how that software worked.
It all began with Visual Basic
My research led me to Visual Basic and from there my independent study began. Initially I tried to get ahold of a teacher to guide my efforts but I soon found out that most of the people I knew weren’t supportive of the fact that a 13 year old could learn programming. Do keep in mind that I am from Pakistan and it’s a third world country. Back in the days, it wasn’t common to hear Pakistani kids saying that they wanted to learn programming. The reasoning I got from the aforementioned teachers was that even adults got boggled by this stuff, how could a youngster like myself wrap his head around it? Nevertheless, I decided to go ahead independently.
Learning Visual basic was hard. I had no clue about what variables were and algebra was an alien topic for me. I started doubting my ability to learn all of this new stuff because it wasn’t making any sense but then again I reminded myself that I had to prove to that guy, who told me that I couldn’t learn programming, wrong. I kept on following online tutorials on YouTube and some other websites which I don’t remember now.
Can I get your help sir?
I still remember the time when I was stuck on regular expressions. I knew what they were but couldn’t figure out how they worked. I went to my computer science teacher in highschool and asked him about the topic. He was clueless! I was kinda shocked because my viewpoint was that regular expressions were a pretty common topic in programming and he must have known about it but that was not the case. Frankly, I couldn’t say anything to him because after all, it was a high school and it was not common for high school students to start asking questions about regular expressions.
Where did Python come from?
Whenever I searched for a programming tutorial I saw that a language named Python kept popping up. I was unsure about whether I should look into it or not because come on who names a serious language ‘Python’? I gave in to curiosity and started reading Head First Python. It was still new at the time and updated according to the Python version available at that time. This book was extremely intuitive and helped me gain a good grasp of Python. While following the book, I decided to maintain a blog documenting my learning. After finishing this book, I felt confident about making small Python scripts.
Head First Python
Step by step Visual Basic
We all need a mentor
Till then I didn’t have a mentor or a teacher and that all changed when I started contributing to projects on GitHub. The first pull request which I ever submitted was a fix for indentation in a Python file. I was so proud of myself because my work was actually starting to impact people. The next project which I contributed to was youtube-dl and this very project helped me meet my mentor. Youtube-dl made heavy use of regular expressions and my knowledge about regular expressions was kind of non-existent. After going through the code and being unable to make sense out of it, I decided to email the main developer – Philipp Hagemeister. He was an assistant professor at a university in Dusseldorf who guided me and taught me what regular expressions were and how they worked.
Philipp used to proofread my articles at a time when I had 0 readers. He spent a lot of time guiding me. I remember drafting a proposal for a conference for the first time and Philipp proofread that and suggested numerous changes which made it worth watching (well actually not because my accent was REALLY bad at that time). My talk got accepted and I went to Germany on a fully funded trip to speak at EuroPython'14 (the biggest Python conference in Europe) as the youngest speaker and only Pakistani.
Along my journey I also got the honour to make acquaintance of Daniel Roy Greenfeld. He is the author of one of the most famous Django books out there, Two Scoops of Django, and is an international speaker. He also worked at NASA at one point. I also consider him as one of my mentors because he helped me with stuff which Philipp wasn’t able to and was the inspiration behind me writing my own book.
After (virtually) meeting all of these amazing mentors I decided to modify the core principals of my life. I wanted to be just like them and help people succeed and learn new stuff.
Fun fact: I have never met my mentors in person. This is the benefit of internet, you get to meet people from all over the world without actually travelling 🙂
Intermediate Python Book
In 2015, I decided to write a book ‘Intermediate Python’ and share my knowledge with everyone. I worked tirelessly on this book and after a couple of months I had something which I could put out in front of the world. I decided to publish it under creative commons becuase I wasn’t looking to earn money from it. The book got the attention of a lot of people and ended up being translated into Chinese, Russian, Korean and Portuguese by independent volunteers. It was also included into the supplementary material of various Python courses at different universities.
Intermediate Python book cover
In 2016, after getting frustrated from the lack of female representation in tech, I gave a guest talk at a community college in London to inspire more girls to choose tech as a career choice.
In December 2015 I took part in Google Code-in. I wanted to take part in Google Summer of Code but Google has strict rules regarding who can participate. I was under 18 at that time so couldn’t participate in it. Nevertheless, I participated in Google Code-in instead and was able to become the first-ever Pakistani to become a finalist in the competition. I worked for FossAsia on multiple tasks and the whole competition spanned a total of about one month. If you are under 18 and want to take part in a beginner friendly competition, I would highly suggest that you look into Google Code-in. It was a life changer and I met some wonderful people along the way in the form of mentors and competitors. I am still in touch with a couple of them 🙂
Welcome back to the present
Today, I am one step closer to my aim. My blog has been read 🎉🎉3,000,000 times🎉🎉 and my book has been read 🎉🎉1,500,000🎉🎉 times by around 700,000 people from 185+ countries (and this is only the English version).
My book and blog have been referenced in classes at UC Berkeley, McGill, Carnegie Mellon University, UArk, UC Santa Barbara and my articles are being followed by people from Google, Intel, MIT, UPenn, UK Customs, Cisco and a whole lot of other places. I have been fortunate enough to impact the lives of millions of people at such an early age. This is just the beginning, I have a long way to go 🙂
Currently, I am studying at Colgate University in upstate New York and a lot of people have asked me about my reason for choosing a liberal arts college and not a mainstream tech university. The reason behind this is that I believe tech universities mould your thinking in a particular way. You spend most of your time working on computer assignments and you don’t get to explore the other plethora of fields out there. Your thinking gets skewed and the worse part is that you aren’t even aware of it. This is why I chose to come to Colgate and spend my time learning about stuff unrelated to Computer Science. I feel like it gives my thinking a unique perspective and helps me think not only about the technical challenges which I will have to overcome but also about the ethical implications of my projects.
At Colgate, I have been fortunate enough to find a wonderful group of people who are helping me lead a programming club,
If you belong to a tech company and want to give a talk at Colgate please let me know. We can cover your travel and housing expenses and can guarantee that you will love the environment and people around here.
If you want to read more about the stuff I have done you can read my resume over here. Currently, I am also looking for internships for summer 2018. If you believe that your company has a place for me in the next summer, please let me know.