Experting C Language

Experting.. is it even a valid word in dictionary?? Or in any language ??

I don’t care if it is. I am not going to apologize for my bad English. I meant it to be wrong cause this article is not about English. It’s about programming language and WE are going to program the fucking world if we get a chance.

C language

c

 

When I was first exposed to object oriented concepts I was very happy that finally I am getting relieved from middle level language ie C. I knew how to program in C but never had full confidence that I can program everything in C. But the same thing can be done using OO concepts easily. If you compare the OO with C then obviously you will find the programming in OO is easy then in C. Now If you think C is easy language then tell me how you feel about assembly.

The whole point behind the development of high level language was to increase readability. If you run  ten rounds around a football ground for week, then tell me how you feel about running two rounds from next week.

It’s the same analogy with programming language. We could have achieved everything with assembly but it was hard so the high level languages were invented and people found it easier to code. The Unix and Linux Kernel was rewritten in C. C became the most popular choices among the developers with its many pros and some cons too.

Now, if you are normal programmer which means that you love C and there could be chances that you don’t know the deep Secrets of C. The whole thing that I am trying to say here is that no matter how much you are a efficient in java or python or php you just can’t ignore C. everything around us is in C or some part is. Even the Java Virtual Machine and python were invented using C.

 

Are you an Expert in C??

So how long have you been using C?? Are you an expert in C?? this is what you should ask yourself everytime. For any language to expert it takes time and C is very vast. I am using C from past 4 years, still I think I haven’t known all the secrets of C. If you think that you  are not an expert then it’s ok. C requires a lot of time to expert. We always learn new things and behavior in process problem solving. That doesn’t mean  you are not a good programmer. All I am trying to say that even if you master a language and do all the things with it there are always some loophole in the language itself and sometimes even confusing that we code something that was not meant to be. Have you ever realized that there are so many books in C. And these books are not only about the core programming but about only expected features of C or features of C. Now one thing I want to make clear is that you don’t need to learn the features of C unless you already are a programmer programming in C but if you are then you need to keep your code safe and vulnerable free.

For beginners

If you have never programmed in C or you are in learning process of C. then you should keep in mind that you are not supposed to know all the features of C. You are supposed to know the basic of how to program using C rather than becoming an expert in C. So if you are a beginner my suggestion would be don’t try to be expert, just learn the basics first. For the basics I would suggest any book which has written learning C, beginning C, etc kind of book. And of course we have a C programming book from the creator himself Dennis Ritche himself. It’s a good book to start and graps the basics of C. Although it’s a good way to learn programming I didn’t like the way the code was presented in the book. C with example by Noel Kalicharan is the best book to start programming in C. Don’t try to learn everything in the book. With time you will be expert but it takes time. You can learn a language basics and be a good programmer within weeks but to be an expert it takes years.

 

On the way to become expert

You now have the basics and you want more. It’s good to be wanting more we all want more in life. We want to know all secrets of life and we even want to know who is that women always screaming Thomas in Tom and Jerry.

The first thing is to understand is the way you are learning C. If you like to learn a programming language through Video tutorials then its fine but I think if you are trying to be an expert in a language then it could be difficult. You must look into the smelling pages of books which you hardly open. There are lots of writers and books which are available these saves a lot of time to make a researches in C and they basically give you the secrets of C. Let me tell you a secret “Gangadhar hi Saktimaan hai” now you are an expert. The books like Traps and falls in C, Understanding Pointers in C, Advance topics in C and my personal favorite Expert in C are good books to go with. And even after all these you think that you are not an expert programmer in C then also its OK, this means that you still want more and just as I told earlier it’s good to be wanting more you sexy beast.

Advertisements

Object Oriented and Procedural Programming

When you are into IT related topics one things you hear a lot is the word Object.

You must have heard something about Object Oriented Programming and that the concept has totally changed the way of programming which is true. Nowadays most of the application are developed by using Object Oriented Methodologies and it’s very important to understand about object.

This blog that I have created is about Object Orientation and how to understand an Object. For this topic you don’t need any Programming knowledge and even a person which is not from IT sector can understand. coding

what is this object?? What does it do?? How does it Revolution-rises the programming

So, what is an object? In some books you might found the definition like object is an instance of Class. Now after reading that definition you must be thinking what the hell is this Class?? Is it some thing our lecturer makes us sit and listen to the boring lectures. Well that was the first impression on a normal person who doesn’t know about programming. And I don’t know what with the academic books, they always find out the way to confuse us with some new definition all the times.

To understand about Objects first it is very essential to understand about the previous ways of programming. By previous I didn’t mean the assembly language though it comes under the same category. The old way of programming is call the procedural based programming such as C.

These languages are based on the concept that what a program should do and how would you expect a program to run. For this you have to provide step to step procedure to take steps and these steps can be further divided into sub modules. for e.g. in a student teacher relationship if we emphasis on developing a program based on the functions like teaching of a teacher where students and teacher are the constraints then the process is procedural process.

This approach had several shortcomings while compared to real world application such as in if we follow this approach the various functions like evaluation which is done by the teacher for every student will add many complexities to the problem.

The new approach used is OO methodologies in which rather then giving emphasis on procedure we give more importance to the real life object. for e.g if we take our previous example the students and teacher are the real world objects and teacher can have functions like teaching and evaluating as well and students can also have their own functionality.

Classes and Objects

Now lets get into the previous definition of object that we read. Now we have understood that we emphasis on real world objects rather then the functions, then what do we do with the functions and how are they implemented. These functions are kept within a Class. A class contains the members and member functions of an Object on which the operation is supposed to perform. So the functions like teaching and evaluation are kept inside a class. And that is what is meant by Object is an instance of Class as it provides the type definition of an Object.

Now, I think you have got some idea about Object. Don’t get afraid of it and use this amazing approach instead of traditional one to make your life more easy.