Thursday, March 5, 2015

When I learnt how to C

Some times in life, all you can see around you are problems. In every part of your life, you come across some problem and struggle to find a solution, as if it is hidden somewhere in dark. If you manage to solve even one problem, it is tremendous boost to your psyche. It opens a window for light, for fresh air, and gives you hope that the way you solve this problem, you can solve others too.

This happened to me also. When I passed out of 12th standard, I was going through a lot of difficulties. First was the choice of graduate course (which in turn is a choice of career). To make it difficult than it was, I had scored low in my 12th standard, and entrance exams. It wasn't due to lack of potential, but due to lack of focus. I couldn't get rid of the guilt of not living up to my potential. 

I can't say that I would have made it to IITs, had I studied hard then, but I can definitely say that I could have entered a better ranking college. 

With the limited choice my scores permitted, I got an admission to a computer engineering course in MIT Aurangabad. Out of engineering branches my interest was always inclined to computers. So I was feeling better to get that branch.

In an engineering course, the first year is common for all branches. The syllabus for first year includes subjects to introduce all branches of engineering e.g. traditional civil, mechanical and modern like instrumentation, computers etc.

In the first semester, we had nothing related to computers. Some of the subjects like EEE (Elements of Electrical (or Electronic) Engineering) were touted to have caused mass failure in every batch. 

The style of teaching and studying for these subjects was exact opposite of what we had been doing for years. The spoon feeding was suddenly stopped. We were actually supposed to understand the contents, think on it. Although it was welcoming change for me, it did nothing better to prepare for our first semester exams.

I have a natural flair for mathematics, and subjects having some math in it were not a problem. But I was scared of few subjects which were purely theoretical. I thought I will feel better after exam was over. Actually it was even worse. In my opinion I had done so badly in 1/2 subjects that I was bound to fail.

For first time I did not just hate my syllabus, but I was also scared of the results. But it was due in a couple of months, and in our university, it always gets delayed. 

Meanwhile our second semester started. I don't remember why but I missed college for initial few days. I was also bored of engineering college.

But the positive change in this semester was the C programming subject. C is a basic and legendary computer programming language. On my first day in second semester, I attended practical for C.

The task here was simple program to produce addition of two numbers. I had missed few basic classes and also first practical. So I was doing a lot of mistakes. In coding, the logic is almost same in any language. The challenge is to fit your solution in the grammar and syntax of the programming language you use.

I remember our lab assistant wasn't keen on answering my doubts. My batch mate +Pushpendra Chavan helped me out with my first program. But when I ran the program and it finally generated the output, I was very much excited. 

I immediately wrote a program for subtraction, division, multiplication. After having written first program for addition, this required very little efforts. But still seeing your code run and generate expected results gives me a joy even today.

I purchased a copy of "Let us C" a best seller on C language. I started studying this language on my own and solving all the programming tasks in the exercise section. I was enjoying myself doing all those programs.

Though I ignored all other subjects for few days, this got my interest back in engineering. I believed in myself, and felt confident that I would do well in computer field.

Due to my interest to solve problems by coding, I participated in many programming competitions and performed well, won some prizes.

I think performance, praise, confidence etc. are not isolated things. They are all related. You start with one and start a cycle of such things. It may be positive or negative. When I learnt to C, I broke out of the negative cycle (vicious circle) and started a positive one.

I am a computer engineer now (good one ;)), and I love what I do. All days are not same in job though, some tasks are interesting some or not. Whenever I get some interesting task, and I am able to code it and see my code running, I still enjoy it as much as my first program.

Programming languages or the tools I use have changed over years. But all this started when I learnt to C. 

This post is written as my submission entry to an activity organized by +IndiBlogger and