MyStory#02 – Deciding Where to Study CS

[su_box title=”Previous Posts”]
This post is part of a series. You can read the previous post from here:

[/su_box]

Once I managed to figure out what I wanted to study, it was time to decide where I would study it. I made my decision through a systematic approach.

  • First, I decided whether I wanted to stay in Bangladesh or go abroad. As mentioned in the previous post, it was very unlikely that I would have gotten a scholarship abroad unless I sat for SAT exam, which I didn’t I want to do since vocabulary was weak. From what I had heard, you need a very strong vocabulary to do good in SA. I am a realistic person. Since I knew I wouldn’t get a good result in SAT, why try?

  • Next, I needed to decide whether I wanted to try for public universities or private. Again, trying for public universities would mean I would have to study a new curriculum due to the huge difference between “A Level” and HSC syllabus. Additionally, the admission exams for public universities were really hard (from what I heard) and one needs to heavily prepare for them for months before they have a decent chance (or so I had heard)! I didn’t have the resolution to go through such intense training.

    Besides, I had a feeling that even if I tried, I wouldn’t get a chance in a public university. The competition was very high and with my flaky memory plus low concentration power, the chances of breaking through were really slim. And even if I did get selected in a public university by a stroke of luck, what if I didn’t get selected for Computer Science subject? If I get selected for, let’s say, Water Resource Engineering, then there was a chance that my parents would have forced me to study that against my wish. You know how parents are right? The allure of having their children study in a public university triumph over their children’s dreams (if any). Not every parent has such views but I didn’t want to take the risk.

    Hence I decided to study at a private university. Private universities are much more expensive than Public universities, but I wasn’t too worried about that. Remember, my dad originally wanted me to study in a medical instead and I was very confident that my dad didn’t have any confidence in me. He knew I would not get selected in a public medical and as such, he must have secured a good amount of money as “donation” for some private medical. In 2011, the market rate for donations to medical was around 1.5 Million Taka (excluding tuition fees, living expense and etc) while one could get a degree from a private university for only 0.5 Million Taka total. From how I saw it, I was saving him money by studying in a private university instead of a private medical.

  • Next, I had to decide whether I was going to study at a private university in Chittagong (my home town) or go to the capital city Dhaka. Back in 2011, there weren’t many options for me to choose from in Chittagong. We only had IUB, EDU and Premier University in Chittagong and I didn’t think any of them were good enough for Computer Science back then. On the other hand, Dhaka had some promising universities. I don’t know how, but I narrowed down my scope between the following three universities: AIUB, BRAC, and NSU. It had to be one of them.

AIUB vs BRAC vs NSU

I tried to get as much information as I could from my friends and family. Frankly, there was no clear cut method to measure universities. I was getting very conflicting advice from people. Some were saying X was better than Y and then some were saying Y was better than X.

Eventually, I decided to go Dhaka and see things for myself. At the beginning of July 2011, I visited all of the three universities and collected their admission brochures and forms.

NSU quickly lost out in the battle. It had an amazing campus but its reputation for CSE lost out to AIUB and BRAC (talking about 2011; NSU seems to be more popular now). NSU was much more popular for BBA than CSE. Additionally, I heard getting good grades in NSU was the hardest among the three and I was looking for an easy going life, so I crossed out NSU in the early rounds.

So the final confrontation was between BRAC and AIUB. I was kind of leaning towards AIUB since I heard that getting marks there was easier; hence life was easier. But I couldn’t just enroll in university just cause it was easy going! “Easy Going Life” was a great perk but there had to be more substantial reasons than that.

Eventually, I posted on Facebook seeking help from my friends.

On that post, the majority of my friends encouraged me to join BRAC for CSE. According to them, BRAC was better for CSE and AIUB was better for EEE. Nobody had any specific reasonings though. Everyone was just talking based on what they “heard”.

