Pages

Java is one of the best programming language created ever, and I am not saying this because I am a passionate Java developer, but Java has proved it in last 20 years. Two decades is a big time for any Programming language, and Java has gained strength every passing day. Though there are times, when Java development slows down, but Java has responded well. Earlier with groundbreaking changes in the form of Enum, Generics, and Autoboxing in Java 5, performance improvement with Java 6, and Google's choice of language for Android apps development, keeps Java as front line programming language.
Many graduate often ask me, which is the best programming language, which language should we learn, shall I learn Java etc. Well, it depends upon definition of your best programming language, if it's popularity then obviously Java outscore every one, even C, which is there for almost 50 years.

If it in terms of Job opportunities, again Java outscore every one. You can get tons of Jobs opportunity bylearning Java programming language, you can develop core Java based server side application, J2EE web and enterprise applications, and can even go for Android based mobile application development.

So if you are not coming from C and C++ background, and want to learn your first programming language, I will suggest to choose Java. In this article, I will share my list of reason, and why you should learn Java programming and why I think Java is best programming language created ever.

Why you should learn Java Programming Language

Here is my list of 10 reasons, which I tell anyone who asks my opinion about learning Java, and whether Java is a best programming language in terms of opportunities, development and community support.

1) Java is Easy to learn

Many would be surprised to see this one of the top reason for learning Java, or considering it as best programming language, but it is. If you have a steep learning curve, it would be difficult to get productive in a short span of time, which is the case with most of professional project.

Another reason, which made Java popular is that it's an Object Oriented Programming language. Developing OOPS application is much easier, and it also helps to keep system modular, flexible and extensible.

Once you have knowledge of key OOPS concept likeAbstraction, Encapsulation, Polymorphism and Inheritance, you can use all those with Java. Java itself embodies many best practices and design pattern in it's library. Java is one of the few close to 100% OOPS programming language. Java also promotes use of SOLID and Object oriented design principles in form of open source projects like Spring, which make sure your object dependency is managed well by using dependency Injection principle.

3) Java has Rich API

One more reason of Java programming language's huge success is it's Rich API and most importantly it's highly visible because come with Java installation. When I first started Java programming, I used to code Applets and those days Applets provides great animation capability, which amazes new programmer like us, who are used to code in Turbo C++ editor. Java provides API for I/O, networking, utilities, XML parsing, database connection, and almost everything. Whatever left is covered by open source libraries like Apache Commons, Google Guava, and others.

4) Powerful development tools e.g. Eclipse , Netbeans

Believe it or not, Eclipse and Netbeans has played a huge role to make Java one of the best programming languages. Coding in IDE is a pleasure, especially if you have coded in DOS Editor or Notepad.They not only helps in code completion but also provides powerful debugging capability, which is essential for real world development. Integrated Development Environment (IDE) made Java development much easier, faster and fluent. It's easy to search, refactor and read code using IDEs.

Apart from IDE, Java platform also has several other tools e.g.. Maven and ANT for building Java applications, decompilers, JConsole, Visual VM for monitoring Heap usage etc.

5) Great collection of Open Source libraries

Open source libraries ensures that Java should be used everywhere. Apache, Google, and other organization has contributed lot of great libraries, which makes Java development easy, faster and cost effective.There are framework like Spring, Struts, Maven, which ensures that Java development follows best practices of software craftsmanship,promotes use of design patterns and assisted Java developers to get there job done.

I always recommend to search for a functionality in Google, before writing your own code. There is good chance that, it's already coded, tested and available for ready to use.

6) Wonderful community support

Community is the biggest strength of Java programming language and platform. No matter, How good a language is, it wouldn't survive, if there is no community to support, help and share there knowledge. Java has been very lucky, it has lots of active forums, Stackoverflow, open source organizations and several Java user group to help everything.

There is community to help beginners, advanced and even expert Java programmers. Java actually promotes taking and giving back to community habit. Lots of programmers, who use open source, contribute as commiter, tester etc. Expert programmer provides advice FREE at various Java forums and stackoverflow. This is simply amazing and gives lot of confidence to a newbie in Java.

7) Java is FREE

People like FREE things, Don't you? So if a programmer want to learn a programming language, or a organization wants to use a technology, COST is an important factor. Since Java is free from start, i.e. you don't need to pay anything to create Java application. This FREE thing also helped Java to become popular among individual programmers, and among large organizations. Availability of Java programmers is another big think, which makes organization to choose Java for there strategic development.

8) Excellent documentation support - Javadocs

When I first saw Javadoc, I was amazed. It's great piece of documentation, which tells lot of things about Java API. I think without Javadoc documentation, Java wouldn't be as popular, and it's one of the main reason, Why I think Java is best programming language.

Not every one has time and intention to look at code to learn what a method door how to use a class. Javadoc made learning easy, and provide an excellent reference while coding in Java. With advent of IDE, you don't even need to look Javadoc explicitly in browser, but you can get all information in your IDE window itself.

9) Java is Platform Independent

