What is the BEST Programming Language to Start with?
Tags: programming, java, cpp, beginners
Published: 2022-02-27 15:41:27

One of the most popular question that every student asks before they begin their journey of programming is which programming language to choose from OR should i say

## WHAT IS THE BEST LANGUAGE TO START WITH ?
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gwzoposqbuoo1vprolhp.png)
 
A very cliche answer to this curiousity ridden question is "Every Language is Best, its just a matter of your personal choice"
This would have been a good reply to someone who has learn few languages and is on the journey of making one or more, his best. But this isn't a good answer for someone who didn't even started their journey and are looking for something that is worth their time 
So, Here is a collection of all information you need to **CHOOSE** which language to start from.

## WHAT ARE THE AVAILABLE OPTIONS?

If you are like me than you must have researched your days off to find out what are the different programming languages one can choose from ?
And you might have come across a few like-
1. C++
2. PYTHON
3. C
4. JAVA
5. R
6. REACT
7. JAVASCRIPT,etc.

If you have heard the names of any one of those than good you might have some knowledge of what we are going to discuss here
But if you are hearing this for the first time than don't worry we are going to discuss some of them in this article only.

##SOME SUBSTITUTES
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4d3ovbe6px8r9x3vf7sv.png)
  
Now there are two more languages that are not considered programming languages but more of sturcture and styling languages i.e. 
**HTML AND CSS**.
They are the two languages that i recommend you should at least learn for a while if you have never programmed anything because these are very basic languages which can give you a jist of what the other languages might have in store for you and these languages will give you perfect mindset to deal and learn programming languages.

## Shortening the List.
Out of the above mentioned 7 programming languages there are 4 or lets say 3 languages most people are confused about that includes
#1. C++
#2. Python
#3. JAVA
#4. C

And Now we are going to judge these languages based on some criterias to clear the confusion.

## What are the Criterias of Judging?

1. EASE to Understand
2. Learning Curve
3. Interface
4. User Experience
5. Any help website of youtube channels
6. How much time it would take to learn?
7. What are its real world use?


## C
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/it9ppupqvpoiys849dvy.png)

 
C is one of those language that i think is taught to first years in most of the colleges.And same was happened to me.Being a person who only knew Python by then it was not at all jarring for me to learn this language.
So, the best advice i can give for this language is 
>"You have to be open Minded and let things sink in first"

**-Ease to Understand :* * * * (4/5 stars)**

As i mentioned earlier to learn C,One just have to let it sink in you mind for a little bit.By that i mean , Give it some time to let yourself understand its syntaxes and rules ,etc.
In the mean time do some basic questions like Pattern Printing ,searching ,sorting and level up steadily.
**-Learning Curve: * * (2/5 stars)**

Interface wise i would always recommend use an online compiler for C or a mobile app cause the other IDLE i tried for C for turbo C++ which was terrible but i give it benefit of doubt that it was meant to be used as programming IDLE for developers but for habitual Coding stuff
**-Interface: * * * (3/5 stars)**

C is a great User Experience being it so easy  to understand and learn
**-User Experience : * * * *(4/5 stars)**

