Hello Folks!
This is my second month of active job-searching and am sharing with you some of the buzzwords and must-knows that I have come across either through interviews or reading job adverts.
I am dividing this into three sections: Web, Desktop, and Common.
WEB
---
1. Frameworks: Besides knowing the ins and outs of the all-pervasive
STRUTS framework, one should have a broad-level knowledge of other frameworks like Spring, Tapestry, and Turbine. Spring is the hottest of the three. It is an all-encompassing system which supports a whole lot of others techs like Struts, Hibernate, Velocity etc. Spring is modular and you can use one module or a combination of modules. Unlike Struts, Spring also has support for the Persistence layer.
2.
Java Server Faces (
JSF) - JSF is a framework with stress on View tier and not just a web page rendering technology like
JSP, as the name suggests. It can work with Struts as well as by itself.
3. Velocity: Is a template engine for web pages. An alternative to JSP. It completely separates the page from programming logic. Velocity can work with both Struts and Spring. However, it is being designed to work more as a template service provider for Turbine framework.
4. AJAX: A really hot one! To the uninitiated, AJAX tries to make web UI as responsive as a regular desktop application. Basically, no "click and wait" for the entire page to re-fresh. It only updates the new information. Plus, the browser keeps on sending and receiving info from the server without waiting for the user to click a url or a UI component.
You should go to �Google Suggest� to see the power of AJAX. GMail has been using it for a long time without us (or, rather me!) even realizing it. It updates the inbox with new e-mails without refreshing the entire page.
5. Web Services: Uses HTTP (Internet) as the back-bone. The language used is XML. The server creates and publishes the service using the directory service. The client locates, requests for the service, and receives response.
SOAP (Simple Object Access Protocol) is the communication channel between the server and client. The "yellow pages" of Web Services is the Universal Description Discovery and Integration (UDDI).
6. IBM WebSphere App Server and WSAD: I really, really do not understand why expertise in this particular app server and designer gets the contractors so much of money. I have often seen adverts for WebSphere and WSAD contractors which pay around �400 per day and this is just the average.
DESKTOP
-------
1. Distributed programming: CORBA, RMI, and RPC. As old as the oceans! Added for completeness.
2. UI (SWT and RCP): SWT (Simple Widget Toolkit) is a desktop GUI library that is also a ECLIPSE plug-in. It can be used with or without ECLIPSE. SWT uses the native widgets as against SWING which draws its own widgets on the screen. RCP (Rich Client Platform) is a whole ECLIPSE-based desktop UI building platform which may or may not use SWT.
COMMON
------
1. Design
Patterns:
http://www.allapplabs.com/java_design_patterns/creational_patterns.htm I often go to this very easy-to understand site when I am reading about some technology and they refer to this pattern or that.
2. ORM/Persistence layer (Hibernate and iBATIS): During my last job in late 2004, we used iBATIS for adding persistence. Another option that I read about during those days (and which has become very, very popular) was Hibernate. All the SQL commands are embedded in an XML file and they can be called from your program using an intermediate class which has methods like update, add, delete etc. They can be used for both web and desktop applications. A lot of jobs ask for Hibernate specifically!
Any idea how this contrasts with entity beans? Some where I read that entity beans are slower as compared to using iBATIS and Hibernate. Any thing else?
3.
IDE: ECLIPSE seems to be the hottest IDE going. It is open-source with IBM backing. It is plug-in driven and there are plug-ins for a whole lot of things -
Tomcat plug-in by Sysdeo, SWT and RCP plug-ins for UI development. I have seen adverts that explicitly ask for expertise in this IDE and its plug-ins SWT and RCP. I have also seen adverts that ask for experience in plug-in development - i.e. creating new plug-ins as against using available plug-ins.
4. Domain: Banking IT domain seems to be paying the most in UK. The hottest in this area is investment banking. A friend of mine (he was earlier working as a Consultant in a permanent job but has now moved to independent Contracting jobs since they pay so well!) was saying that most of the banks in UK hire only contractors for development. They work under a project manager, who is a permanent employee of the bank and is often paid much less than the contractors. If you have experience in UK in that particular area, then �500+ is in your pocket every day.