In 1990s, this was the main reason of Java's popularity. Idea of platform independence is great, and Java's tag line "write once run anywhere" was enticing enough to attract lots of new development in Java. This is still one of the reason of Java being best programming language, most of Java applications are developed in Windows environment and run in UNIX platform.

10) Java is Everywhere

Yes, Java is everywhere, it's on desktop, it's on mobile, it's on card, almost everywhere and so is Java programmers. I think Java programmer out number any other programming language professional. Though I don't have any data to back this up, but it's based on experience. This huge availability of Java programmers, is another reason, why organization prefer to choose Java for new development than any other programming language.

Having said that, programming is very big field and if you look at C and UNIX, which is still surviving and even stronger enough to live another 20 years, Java also falls in same league. Though there are lot of talk about functional programming, Scala and other JVM languages, but they need to go a long way to match community, resources and popularity of Java. Also OOPS is one of the best programming paradigm, and as long as it will be there Java will remain solid.

Resources to learn Java programming

Now, if you decide to learn Java programming, here are couple of resources, which you can take a look. I personally suggest picking a book, because they are almost always well written and catered for beginners.

I personally recommend Head First Java to beginners, that's great book to start, if you don't know much about Java. You can also take a look at official Java tutorials offered by Oracle.

These tutorials are comprehensive and covered almost all important details of Java programming language. Further you can use Google along with your learning.

If you need to understand a particular concept, term or any issue with Java, Google can point you to specific resource. There are lots of blogs, tutorial sites, and free video tutorials on internet to learn Java programming.

There are lot of great language features in Java, which is not in this but equally important for making Java, Best programming language of last two decades e.g. - Java is Secure, security is not only embedded in language, but also provided by platform.- Java Array is bounded rather than C array, which is unbounded.- Java is Strongly typed language, which means more help from compiler and easier to manage.- Rich set of data types- Rich set of operators

@Christian, to be frank, I still don't see Scala can replace Java. I know Scala is mix of OOOPS and Functional Programming, which makes it good choice, but given the readability of Java, and all other feature, including learning curve, I think it still too early. Also there are not many Jobs available for Scala developers at the moment, I know companies like Twitter are using it, but it would require some time to get it adapted among other industries. Having said that, I still see learning Scala for Java developers is a good choice, at least one can learn some best practices and improvements.

@Anonymous, You are correct that a Programming or software development job require lot of skills in terms of programming languages, database, SQL, XML, Unix etc, but same time, developing a core expertise is also very important. Java fits well there. Remember "Jack of all trades, master of none"

Yeah right learn JAVA, but if you do not have 5-7 years of working experience with JAVA nobody will hire you. Better learn other newest programming language that offer good jobs with less experience required.

If you’ve had trouble getting a good Java programming job because you don’t have tons of experience, or even the "right degree", Cook Systems is training and hiring people who have some Java or related programming skills. They offer long term careers for people who can get things done. If you have the personal character and work ethic to go with your programming skills, and can demonstrate it in our training, we will hire you. We are putting Americans back to work in IT. If you want to be part of something bigger than just a great, satisfying, and high paying career with full benefits, come join us! www.cooksys.com/apply-now

@vivek: I agree bro...but the competition is in core and advance java only...if you learn newer platforms of java like spring, webservices, hibernate, struts, servlets...you have much better chance..many online sites like WIZIQ are providing such complete java training at a low price...you can try it...

