Twitter
Advertisement

How To: What you need to consider before you start learning a programming language.

Thinking of learning a programming language this summer? There's a few things you need to keep in mind first. Here’s a primer, for how you should start.

Latest News
article-main
FacebookTwitterWhatsappLinkedin

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 language. 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 task at hand but the novice would probably choose a language that he/she is comfortable with.

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 its preference among programmers. Readability and maintainability of code are important to some programmers whereas some like brevity in code (writing code in the least number of lines possible) at the cost of code complexity. There is no right and wrong—it’s 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 no such thing as 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 of RAM your code consumes. To learn Object Oriented languages, C++ and 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 its 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 in the language awareness due to a lack of teaching expertise or workshops in India. Due to this, many students from our country fall behind 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 realizing the power of open-source and the value in learning new languages.

Authored by Gautam Rege, Co-founder and Managing Director, Josh Software Pvt. Ltd.

Find your daily dose of news & explainers in your WhatsApp. Stay updated, Stay informed-  Follow DNA on WhatsApp.
Advertisement

Live tv

Advertisement
Advertisement