Java is consistently one of the most sought after programming languages in information technology, and seems to appear in practically every job posting on ClearanceJobs. Common among the thousands of listings are a few developer skills that companies are clearly interested in your knowing. If you are in the market for a new Java programming job, here are some things you might want to brush up on, or learn in the first place, before the big interview.
Long gone are the days of one developer in the corner, his or her desk littered with cheeseburger wrappers and teetering stacks of documents a foot high, and messy code with the rationale that “really, it’s all in my head.” Today, mission critical applications are developed by teams, and to keep programmers from stepping on each other’s code, version control software is the cat’s pajamas. Git is among the most popular. It is short for… nothing! According to the Git source code, Linus Torvalds himself named the system, and it is a “random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronunciation of “get” may or may not be relevant.” (An alternative explanation is that when it doesn’t work, it is an abbreviation for “g*dd*mn idiotic truckload of sh*t.”)
2. Team Foundation Server
The companies that don’t use Git probably use Team Foundation Server, and they probably will also make you wear polo shirts and khakis to the office every day. (If a job posting mentions SourceSafe, expect to put in some long hours getting that company up to date. It was discontinued by Microsoft in 2005!)
Tomcat is an open source Java servlet container. Everyone from E-Trade to Walmart uses it for servlets and JavaServer Pages, and ClearanceJobs is populated with hundreds of positions that require knowledge of it.
The Spring framework is used for building enterprise-class web applications. Among other things, it is an abstraction layer, allowing you to develop your application without keeping too close an eye on the deployment platform. (Spring and Tomcat are like peanut butter and jelly.)
5. Agile software development
Customers think they know what they want, until developers actually build what has been requested. Then customers know what they don’t want. You can think of agile development as a software lifecycle for the real world. While this is perhaps a gross simplification, agile development basically counts on the plan changing over time, and encourages developers to start simple and add increasing sophistication to the software. (As opposed to writing down a plan, going off and developing it for ages, and only at the end submitting one big finished product to the customer, who is invariably unhappy.)
Hibernate, according to O’Reilly, “makes it seem as if your database contains plain Java objects like you use every day, without having to worry about how to get them out of (or back into) mysterious database tables.” You worry about your objects; Hibernate will worry about storing and fetching them.
Nobody likes documenting their code. As the saying goes: “If it was hard for me to write, it should be hard for you to read.” Large companies do not agree with that philosophy, however, and sharing it during a job interview is ill-advised. Where agile suggests documentation should be “Just Barely Good Enough” (JBGE), human resources wants documentation to be as thick as a Stephen King novel, and as fun to read. Just tell them what they want to hear.
IZPack generates installers for your Java applications. The real selling point here is that the installers can (though don’t have to) be entirely cross-platform. As in, the same installer works on Windows and Linux and MacOS. Sounds like magic, I know, and is a dream at very large companies with a diverse computer ecosystem.
9. Apache Ant
This is the Java equivalent of make build, but with a way cooler name. It’s also a lot more portable. (The whole forward-slash, backslash thing between Windows and *nix is avoided.) On the other hand, it uses XML, so pick your poison.
10. Java Messaging Service
JMS is an interface between Java software and enterprise messaging systems. It allows applications to talk indirectly to each other without getting muddled in the details… like whether or not the other application is even listening, or even who, specifically, the other application is.
Sometimes your job involves hardcore server-side programming, and sometimes it means making pretty menus for users. Swing is a Java GUI toolkit. (If you weren’t around for the bad old days of AWT, consider yourself fortunate.)
JIRA is a project planner and tracker, with an eye on agile development. It allows you to flexibly organize your workflow, and track and resolve issues. It is an alternative to Visual Studio Team Services.
You’re not going to get out of using SQL at some point in your career, so you may as well learn it now (if you haven’t already), or sharpen your skills for when that day comes. Worst case scenario, if you’re asked a question about it on the interview that you can’t answer, here’s a free joke to use as a distraction: A guy walks into a bar and sees two tables next to each other. He says, “Can I JOIN you?” (You’re welcome.)