I am an student with good knowledge of Java, and I'd like to get into the financial sector.
How is Java used there? How can a Java developer expect to break into the financial sector and find success? What types of systems should I be looking into?
I am not sure if there are courses to prepare students for a potential job at a bank, most people who work for a bank learn about the nuances of software development on the job.
Most banks utilize Java technology and most applications are either web applications, or backend interfaces to other systems, legacy systems, and mainframes. They tend to have a big budget for enterprise software packages and suites.
The pay and benefits tend to be average for the industry but many can be pretty stingy with money.
More and more banks are looking at outsourcing software development, especially in my area as they will take technical people with financial business knowledge and experience, elevate them to project manager status then outsource the rest, especially QA. Banks used to focus on homegrown application development to meet internal needs but most are veering from this as well and would prefer to purchase software from outside vendors and have their internal IT and software development work on integrating these third-party systems.
Not a very exciting job but most are pretty easy.
I work for a credit card processor, not a bank. If that qualifies, then we use Struts2 with the convention plugin. One of our systems uses myBatis for database access.
We use JUnit, Selenium, H2, DbUnit, and Jetty for automated testing.
I just wrote some things with Apache's HttpClient to communicate with another system's REST API. We also use Guava, Guice, JodaTime, and a bunch of other common libraries.
When we interview, we ask about Web programming experience and Java experience. We don't expect Struts2 experience, though it would be nice. Before devs can start coding, they must pass a quiz on the OWASP top 10 list (but they can attempt multiple times, with access to the OWASP site in between quizes). This is mostly so we can be assured that they know basic security terms.
We start new developers with a Struts2 hello world program using myBatis to read/write some data to a database. After that, developers jump into our internal CRM system and can learn the rest of the technologies while doing actual work. For all of our systems, developers work on a development branch, and all commits get code reviews (consequently, everyone on the team knows how the new dev is progressing).
Most of what I have seen in the Financial realm Java is used for GUI development on the App Side.
We do use JUnit, SWING but don't focus on the toolkits for Java primarily focus on the design aspects, algorithms, Data Structures as these will help you better then just outright knowledge of the libraries.
Web development is unfortunately or fortunately is something I have no experience with currently.
P.S. Just witnessed an interview where a person was basically stopped from talking about TreeMap and asked for an implementation of a Tree structure and no I wasn't interviewing.