Frustration of a Lazy Coder

  • 0

Let me put this right away, I am a very lazy coder, slow learner and procrastinator. I am a Computer Science and Engineering (CSE) graduate and working in a multinational software services company with 3.5years of experience.

I have to add more to the introduction and background information, bear with me. People of my age with state syllabus background were introduced to computer programming in our Engineering and like many, I was a bit petrified and I still do get scared, but I have evolved differently in the last 10 years which includes my 4 years of computer engineering, 3.5+ years of software job and 1.5+ years of downloading and watching movies. This is a long post – but have some patience because I am trying to raise important questions here.

"If you can't explain it to a six year old, you don't understand it yourself." ~ Albert Einstein

It all started with C

In the 1st year of Computer engineering we were introduced to C language. I forgot to mention that I have a bad habit of leaving things in the middle when I don’t comprehend them after reading it 3-4 times and this habit has hit me very hard and almost snatched away my career.
The concept of C pointers was so frustrating that I decided that I would never take programming as my career but thanks to Let Us C by Yashwant Kanetkar, which made C simple, but there were other questions which made me dislike computer programming. The implementation of C language in Data Structures made things even worse.

Long Jump to JAVA:

Enter the Object.
In the 2nd year, we were asked to learn JAVA. We were introduced to the new world of programming languages. The word OOPs was used repeatedly; technical jargons like Polymorphism, Encapsulation, and Inheritance etc…were thrown at us. These concepts of OOPs were very obfuscating but my friends didn’t find the difficulty which I faced and I used to think that I am not intelligent enough to grasp the concepts of computer programming.

I realized that ‘Object’ was sacred in OOPs, Classes should be treated like parents and don’t think deep thought on they function in the background. But, I was curious about ‘Under the Hood’ of all these things. You may question that ‘A guy who sucks at basics want to know under the hood functionality? ’.
The words ‘object’ and ‘instance’ were used as if they were the same thing, some said that they are like twins, some said that they are different and some didn’t know what to say. So, again I had to leave JAVA in the middle. By the way, the fall of JAVA applets was happening.

JavaScript:

The so-called spaghetti code generator.
We were taught the basics of JavaScript and when I recollect what I was taught, I can easily formulate few points on how not to teach programming. I can say this one thing with confidence with the limited knowledge which I have that 9 out of 10 people didn’t know JavaScript. I hated JavaScript because of its unbearable structure and its ability to produce spaghetti code. But, after a lot of self-learning of JavaScript (I restricting myself to basics here), I realized that it’s our understanding and bad teaching which made me hate JavaScript and nothing wrong with the language.

Many programmers feel that even talking about JavaScript will take them to lower level and it makes lesser known people feel that learning JavaScript is a waste of time. Some people preferred JAVA applets to JavaScript.

C# (See Sharp):

I was introduced to Microsoft’s C# at my work. The .NET framework added a lot of confusion, but slowly I got rid of confusions but again asking for clear understanding of basics hampered my learning. Developing code with Visual Studio was easy, but the underling layers of it interested me. After reading many books and understanding few things I came to a conclusion that server side programming languages are hard to learn, but you have to live with it.

Microsoft was coming up with various versions of Visual Studio. The .NET framework was getting updated frequently, introduction of lambda expressions etc… made me feel that I have lost the race in trying to understand the language because when you have a job it is not your job to learn things but to implement them.

Still with me? Okay, done with the background and my experiences with computer programming, some important questions and my perceptions. Again, I repeat the first line-- I am a very lazy coder, slow learner and procrastinator.

My thirst to understand the basics had irritated many, interested many and I was ignored by many. Few examples and questions will be followed.

What is the difference between?
  • int number;
  • Int32 number;
Is number an instance or object of the class Int32?
Very importantly, are you sure that Int32 is a class?

I hardly get answers for the above questions, I never knew the answers to them till recently.
In JAVA and C# we have Classes? Do we need them? Apart from the structuring of code, are they helpful in any way?

Does objects and instances mean the same?
When learning server side languages we are told about its advantages, one of the so-called advantage is Static Typing. I ask, is Static Typing really required?
The answers for the above questions comes within a second, just think again, the only answer which you think about Static Typing, is it really required?
  • Does JavaScript have the concept of Inheritance?
  • Does JavaScript require the concept of Inheritance borrowed from other languages?
  • Do you want to write JavaScript Inheritance based on the definitions of other languages?

Enough of these questions, if you are under the impression that I am being pompous, then let me clarify that even I am not clear on the questions and concepts mentioned above. I am just putting forward my views on how programming is taught and how unclear are the concepts of computer programming when they are introduced to the people at the lower level like students and amateur developers. I am confident that the way we are teaching computer programming is flawed and the way software companies train their resources is not satisfactory.

C# came with Lambda expression and long back Anders Hejlsberg has given credit to people who developed the concept which takes us back to the old mathematicians. The way in which we are exposed to the basics of mathematics is our primary schools is like throwing a kid into a river of crocodiles.

A colleague was referring to the so called glorious policy of Fee-Reimbursement by YSR which eventually brought down the value of Engineering and has destroyed the very few good engineering colleges. In the discussion about policies, I asked him to prove Pythagoras' Theorem, he said that he doesn’t remember it (Even I don’t remember many things), I asked him – who deserved the credit for Pythagoras' Theorem before phythagoras came with it? He had no clue. The scenario of the primary education system is horrible, the government schools teach phythagoras theorem (hypotenuse= square root of sum of squares of the other 2 sides) because it is written like that in text book and private schools teach it without any understandable explanation because you have to score 100/100 in your board exam.

Recently there was a debate on Sanskrit and as expected lot of useless things were being said about it. I have seen people saying that Sanskrit is a language of the elite, it a racist and casteist language. It will only spray salt on the wounds of lower sections. Eminent Historians have distorted every part of our history and it is constantly being told that Sanskrit is the language of the elitist crooks, on the contrary, the poets and writers from the lower sections made Sanskrit popular. There were 2 colleagues of mine who hated Sanskrit for different reasons. One hated it because he believed in Aryan Invasion Theory and the other hated it because Sanskrit represents the oppression on lower castes. Recently both took huge interest in learning Sanskrit as one of them read the bunkum theory that Sanskrit is not the language of India and the other was convinced by some brainless blokes that Sanskrit has nothing to do with religion.

Sanskrit is the only scientific language. Period. Computer languages, the compilers and the semantic interpretations is closely related with the grammars of natural languages. One of my friend said, Sanskrit is the best way to introduce kids to mathematics and computer programming as it improves the logical and analytical thinking of a kid without the need for a separate classes on Analytical and Logical Skills. I know that many of you are cursing me for taking this post from Arctic Circle to Antarctica but remember that both are poles and are filled with ice.
The Sanskrit word for awareness is smriti, which no one can pronounce.  This may explain why awareness has not become as well-known in the west as karma, dharma, and nirvana.”~ George Ilsley
I have limited knowledge of the above mentioned computer languages.
I am a very poor programmer, i don't even rate myself above 4 out of 10.
My exposure to Sanskrit has only been in my intermediate.

Image Courtesy: Code Project

No comments:

Post a Comment