Java, not just a reason to stop by the local Starbucks anymore, has become a very propitious programming language to learn. Developers with strong Java fluency are in high demand. A search I ran just now on a popular employment website produced more than 12,000 jobs with six-figure salaries. Demand, you might say, is hotter than the contents of a McDonald's coffee cup.
Hence, it's a fine time to discuss what a Java developer does and why the technology community has such a high level of interest in Java, as well as in those individuals who can program and develop in that language. We will take a look at places that knowledge is changing rapidly, what training or background is helpful and finally touch on certifications that can strengthen your chances of being to value to your employer or potential employer.
What is Java?
Java is an incredible programming language. It is a general-purpose computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. This is fancy speak for being able to run as a package on its own.
Java is intended to let application developers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Often, a developer will write and compile a Java program on UNIX and then can run it on Microsoft Windows, Macintosh, or a UNIX machine without any modifications to the source code.
WORA is achieved by compiling a Java program into an intermediate language called bytecode. The format of bytecode is platform independent. A virtual machine, called the Java Virtual Machine (JVM), is used to run the bytecode on each platform. The code compiles and runs on a computer — or machine — all by itself. Java, released in 1995, was developed by Sun Microsystems and later acquired by Oracle.
The reason that Java developers are of interest to the technology community is their flexibility and portability. They can develop code that will run anywhere and anytime. They are able to contribute to the entire stack of development. They can sit in design meetings, write code from business analyst specifications, and contribute to the maintenance of Java apps even if they didn't develop them.
A Java developer is responsible for many duties throughout the development lifecycle of applications, from concept and design right through to testing. Java developers design, implement and maintain java application phases. As software goes through an entire lifecycle, the dev team can help make iterative cycles.
Java developers can work with DevOps, project management and business analysts to bring the software to life. A good Java developer is always in high demand because they don't sit behind a desk or get locked in a room. They take part in software and architectural development activities, conduct software analysis, and take a hand in programming, testing and debugging.
Most tracks to become a great developer of any sort, starts with being able to test code that others have written. Identifying production and non-production application issues is another large area of what developers do. Because the service and support functions have to happen, you will know a great developer because they don't just code, but work with customers to make the product right.
You may also find yourself transforming requirements into stipulations, and participating in developing, testing, implementing, and maintaining application software. You may be asked to recommend changes to improve established processes, to develop technical designs for application development, or to develop application code for Java programs.
The bottom line is that the more versatile your skillset is, the more valuable to employers you will become.
Education and background
Most employers will require applicants to have a degree in computer science, information systems, mathematics, or another closely related field. Computer science degrees tend to be preferred, as these typically ensure a background that includes data structures, computer architecture, database management, statistics, and technical writing.
Applicants without any kind of degree or education, however, can still be considered if they can show significant knowledge and experience of programming in Java. For me and my money, being familiar with various kinds of methodologies like Agile, SCRUM, XP, Waterfall, etc., will also be helpful.
Nowadays, choosing the development methodology depends on the current or potential employer. Some clients prefer Agile and some clients are happy with the Waterfall model. Thus, having a reasonable grasp of various methodologies will be a real plus.
In addition, a Java developer should have a strong understanding of object-oriented programming. Without having a strong foundation on OOPS, one can't realize the full beauty of an object-oriented programming language like Java. If you don't have a good idea of what OOPS is, even though you are using an object-oriented language, you may be still coding in a procedural way.
Just studying OO principle definitions won't help much. You need to know how to apply those principles in designing a solution in an OO way. One should have a strong knowledge of object modeling, inheritance, polymorphism, and design patterns. You want to know how to program.
As always, having a complete and undeniable soft skill set is important. Getting along with people is a must, so every book, class, or training that you can get on soft skills — take it. There are no significant trends or variations with the industry right now. Aside from tier-structure and how you deliver product, Java essentially falls in line with what it has always been.
A professional certification is recommended when looking for jobs in in Java development. Since Oracle owns Java, it would stand to reason they are your best bet when it comes to certifications. Whether you are programming front ends, middleware, or you actually ARE someone who sits in the back room with a locked door and codes, you can boost your case to employers with an array of certifications.
I recommend the Oracle Certified Developer track to make you stand out among your peers, or gain increased recognition from your current employer (or that next employer down the road). A great place to start is with the Oracle Certified Professional Java EE 7 Application Developer credential validates programming capability to develop and deploy applications using Java Platform, Enterprise Edition 7.
No matter what certification track you choose, focus on it to the best of your ability. As always, I wish you happy certifying!