really interesting.. but could you please elaborate more on this.. like a basic exposure on java could yield better job opportunities irrespective of markets ups&downs..example: middleware admin (IBM Websphere, SAP Xi/PI..etc, PEGA tool, Supply Chain Managment Tool, content management tool... what i mean to ask you is what kind of tools can anyone learn to quicken into a job..hope this post could help some more to gather info..thank you for the wonderful post.Regards,sravan

Please help me, my commands in java are very poor, but my wish is to learn java and become a programmer,what should i do? from where did i start,even i dn't know the fundas of programming,kindly send me your good and simple suggestion to my gmail id i.e sharma.shekhi001@gmail.com

I took a very basic (and not very good) course on programming and really liked what I learned, but haven't learned enough to consider myself a programmer, unfortunately. They focused on teaching Pascal, VB6 and Delphi 7, so I didn't learn anything commercially useful, but it was a start. Now I'm focusing mostly on other projects but will become a programmer sooner or later.

Choosing a language to start on is one of the biggest challenges for newbies. There are so many pros and cons to all of them, depending on who you listen to even OOP can be the best or the worst thing in the world... I'm leaning strongly towards Java because of Android development even though I tried learning it on my own once and found the learning curve pretty steep.

Oh, and to the anonymous commenter above who criticized the author's English: I've been an English teacher (English as a Second Language) for almost 15 years and I strive to get my students capable of expressing themselves as well as he does. He expresses complex subjects in a well structured manner and the mistakes I found are trivial.

Ever since Oracle took Google to court , now google only looks to escape the Java. In a few years time see Jave will have no prospects and noone will use it cause of Oracles selfishness and not shareing attitude. Java is only free if you are no threat to Oracle, if you are google or in competition with their current or future business watch out they will sue you.

Hi every and thanks for the post. Well I am going to be writing the oca java programming 1 exam 1z0-803 and after that I will be writting the next exam wat chance do I have in getting a nice java programming job plz help

I have gone through all of the debates concerning the most suitable programming language for beginners. I have read so many different books covering a lot of different programming languages. I have spent a lot of time watching videos on youtube and the like. For a certain period of time I would be a fan of Ruby and then Python and then C, C++, and so on for some reason, mainly because I was influenced by the comments of some people who were at that time more advanced than me.

This process which cannot be properly described in a few sentences, not to mention the confusion it caused, took me about one to one and a half years, and still I would not consider myself a programmer.

After I have reached to the point of thoroughly understanding how computers work, especially the architecture of a typical 'basal' x86 desktop, and with the guidance of some very good books on programming languages, I must say that, at least in my point of view, a language better than Java needs yet to be created.

Nowadays, I could give you many profound arguments why I think that, but I will give you the most important.

Programs are created in the mind of the programmer. Full stop. During the process of 'virtually' (in your brain) creating that very program (especially the types you want to use and manipulate, how the data is going to be processed from a to b, what you want to do with this modified data, or should I say the way your 'stream' is going to flow or rather the 'flux' which is mainly created in your brain and on a white sheet of paper) you need a proper companion in order to manage that stuff. The mind map of your brain needs an adequate counterpart in the physical world, the real world. This counterpart, or companion, must be a language which does not confuse its creator, which helps him along his road of creating his program, which helps to neatly arrange every single item that belongs to his program. What I am trying to say is that structure is the most important thing. There must be an adequate representation of the thing you intellectually create and the thing you see in front of you, created by you. There is always a constant interaction between these two 'worlds'.

By its syntax, semantics, and type system, Java is predestined to do this job. It is low level enough to let you understand what is going on under the hood (i.e. your data being processed on your computer) and high level enough to let you express what you want and how you want it to be.

And here is the book I recommend for absolute beginners. After reading this book, suddenly everything made sense. I am so grateful that I came across it accidentally: David J. Barnes & Michael Kölling, Objects First with Java, A Practical Introduction using BlueJ

Java is a high-level programming language and developed by Sun Microsystems ,released in 1995. Today, java is every thing therefor important to learning step by step theoretical as well as programmatical.

I will not say that any programming langugage is supirior than another, although if you like java you should check out the OSGi framework, which might be the only reason i use java. Other than that the language you choose will often be determend by the product you are developing, So dont close your mind on one programming language since it will not be sufficient in all cases. Unless you plan to do the same applications over and over. Then java might be good for you, but the my question is, why be a developer if you only limit yourself to one programming language? If you answer that you want to be in the front teir within that programming language i would say awsome, Otherwise open you mind, and let new knowledge fill your mind.

Thankyou for this post. I was wondering what to learn because I've tried Ruby, Python etc and wasn't very happy with them. I've taken a look at Java, and like what I see. I mean we use it everyday, most without knowing they do so. Example Android, your television tv guide, Minecraft and other brilliant games that millions use every day, so why not learn to program in it. Sure, it may be harder to get a job in it without the Degree, but truly where there's a will there's a way ok? IE: You just need to network, make a name for yourself, and the recruiters will usually seek you out.

@Darren, You don't need a degree if you can proof you are good programmer by making your name in the web, there are lots of inspiration on web already. A degree will sure help to get the job though. Learning Java has another advantage, you can do lot of freelancing programming work e.g. writing android games, application etc. Android is the biggest reason to learn Java today.

Nice read. When in school, I had learned Java through the text books provided and wrote code on paper mostly and when it was our computer class in the lab. We only applied the language to a specific set of problems in the curriculum. However these only established it as just another programming language like C, still not helping us differentiate the true benefits of the OOP language that we only learnt in theory then. Later, at the start of my masters many years later, a class project required that we code in Java and required a working knowledge of Java. The class project was complex enough to motivate me to learn it properly. On searching google, I came across this great course by Prof. Mehran Sahami from Stanford avlbl on Youtube. He was teaching Programming Methodology (through Java). I was able to grasp Java through his first dozen lectures over two weeks - partly because of him and equally because of the intuitive and straightforward nature of Java and of OOP principles/concepts, as you rightly mention in your article.While I've used other programming languages too like C,C++, python through my studies, and they have their own niceties, Java still stands out!

Hello Paritosh, there are books like that but you will learn better and deep by reading books focus on individual areas e.g. JVM internals and performance tuning, Collections, multi-threading and concurrency etc. If that interests you then check out some of my recommendation on 9 must read books for Java Programmers.

hi i am very anger to learn programming in java but i can't concentrate on more then one or two programs.how to overcome the problem to get become a good programmer and how to improve my logical skills.send me my mail npreddy12@gmail.com