Programming language part 2

A first year student asked me: “Which programming language that I should learn? Should I learn all programming languages or only a few? I told him: “No one can learn all programming languages as there are so many. However, If you learn one programming language well, it would be easier to learn another. I believe a good programmer should be comfortable with a number of different languages and that the programmer must be able to use the fundamental knowledge of one language and apply to another relatively quickly. Today most schools are teaching C, C++ and Java as the fundamental programming languages to their students. Of course, there are much more programming languages but they are NOT popular or widely used in the software industry.

If you ask for my personal opinion, I would say C is the language that everyone must know. C can be seen as an “assembly language”, as it exposes the underlying hardware machine and forces the student to understand clearly the relationship between software and hardware. Performance in C language is excellent because the cost of every software statement is clear. Finally, compilers make it easy to examine the generated assembly code, which is an excellent tool for understanding machine language and architecture.

C++ is actually the fundamental concepts of modern software engineering and object-oriented approach: encapsulation with classes and information hiding through protected and private data and operations, programming by extension through virtual methods and derived classes. C++ also make storage management such as an easy task.

Java is a popular language, especially to the people who build web applications. I think that Java has an important role to play in all software engineering and computer science programs. By study Java, students will know more about concurrent programming and understand that a program can be instrumented to examine its own state and to determine its own behavior in a dynamically changing environment.

I believe programming language is the foundation of ALL information technology programs. You can NOT go far if you do NOT mastering at least one programming language. Every jobs in information technology field require a knowledge and skills in programming language. If you cannot be a mathematician, a financier, or an accountant if you do NOT understand arithmetic then you also cannot be a software engineer, a software developer, or an information system manager if you do NOT know how to program at least one programming language.


  • Blogs of Prof. John Vu, Carnegie Mellon University