Today I thought to
write a post for those, who are literally new to
Java programming language and wondering how to get started with it!
If you already have expertise in Java and you had followed unique efficient approach to
get started with it, then please share your experience in comments for the
benefit of others.
If you refer "Newto Java page on Oracle website", you will find key categories namely
Java SE, Java Fx, Java EE and Java ME; as well as "Java SE conceptual diagram on Oracle Java 8 Documentation page" as per below screenshot. Also by
this time, you might have heard few names of Java based frameworks like Struts,
Spring, Hibernate, jUnit and many more. So you may be skeptical about, what to learn in
Java space for getting started or what to prioritize in Java SE itself?
If you see history of Java,
JDK 1.0 released in 1996 and recently Java 8 has been released on March 18,
2014. So obviously there are unlimited things to learn in Java SE itself, but
the question still remains open that "what can be steps to learn
Java?" and in the further post I tried to cover it .
Steps for Getting Started
with Java
Don't keep switching
your focus, instead learn it systematically as per below steps.
Step-1: Development environment setup
At the time of
writing this post I would suggest to setup JDK8 and Eclipse Kepler SR2,
but you should always consider latest stable release for the setup. Eclipse IDE setup is optional, and instead
you may use any other IDE or may learn Java even without IDE. But Eclipse is
suggested, as it is one of most commonly used IDE.
Step-2: Gets your hands dirty with basic Java
programming
Now I would suggest
to learn java from tutorials point website or may be other videos like Bucky's Java Tutorials Series. Don't just read, instead you must consider basic hands-on
with Java programming as you progress such tutorials. Once you gain some basic
confidence, then step-3 is waiting for you to build strong foundation in Java
programming language.
Step-3: Build strong foundation on Java programming
language features and OOPD
Next attempt should
be to learn *all* Java programming language enhancements such as Java 4 (assertion), Java 5
(generics, autoboxing/unboxing, enums, varargs, annotations…), Java 7 (Strings
in switch statement, binary literals, try-with-resources statement...) and Java
8 (lambda expressions, improved type inference…). This is viable in few weeks
time, because I am not telling to learn *all java libraries/packages APIs*. You
may refer Java tutorialsby Jacob Jenkov as a basic level cookbook.
In future I will be
writing separate posts to cover java programming features of each major release
of Java 4 onwards, but for the time being you may refer sample code on my Learn-Java github repo.
For example - it already contains thecodesnippet of new language features in Java 1.5 which is Eclipse project, so
you can simply import it in Eclipse and start learning those quickly.
Only learning
programming language features are not enough to become great developer, but
also you should aim to be efficient in OOPDesign - Fundamentals and Principles.
This step would
enable to design and write any simplest to complex custom APIs and algorithms
for given requirements, but next step
would leverage your overall application development with numerous ready-to-use
java based libraries, frameworks and tools.
Step-4: Explore Java packages, libraries, frameworks
and tools on need basis
Keep exploring java.lang.*and java.util.* APIs of Java (Enhancementsin Packages java.lang.* and java.util.*), Java SE odds and endstutorials and JavaSE Documentation on-going basis.
Sorry you can't stop
here. Only Java programming expertise is not sufficient for industrial demands,
but also you will need to learn more things as per your project architectural
and technical requirements such as,
- Collected Java Best Practices
- Power your java skills using different Tools and Techniques
- Other frameworks like Hibernate, Spring and many more open source java frameworks…
- JVM based enterprise technologies or solutions such as Spring Data, EHCache, Liferay Portal, Alfresco ECM, Elastic Search, MuleESB, Vert.X and many more...
Disclaimer
My objective of this
post is limited to provide general steps for getting started with Java. Though
I mentioned some of website urls for the reference, in reality you may find
other better resources too. So you should always consider any Java books you already
have or other better online resources to follow the above-mentioned logical
steps.
Also Refer
- Fresher Software Developer - What to learn/know for better career growth?
- Java Beginners Tutorial
- Java 101 Series by Jeff Friesen
- Why & How I Write Java by Steve Wedig
- Books - Java/JavaEE Job Interview Companion, Effective Java, Clean Java
If you already have expertise in Java and you had followed unique efficient approach to
get started with it, then please share your experience in comments for the
benefit of others.