1. 程式人生 > >How I got into programming

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.

unnamed-small
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 excell 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?

After learning a bit about Visual Basic I started exploring some other languages. First there was JavaScript. I still remember writing my first function in JavaScript. The main motivation behind learning JavaScript was to write GreaseMonkey Scripts (Is that even a thing now?). It was confusing at first but I managed to make small scripts. I was just not happy with JavaScript. Somehow, it just didn’t make a lot of sense to me at the time. Thus, my research into other languages continued.

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 2010

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.

cover
Intermediate Python book cover

Public Speaking

Google Code-in

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 ๐Ÿ™‚

GCI_logo

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 ๐Ÿ™‚

Book Views Blog Views

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.

140909104006-highest-paid-grads-colgate-university-1024x576
Colgate University

At Colgate, I have been fortunate enough to find a wonderful group of people who are helping me lead a programming club, <Colgate Coders>. We have been organizing various events on campus like an Intel AI Webcast screening, an in-person talk from a senior Microsoft official, a git workshop and an Accenture virtual workshop on cyber-security concepts. We also participated in a hackathon at University of Buffalo. This was only the first semester and we have a lot more plans for the next semester.

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.ย 

Advertisements