Date: 19 May 2007
Send your comments about this article to firstname.lastname@example.org
My students used to ask me “which programming language is the best?” and “which programming language I must learn?”. But the truth is – one cannot give an accurate answer for this. If somebody answers to this question simply - like C++ or Java, I will say he is a frog living inside a well. He may be giving this answer from his experience and knowledge, which is very less.
Understanding of the logic is the important thing we must do first. Earlier days, at the beginning of computer education teachers used to teach algorithm, flow charts etc. before allow students to touch the keyboard. Unfortunately, now-a-days what we see is, they starts DOTNET or Java without the proper programming foundation. One must understand the working of a computer system, flow of instructions we input to a specific task etc. In that direction, they will get the ability to think in such a way a computer thinks. Then only they can develop professional products which meet international standards. In the competitive world of Information Technology qualification is no more a criteria but the talents. To become an excellent programmer, you must care of coding standards, daily technology updates, etc.
Most of the people searching for a best programming language is just for financial benefits. It is not a right approach. Financial benefits will grow with your growth in career. You don’t need to heat your brain much for such things. Well, financial benefits depend on various other factors. It can be the reputation of company, the clients they handle, country or the domain. Telecommunication, Aviation, Finance etc. are examples of domains here. The programming language is just for implementing the needs or requirements. The real professionals know – if one have the good understanding of programming logic then they needs only one more hour to learn one more programming language. Today’s companies need multi skilled people rather than those people who is knowledgeable in one area. A computer can do only what we ask to do. The programmers should not be like a computer. They must think! They must think and find new ideas, or find easy and brilliant solutions to problems occur while the development phase rather than looking at the mouth of project manager always for guidance.
As I said earlier, a person who knows one language needs only a few hours to start coding on a new language. As a fresh brain, you need to select one language for a starting. You can choose any language. If you are an extreme beginner, you can seek experienced people to help you understand the merits and demerits of different languages.
If you really expect an advice on selection of a programming language, I will give you an answer based on my knowledge and experience: You may learn C & C++. Because most of the high level languages today are based on C/C++ syntax. It will help you learn the syntax, semantics, compilation and execution techniques. C language will help you in understanding the programming flow and C++ will help you in applying Object Oriented (OOP) concepts practically.
Once you start learning a language and you come to know “I am getting something”, then you must
try to compare it with other languages – what this language or languages have and have not. In most of the cases you will end up with the conclusion that “both do the same job” unless it is a machine or task specific language. All the languages use IF, WHILE, FOR keywords for exactly the same purpose. Even, these keywords have same meaning in algorithms.
Next is the question of “which domain I have to choose?”. The simple answer is – another question “which field you like more?”. That means, it depends on your taste and your past activities. For example, if you like electronics then embedded technology may be your right domain. If you like computer games and drawing talents, go for graphics domain such as DirectX, OpenGL etc.
Good programming habits is important. There are many important things you must give importance. From fundamentals to very advanced and complex matters. I used to say – “when you study one subject, try to study about that at least a 5-6 kilometers diameter”. That is another words for little knowledge is a dangerous thing. When you learns a new thing, try to grab the maximum knowledge about that thing. In programming, you must care of good coding practices, coding styles, etc. Regarding techniques, you can learn it only through experience and is impossible to acquire it through shot-cuts.
Well, as an end-note, I would like to advice you – the technology is growing everyday. You must be updated everyday. Sending an email from a program needed complex programming earlier. But now we can achieve it with a single line of code.