Helping guide for C are very fabulous and there are a lot of it:
 [Tutorial Point,](https://www.tutorialspoint.com/cprogramming/index.htm)
[Geeks for Geeks,](https://www.geeksforgeeks.org/why-learning-c-programming-is-a-must/)
[Free Code Camp,](https://www.freecodecamp.org/news/the-c-beginners-handbook/)
[W3school](https://www.w3schools.com/c/index.php)

**-Help Guide: * * * * (4/5 stars)**

It would take aprroximately a week or two for you to learn it if you go about only doing it for those weeks.Meaning its not much Time counsuming.
**-Time To Learn: * * (2/5 stars)**

For the Real world use of C i would highlight what the internet has to say for it:
>"Real-World Applications of C. Use of the C programming language is not limited to the development of operating systems and applications. It is also used in GUI development, IDE development, etc."

**-Real World Experience: * * * (3/5 stars)**
 
## C++
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ovzf5tzg7xdwwru4wru.png)

My very first experience with C++ came about a couple of days earlier and i am not kidding once you do C its insanely easy to do C++. There are only syntax changes for the most parts.You will be done with all basic stuff in a day.
- **Ease of Understanding: * * * (3/5 stars)**

As of the Learning Curve its exactly like C so if you did C earlier than this will be a piece of cake but even if you take it as your first language than also it would take you anylonger to understand than if you had take C.
- **Learning Curve: * * (2/5 stars)**

I will deduct a star for interface though cause although i gave C benefit of doubt that Turbo C++ was not meant to be for C.It was catered for C++ and it was not good Experience .I would recommend VS code for sure, here.
- **Interface: * * (2/5 stars)**

If you Use VS code as your text editor than the user experience with this language is very good.Some things are to be nit-picked but still all in all a satisfying user experience.
- **User Experience: * * * (3/5 stars)**

There have been a lot of Helping Media for C++ mainly because most students use it for CP(competitive Programming).So, you will not find lack of resources for C++
some of which include:
[W3school](https://www.w3schools.com/CPP/default.asp)
[Tutorialpoint](https://www.tutorialspoint.com/cplusplus/index.htm)
[StackOverflow](https://stackoverflow.com/questions/tagged/c%2B%2B)
[GFG](https://www.geeksforgeeks.org/cpp-tutorial/)
[freecodecamp](https://www.youtube.com/watch?v=8jLOx1hD3_o)
- **Helping Guide: * * * * (4/5 stars)**

As said earlier it won't take any more time than C did, if you are a beginner and this is your first language,But if this comes to not be your first language than it would take even lesser time for you to learn.
- **Time to Learn: * * (2/5 stars)**

Its Real World Use is insanely big.
And i will quote what the internet has to say about it.
>" 
**C++ Application in Real World**
GUI Applications.
Operating Systems.
Web Browsers.
Database Management System.
Libraries.
Cloud Computing and Distributed Applications."

- **Real Word Use: * * * * (4/5 stars)**


## JAVA
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cvpr37o18fhwbuaata3k.png)
 
Java is the language that i have been doing for quite some time now. So, I can give my very recent experience.

As for the Ease of Understanding , i will say it looks and feels overwhelming at some times but if you give it time to sink it will become quite easy to grasp once you get over the fact that its imense and so does its code looks like.
- **Ease of Understanding: * * * (3/5 stars)**

Learning Curve is kinda Steep, You might not like but JAVA does have everything for you to figure out yourself but it also gives you very deep understanding of what make something work like it does.There is no hidden library or soemthing everything had to be mentioned by user only.
- **Learning Curve: * * * (3/5 stars)**

I recommend using Intellij IDEA as the IDE for Java, as it has additional features with it and shortcuts for long code structures to make your work load small.
- **Interface: * * * (3/5 stars)**

From A User's Point of view it gives almost all control to the User.So it will do exactly what you tell it to do and will not do some parts on its own.So you have Full Control Over the language.
- **User Experience: * * * (3/5 stars)**

With Java too there is no lack of Helping sites, IT being such vast language you meight never find an error which is not faced by someone else as well.
Some of Helping Guide include:

[javapoint](https://www.javatpoint.com/java-tutorial)
[GFG](https://www.geeksforgeeks.org/java/)
[W3school](https://www.w3schools.com/java/)
[Kunal Kushwaha's DSA playlist](https://www.youtube.com/playlist?list=PL9gnSGHSqcnr_DxHsP7AW9ftq0AtAyYqJ)

- **Helping Guide: * * * * (4/5 stars)**

Java will take some time for you to learn and more of practice is needed in it.Its kinda Steep Learning Curve contribute to its Learning time.
- **Time to Learn: * * * (3/5 stars)**

Java too has a lot of Real world Use and Here also i will quote what the internet has to say for it: 
>" **Applications**
1) Desktop GUI Applications.
2) Web Applications.
3) Mobile Applications.
4) Enterprise Applications.
5) Scientific Applications.
6) Web Servers & Applications Servers.
7) Embedded Systems.
8) Server Apps In Financial Industry."

- **Real Word Use: * * * * (4/5 stars)**

## PYTHON
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qs4rq0x1uw9yb00rtypy.png)
 
Python is the very first language i learned so  i can tell from my experience that its fairly easy to Understand So,
**
- EASE to Understand: * * * * * (5/5 stars)
**

like all languages you have to learn it from very base level but for a beginner or a student as per say it does a lot of work for you as you don't have to tell what each variable's type is.(i.e. you don't have to write int a =10; again and again. you can just write a=10; and the python interpreter will take a as int).So,
**- LEARNING CURVE: * (1/5 starts)**

Coming to the interface of python its interface depend on the type of IDLE that you use for eg-
If you work on the default IDLE of python provided by its installer setup than its failry OK
But if you use JUPITER NOTEBOOK than its interface is very good with features like line number and inout output bok right below the code space
PYCHARM is also a pyhton IDLE that you can download its specifically made for Python and works fairly better than any other IDLE of Python.
**- INTERFACE: * * (2/5 stars)**

Python's User Experience also depend on the type of Idle that you use like if you use Pycharm than its pretty good User interface with most of the required windows open on the screen with its own terminal and folder space
But the default IDLE of python is Not user friendly as nothing is mentioned on the IDLE to help the absolute beginners while you can use "help()" function to get help about anything from IDLE.
**- USER Experience: * * * * (4/5 Stars)**

For Python there very few websites to learn from some of which are
[Free Code Camp](https://www.youtube.com/watch?v=pkYVOmU3MgA),
[Geeks For Geeks (GFG)](https://www.geeksforgeeks.org/python-data-structures-and-algorithms/),
[Udacity (free Course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513)
**- Learning Websites: * * (2/5 stars)**

Python was fairly easy and fast to learn than any other language. Most of My understanding of python comes from Expreimenting with different projects and using differnet libraries to build one or the other thing so i think
**- Time to Learn: * * (2/5 stars)**

As for what python is used for I would like to quote something coursera said about python 

> "Python is commonly used for developing websites and software, task automation, data analysis, and data visualization. Since it's relatively easy to learn, Python has been adopted by many non-programmers such as accountants and scientists, for a variety of everyday tasks, like organizing finances" 

But with that we must also know that if a beginner try to start from Python as their first language then you will be able to learn fast but there will be a lot of concepts that will never be understood by you cause in order to make python so easy it has hidden a lot of the basic key features from Storage class to Inheritance (OOPS), Method Overloading etc. which are very useful concepts. So you might learn fast but you will also miss alot of basics which may deter your foundation.

**- REAL World USE: * * (2/5 stars)**

## Conclusion

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/599cbn1f0qf4xf32ed7o.png)
 
 
So, The Conclusion is -
If you wanna learn from Absolute Basic then Go for : **HTML and CSS**
If you don't have any programming language experience : **Python**
If you have some experience but wanna know it all : **JAVA**
If you wanna do some big Projects that have C/C++ : **C & C++(both)**

All in all Give any language you choose some time and in the mean time do some questions and projects you wanna build etc. Soon you will become so Used to it that it will become like a second nature to you.

And at last i wanna add that this is all my personal experiences and opinions.Don't go around changing your path just cause some Guy on internet said so. This Article and all other materials available on online platforms is meant to Help you on your journey.
And please make sure to keep it that way.