Wednesday, December 2, 2009

Learning A Programing Language

Learning a Programing Language

As you know a computer programmer uses a programing language to write his program through which he makes the computer to perform his task.Almost all kinds of program whether application program or system program from any domain can be developed using a single programming language.But in real time when we develop software we get a lot of constraints like:- product delivery time,efficiency,user interface,memory and other resource requirements.When we want our computer to perform our task in these kind of constraints,we have to design and develop the software accordingly and then the idea of using a single programing language for all kinds of application gets crashed.So it is wise to use a suitable programing language according to the product that we want to develop.Thus knowing several programing languages is very good thing.I felt this thing when I came across different kinds of application and so through this post I want to share my experience in programming for the very same purpose of learning any programing language very quickly.

1.Be ready with a fundamental language:-In general any new high language that you come across is an enhancement of some preexisting language.For example:-
C >> C++ >>Java
C++ >> C#
Thus if you know C language then you can learn C++,Java,C# at very fast pace.I would say that if you know C or C++ then it is very easy to learn any language and that too very fast.

2.Get overview of new language:-To learn any new language first you should get overview of the new language through
which you will be able to know the main features of the language.If you are ready with basic then getting overview of the language should not take more than 5-6 days(considering around 2-3 hours a day).You may take more time but keep in mind that this overview means you must be able to answer some questions about language like:-

What are the new and specific features?
What is style of programing like procedural,Object oriented or both?
What are the security and other features that makes the program unique?
How using this language you can develop product very fast?
For what kind of products this language will be best suited?

If you are able to answer above kind of questions very well then you will be able to use this language appropriately to develop efficient products.

3.Get in-hand experience of the language:-If you are ready with basic knowledge of language then you know what are the features in this language that you should use to develop a product.To get an in-hand experience of these features you should take an appropriate application and try to develop this using these features.While selecting the application you should keep in mind that your purpose of developing this product is to use maximum features available in the language.So selection of this application is very important.For the selection of this application you should keep some points in mind like:-
1)For C take, some simple programs and try to play with operating system through them.
2)For C++ take, a real time system application which may be a bit complex.
3)For Visual C++ take, system application which requires some GUI.
4)For J2EE and ASP.NET, take simple web application and try to use features like security,tag & other libraries,session handling etc.
5)For J2SE and C# take simple desktop application with rich GUI.
6)For languages like FLASH and JAVAFX take application which uses some animations.
7)For languages like Javascript and AJAX,take simple web application and try to create an interactive environment between user and web pages.
8)For SQL,PL/SQL you should take test databases and try to use DDL,DML and DCL.These exercises will help you to interact with database in an efficient way.

If through this application you are able to feel the utility of the language then your job is almost done.Now you are acquainted with basic features of the language.So in real time when you come across any kind of application you will easily figure out,"whether for this application I should use this language or not?".

4.Naive to Proficient:-
Proficiency comes from practice.As you develop more and more applications you will get deep understanding of the language.


(Note:-Whatever I have mentioned here, are not hard and fast rules.This is my experience from which I have figured out these points.Please do provide the feedback ,so that in future I can come with some better content.)