Which is the best programming language to start with?
In this article, I would like to explain different types of computer languages, similarities, differences and try to come out with the best programming language to start with in programming field.
As a young teenager, I was more fascinated and felt a bit surprised when I saw computer first time. In the initial days, it is just a video game console or a movie player for me. When days passed, I started realising the real power in building things especially writing programs and executing them. I started with the language 'Logo', just a graphic language but it is fun to play with it. Then I started learning 'C Language' in the summer holidays after plus two. It is just an amazing language. But it is tricky when it comes to some junction. Then I started learning 'Java' and then fell in love with it. Now, I am working in a company as a 'Java Developer'. With some experience in this field, I try to answer one of the most asked questions by many on internet, "Which programming language should I learn first?".So, Where to start?
Gone are those days where people started learning BASIC, COBOL and PASCAL to enter into programming world. If you have gone through the TIOBE index(which ranks a programming language using number of searches on internet, skilled engineers in that language and number of projects using this language worldwide), you can nowhere see these languages in the top 10. Some don't even appear in the top 30 also. Now, every person starts their programming experience with either C, Java or C#. In the next few passages, I will try to compare them, find similarities if any and list their advantages and disadvantages as these are big players in the programming league.
Before I start comparing them I will let you make clear of some terminologies used in the following comparisons.Low Level Language:
These are very much similar to assembly level language. Difficult to learn and use. Mostly they are machine dependent. However, execution time of these languages is much faster compared to high level language.High Level Language:
Human readable. Easy to learn and use. Provides a huge set of built in functions to make work easier. Easy to trace or debug programs. Not much experience is required to start working on them.Procedure Oriented Languages:
A type of programming where a structured method of creating programs is used. In this type of programming, a problem is broken up into parts and each part is then broken up into further tiny parts. Each part is considered as a procedure. They are separate but work together when needed. A main program centrally controls them all. In this type of language, programmer has to think from my computer's point of view. A programmer has less freedom to think about his logic because most of the time he has to spend on what system needs to implement his logic. These are most popular in 70s and 80s although with some exceptions.
Some procedure-oriented languages are COBOL, FORTRAN, and C. Object Oriented Languages:
These languages were designed to address the difficulties with procedural programming. In object oriented programming, the main modules in a program are classes, rather than procedures. The object-oriented approach lets you create classes and objects that model real world objects and these objects are manipulated with the pre-defined methods. It tries to solve many of the issues we face in procedural languages with its unique features like encapsulation, inheritance and polymorphism etc... These languages started gaining public attention from early 90s and continue far in the future.
Some object-oriented languages are C++, Java, C# and Python.C
This language needs no introduction in programming field. More than 90% devices in this world work only because of this language. It is one of the most widely used languages and often used as an introduction to programming. It is present in every corner of this world starting from Operating Systems, Gaming Industry, Defense, Mobiles and Household devices. It is the mother of many other higher level languages like C++, Java, C#, Python and JavaScript. Although this language is little 'strict', you can learn things like debugging programs, memory management, file-handling and how computers really work that you don't get from higher level languages like Java. It is considered as perfect "machine level" language as you can learn how to make a program that interacts with the hardware and you can learn fundamentals of programming from the lowest level - hardware level. It has got a steeper learning curve compared to other languages. It is considered as one of the most beginner-friendly language. Java
It is considered as second most popular programming language in the world. It is a higher level language that is designed to be compatible with any operating system in the market. It is treated as one of the most practical languages to learn. Syntax in Java is similar to C and C++. You can learn other OOP (Object Oriented Programming) languages pretty easily after you are much comfortable with Java. Using Java, you won't get machine-level control but you can access or manipulate the most important computer areas like file systems, graphics and sound. Though it won't give you much deeper insight of computer level operations, it is most widely used and practical. You can find lot of free tutorials on Internet as it's been taught for decades. It usually comes in three different flavors.
Java SE For creating applications restricted to desktops.
Java EE: For writing programs for web. When combined with frameworks like Java Server Faces, Struts, Spring and Hibernate, you can create most robust and secure websites. This is the most happening area where whole computer industry is focusing.
Java ME: For working with mobiles. You can create games to play in mobiles. But its popularity is fading with the advent of Android and iOS mobile platforms. Interesting point here is most of the android applications are written in simple Java.Python
It is one of the most promising players in the recent times. Initially, it is designed with human readability in mind. Moreover, it doesn't take more lines of code to execute programs compared to other languages. A program which takes around 10 lines in Java can be written in one or two lines with Python. It requires less time, less lines of code and even less concepts to be taught to start with your first program. Learning python is fun and also easy to learn. It makes you to learn good programming style like indenting, without being overly strict about syntax. Whatever you can do with most other higher level languages, you can do the same more easily and comfortably. Because of its simple syntax and powerful features, it is regarded as most beginner friendly language.
Recently, Stanford University added Python in its academic calendar as a must for a beginner instead of Java.JavaScript
If you are familiar with HTML and CSS languages and have some knowledge on developer tools, you can start creating a website with JavaScript. It is a scripting language with little or no relationship with Java. It requires least amount of time to make your fingers moving on the keyboard. Nowadays, every browser supports JavaScript, it is the problem only in the past. With developer tools in browser you can see immediate results of your code. Sometimes it behaves weird if not handled properly. Only because of this reason, many popular frameworks like jQuery, CoffeeScript came into existence just to simplify it. Many popular web application frameworks like AngularJS and server-side application frameworks like Node.js emerged from JavaScript. Though it is a little tricky and comfort level is less, most people recommend using plain JavaScript. Finally, it is a must for those who want to create some cool interactive things on internet.C#
Must be pronounced as 'C Sharp'. It is an open fact that it is just a counter answer to Java programming language, which became most used language in the early 2000s. Here one should remember that C# is a language which is primarily used to write windows applications for .NET framework. Learning C# is easier if you have any experience in either C or Java because it has most of the syntax similarities with these languages. It became popular due to its simplicity and productivity. There is a saying in IT industry, "One can develop whole project within 15 days using C# compared to Java which takes nearly whole 2 months of effort. At the end, project developed using Java is more secure, scalable and robust compared to one done in C#". If you use this language, you have to spend your whole life with Microsoft related technologies. It is in the race only because it is giving tough competition in different areas of programming languages. With C# you can create third party apps for Windows 8 OS and Windows Phone. When used in Xamarin, you can create efficient cross platform mobile apps.Conclusion
Everyone is eager to start working on a programming language but they don't have patience to learn from a book either basic syntax or deeper understanding of some basic concepts before they start working on a program. My suggestion if you are really ambitious to learn a programming language is, start with a simple book like Head First HTML, Head First Java etc., then move to asking questions on forums like Stack Overflow, Java Ranch etc. While reading a book don't forgot to keep a reference like documentation from the website or following some tutorials from YouTube and implementing them. If you can follow these guidelines, it will take some months to master a language but it ultimately makes you learn your favorite language.
Happy Learning!!
Also, Read
Laravel vs Codeigniter – Which is the best framework for App development?
Why Choose Backbone JS For Web & App Development?