It was 2007 when I started college and the first language that I used to code was QBasic. I precisely remember the first program that I wrote was to compare 2 numbers to find out the bigger number. QBasic was quite easy, straight forward and easy to code language.
Thank you Ms. Roohana Parabia
We had this awesome Professor Ms. Roohana Parabia who taught us problem-solving. This course was the first course that we started with in college. I have tremendous respect for Ms. Parabia and I think she has a long-lasting impact in my life. She was an excellent Professor and she taught me how to learn. I would like to dedicate a few lines to her which I think is very valuable to any new programmer or even an experienced programmer.
She had this unique style of teaching. In her first lecture, she asked us how to make Tea. It took me quite a while to understand that she was referring to pseudocode for Algorithms. And I still remember, I had answered her question and had suggested that this is an algorithm to make Tea and she asked how do you know. I had replied that I had learnt in school. There was a guy named Abu Jafar Ibn Musa Al Khwarizmi and this term Algorithm is taken from his name. When I took this big name in my class, students were laughing(but I knew I was right) and Ms. Parabia supported me saying that I am right. It was a good beginning. In the next set of lectures, she used to just give us a random statement and used to ask us to draw Flow-Chart for the same. I must say the struggle was real for me. Some students used to give the quick flow-chart and I used to struggle till the end. Eventually with a lot of practice I got better at it.
What is the problem
Often some words keep mumbling in our mind from certain people. “What is the problem” - these 4 words are the words from Ms. Parabia that always whisper in my mind when I’m stuck doing something. Often it used to happen that Ms. Parabia used to ask students to come forward and draw the flow-chart that they have prepared. Doesn’t matter right or wrong. It’s a real tough spot to go on the board and look stupid. But Ms. Parabia had this habit, after we are done with Flow-Chart she would ask us to explain it visually on white-board. If it is correct Flow-Chart then it would go smooth otherwise one would find the issue on the white-board itself while explaining. And that’s where Ms. Parabia would ask, tell me what is the problem. It’s after we get certain maturity we understand things and in this case I think it was after 2-3 years I understood the real meaning of this words. Always, always and always she used to ask “Do you understand the problem”. Tell me - “What is the problem”. If you’re able to explain the problem to me then only you’ll be able to suggest a solution for the same. I was not very good at understanding I must say but over the period I took this lesson with me and I was able to make good progress on top of it.
No Code without Flow-Chart
Ms. Parabia strictly used to suggest, code the solution only after you have a working Flow-Chart on the paper. Not a lot of students used to follow this rule but I used to try to follow and the benefits I found were tremendous. It gives a lot of clarity of thought if we have solution on paper first. Coding aspect is simple and straight-forward if you have a working solution ready.
Ms. Parabia taught us 3 Algorithms by just using common sense. Bubble Sort, Selection Sort and Insertion Sort. She just used a whiteboard and helped us to derive the algorithm rather than teaching it from the book directly. I think this had given a lot of morale boost to all the students to find the solutions by themselves. In the learning phase, one should focus on finding solutions by himself rather than reading directly from the textbook (I still follow this). I still remember at the end of the course, she asked us that tell me which algorithm would be faster among these 3 if the input had 10 numbers. Like a crazy person, I had debugged all the three algorithms with a different set of inputs and the number of steps in each run was not saying which one is the best. It was in later semesters, in Algorithms course we understood the notion of Time and Space complexity, where we could appreciate the questions that were asked to us by Ms. Parabia. Unfortunately, after our course, she had left our institute but I must say I owe my career and love for Programming to Ms. Parabia. If I wouldn’t have had such a great teacher at the beginning itself I think I wouldn’t have felt this much excitement about Computer Science.
Coming back to code…
QBasic - Super awesome, super simple and I had coded 50+ Programs in it
Entry of C. My all time favorite Programming Language.
When we moved to C from QBasic in our subsequent semesters, we didn’t like semi-colon at all. We used to miss QBasic. My opinion about C changed When I learnt about pointers, double pointers, huge, far and near pointers. This was super cool, super exciting stuff. I still miss those geeky pointers which can do anything and everything. Just for fun, I used to use double pointers to code data structures.
Moving to OOP… C++
C++ was the next in the game! I started OOP journey with C++. Inheritance, Virtual Functions and STL were way to cool to start with. I had coded a lot of Algorithms and Data Structures in C/C++ both. We were not quite aware on the concept of Competitive Programming at that time otherwise I would have tried it for sure.
Finding bread and butter, The entry of Java.
In my college, one of our professor was very known for his love of Open Source and Java Tech Stack(Dr. Kamlendu Pande). I had heard from my seniors that big Enterprise Applications are coded in Java and it’s really vast and complex. I got really excited about Java as I wanted to build Enterprise Applications with huge scale and great impact. Hence I had learnt Core Java to great detail and with great passion. Eventually, I found my bread and butter also in Java and Yes, I love this Language a lot(Please don’t ask me to choose between C and Java ;-))
With that I will proceed with my blog and I’m sure you’ll find it useful.