Unconvinced, I decided to make one last attempt in collecting info. I messaged one of the AIUB facebook pages online and simply asked them, why should I join AIUB? The admin of that page did a fabulous job at convincing me. He gave me the following reasons:

  1. Team Rapture, a team from AIUB, had won Microsoft Imagine Cup People’s Choice Award that year. It was a big deal in 2011. It was featured on Daily Star and Ityadi. You can take a look at the project itself from here.
  2. The first Bangladeshi to get a job in Google was from AIUB; Zaheed Sabur. I am not really sure if Zaheed Sabur was actually the first person from Bangladesh to get a job in Google, but regardless of the fact, he still holds some great achievements under his belt, e.g recently he has been promoted to a Principal Engineer at Google. You can read about that on Dhaka Tribune – Zaheed, first Bangladeshi to be Google director.
  3. Other random reasons, e.g AIUB had an active “Microsoft Student Partnership” (MSP) program. When I saw MSP’s logo on AIUB’s website, I was very impressed. I thought AIUB was the only university with such a program since I couldn’t see MSP’s logo in BRAC’s or NSU’s website. It took me a few years to realize that other universities also had an MSP program.

Seeing students from AIUB winning competitions hosted by Microsoft and getting jobs in Google, I decided to ditch BRAC and just enroll in AIUB. It was not like BRAC didn’t have any achievements, but just that nobody told me about them and so I was ignorant.

I knew that the reasons, based on which I made my decision to join AIUB, had many flaws in them but I didn’t really care much. Ultimately, weren’t they all the same? Somebody even suggested I just go which ever was near my house; I didn’t live in Dhaka so the advice wasn’t applicable to me. AIUB was better than BRAC in certain sectors whereas BRAC was better than AIUB in certain fields, e.g, if anybody is interested in Robotics I would recommend them to go to BRAC since they have much better facilities for robotics (but just because I recommend BRAC for robotics does it mean BRAC is the best university for robotics? No. If you take my words for a fact then that would be a “Appeal to Authority Fallacy“).

Getting enrolled at AIUB

Getting enrolled was a simple process. I can’t remember if I gave any written exam, but I do remember appearing for VIVA. On the day of my VIVA, I was supposed to go to the CSE building for my interview. I went to the venue quite early. When I entered the waiting room I was a bit surprised to see many people in formal attire. In the entire room, I was the only guy who was wearing jeans and sandal. It felt awkward.

The guy sitting beside me in the waiting room very friendly and eventually we started to chat. At some point, he asked,

Random Guy: By the way, why did you wear sandals instead of shoes for the interview?
Me: I didn’t know we were supposed to wear shoes. Why? Is it going to affect the interview?
Random Guy: Well, usually they immediately reject candidates who don’t have formal attires. But don’t worry. Maybe they will make an exception for you.
Me: What? Really? Darn! I didn’t realize formal attires are so important for engineers!
Random Guy: Engineer? Huh? What are you talking about? This is the waiting room for BBA students.

So basically, I went into the wrong building. The CSE building and Business building was side by side. Thankfully I realized my mistake and immediately ran back to the CSE building. When I entered the room I saw there were 5-6 guys sitting in the room all wearing jeans + sandals. Heck, one guy was even wearing a flip flop! I was finally in the right room.

Eventually, I was called for my interview. There were 3 people sitting behind a table. A young guy on the left, an old guy in the middle and young girl on the right. After some casual conversation, they started my interview. The first question was from the girl, “Describe yourself”, she said. When I heard the question, my mind immediately went blank. Describe me? Were they asking about a physical description of myself? I am a guy with black eyes, black hair, and 5 feet 9-inch height? My mind struggled to process the simple question. I started stammering and ended my spouting nonsense like “I am a confident person”. The girl literally laughed when she heard that. I clearly didn’t look very confident to her at that moment.

The leftmost guy asked the next question: “What is a software?”. I couldn’t believe my ears. He asked me a very simple question but to me, it felt like somebody asking, “What is a chair?”. I know what a chair is, but how do I define it? I got confused again. I deeply regretted not coming prepared for such questions. Who was it that said the interview was just a formality and it would be easy? It didn’t feel easy to me! I ended up saying something similar to: “A software is a program that makes our life easier.” It didn’t make any sense to me, let alone the interviewer.

