Importance of Programming in today's Academia

Importance of Programming in todays Academia
x
Highlights

Our world is testament to the change that technology has brought in. Moore’s Law has stood the test of time while predicting how computing ability will improve by leaps and bounds over the years. The same applies to the building blocks of software that powers this technology, the programming languages. Several perceptions are made when it comes to choosing a programming languages.

Our world is testament to the change that technology has brought in. Moore’s Law has stood the test of time while predicting how computing ability will improve by leaps and bounds over the years. The same applies to the building blocks of software that powers this technology, the programming languages. Several perceptions are made when it comes to choosing a programming languages.


However, if anyone has a real passion towards learning and enjoying their programming job, the person can do wonders in any language they are exposed to. Choice of a programming language differs from project to project.

Let me share a few examples. Building a database requires fast computation and efficient storage algorithms. e-Commerce websites like Flipkart, Facebook and AirBnB require faster response times over the internet and the ability to serve a large number of users at the same time (high concurrency). A surveillance system requires quick real-time processing using embedded systems. All these are built using different languages because of the application needs.

Could the same applications be built using any language? Yes! But would all the resulting applications be equally efficient? Definitely not! That’s what differentiates the men from the boys; A professional programmer will choose the appropriate language for the work on hand but the novice would probably choose a language that he/she is There are two essential aspects to learning a programming language.

First, learn the syntax. Second, learn the semantics. Syntax deals with the keywords and the structure of the language. Semantics deals with the validity of the written statements.

Very often, it’s the semantics of the language that determines it’s preference among programmers. Readability, maintainability of code are important to some programmers whereas some like brevity in code (writing code in the least number lines possible) at the cost of code complexity. There is no right and wrong - its what you like or dislike.

The more languages you learn, the easier it is to find your likes and dislikes in languages. You may finally settle on one that suits your need and in the rare case of not finding any suitable language, you may end up inventing one of your own! That’s how languages evolve. It’s safe to say that there is nothing called the ‘best’ programming language. We can however differentiate between them.

Some are higher level languages and some are lower level languages. A low-level language creates a binary or executable file that gives a series of machine instructions to a computer directly, for example the Assembly language. C is a slightly higher level language than Assembly and compiles its code into machine instructions.

High-level languages generally work on most Operating Systems, like Java, PHP, Ruby, Python etc. They are designed to make programming easier for humans but at the cost of intermediate steps to convert to machine instructions, like the JVM (Java Virtual Machine) and the Python or Ruby interpreters.


Choosing a programming language to learn depends on what benefit one seeks. To learn the absolute basics of programming and being as close to machine instructions as possible, I would recommend C! No fancy constructs and a lot of “Do It Yourself” programming ensures you appreciate the power of the CPU and every byte that you consume in the RAM (the memory).

To learn Object Oriented languages, C++, Java traditionally show the way. However, Ruby and Python are equal to the task. Ruby and Python deserve more mention. They are simple, easy to learn with a lot of generics and excellent languages for Rapid Application Development.

If you wish to learn Functional Programming, I would strongly recommend looking at Javascript, Clojure and Scala. One language does stand out and go against the tide. It’s about going back to the seventies and starting all over again. Go is a language that makes you rethink programming and object oriented concepts.

It is famous for it's concurrency semantics (using CSP i.e. Communicating Sequential Processes) and it harnesses the power of multi-core processors to the maximum. Only after learning the language thoroughly, should you venture out and learn various libraries and frameworks built in them like Django, Rails and Spring among others.

The sad part is that there is a gap between the language awareness due to lack of teaching expertise or workshops in India. Due to this, many students from our country fall back when it comes to learning new languages.

Also, sometimes, due to the stiff market competition, salaries and personal economic situations, students tend to choose jobs and languish on older systems and mundane work and miss out on opportunities wherein they can learn newer languages and capitalize on those skills later. This trend is thankfully changing. Slowly but steadily students are finally realising the power of open-source and the value in learning new languages.

-By Gautam Rege
Show Full Article
Print Article
Next Story
More Stories
ADVERTISEMENT
ADVERTISEMENTS