They were not happy with my performance. Disappointed, the leftmost guy asks the last question: “Do you know any programming language?”, and I immediately cheered up. “Yes! I know how to code in C”, I replied. That was it. The few hours I spent in learning programming (only till loops and 1-dimensional arrays) was finally coming to use. The left guy looked surprised and finally, the center guy came forward. He gave me a piece of paper and said, “Write a program that prints the sum of integers from 1 to 10”.

By then I was rejoicing inside my mind. I knew how to do that. This was a simple loop exercise. I quickly wrote the following code:

#include <stdio.h>

int main() {
    int sum = 0, i;
    for ( i = 0; i <= 10; i++ ) {
        sum = sum + i;
    }
    printf ( "The total is: %d", sum );
}

They were impressed; gave each other a look that said: “this kid is good!” or maybe it was just my imagination. After few follow up questions like “What is printf() function”, “What would happen if you start your loop from 1 instead of 0”, they let me go. After a few days, I got a call/SMS telling me that I passed the interview.

Conclusion

Now that I think of it, the interview in AIUB was my first “Coding Interview” and I aced it! Well, at least I aced the coding part. If not for that coding question, I probably would have gotten rejected and ended up somewhere else.

[su_box title=”Next Post”]
The next chapter is not out yet. If you want to get an email when it’s published, then subscribe here.
[/su_box]

MyStory#01 – How I ended up studying Computer Science

[su_box title=”Previous Related Posts”]
This post is part of a series. You can read the previous post from here: MyStory#00 – Preface
[/su_box]

When I was a little kid

When I was a little kid, I used to get average results in exams. I always struggled somewhere in the middle of the rankings. Heck, in class five (or was it class 6?) I even failed once! Scored 48% only. Luckily my school did not make failed students repeat the year so I managed to move on. I mainly struggled with subjects that required memorizing a lot, e.g, geography, history, English language (I didn’t remember spellings/grammars :v). I guess my memory was never my strong point.

Apart from studying, I didn’t really have anything else to do. I spent my free time watching cartoons and playing video games. This really annoyed my father. He would always complain about how he never saw me studying. In my defense, I used to point out that he never saw me studying because he came home late (he was a doctor and very workaholic) and obviously I was done with my studies by the time he came home. He never bought my logic though. He would say, “Son, if you don’t study till midnight, can you even call that studying?”

My results started to improve once I reached class eight. We started to prepare for O Levels exams and it was our decisions what subjects we will give exam for. So when I replaced memorization heavy subjects like Geography and History with Physics, Chemistry and Biology (this also had memorization in it, but at least there was some logic with it! Can you show me any logic in Geography or History?), my results improved automatically. I was finally a good student!

Read More

MyStory#00 – Preface

I started programming back in 2011. Next September (2019) will be exactly 8 years since I started my career as a programmer. When I started programming in 2011, I was a complete novice. I started learning programming from scratch at University. Today, I am working in Google as a Software Engineer (I am assuming that landing a job in Google counts as an achievement and indicates that my skill in programming has increased since 2011).

Out of my 7.5 year of programming career, the first 5 years were completely dedicated to Competitive Programming and Problem Solving (CPPS). My greatest achievement in CPPS is qualifying for ACM ICPC World Finals 2016. In order to pursue my passion for CPPS, I switched university twice (AIUB to DIU and then DIU to NSU) and as a result, it took me 6.5 years to complete my undergraduation.

Well, the above information should give you a rough idea of who I am. As to what this “Preface” thing is about; well, it’s a preface of my story. My story about how I got from a complete programming novice to World Finalist + Googler. Currently, only I know what I have been through and how. By sharing my story I am hoping that everyone will get to know the same life lessons that I learned from my journey. I think the story is quite fascinating and contains answers to many of the questions that beginner programmers often face. For example:

Read More