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.
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.
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.
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.
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.[/QB]
Probably after you get a job you will realize
1. Quite a few Java developers make �100k+ per annum.(Some make less than 25k.) 2. You need to be really good to be able to do a "permanent" job permanently. 3. All the big Investment banks are outsourcing in a big way.....I know quite a few developers who are 55+ years in age and have always been able to survive in these cut throat banks but with outsourcing they feel that their days are numbered......
All the big Investment banks are outsourcing in a big way.
It is the European banks which you need to avoid, such as ABN Amro and Deutsche Bank (i.e. the less prestigious banks who need to save money). They have both outsourced a lot of their IT causing countless job losses in the UK. The American ones such as Morgan Stanley and Goldman Sachs are not outsourcing as much (if at all) in the UK - certainly not their IT (to the best of my knowledge). Also, a lot depends on the type of development being done (e.g. A Front Office Java Developer is very unlikely to loose his or her job, but a Back office Developer is a prime candidate).
Joined: Apr 20, 2003
Originally posted by K Riaz:
(e.g. A Front Office Java Developer is very unlikely to loose his or her job, but a Back office Developer is a prime candidate).
Thanks for your input K Riaz. Can you tell me what Front and Back office Java developers are? I often come across these terms in job adverts.
As for the banks you mentioned, I know for sure that Goldman Sachs is outsourcing as well. A friend of mine is in fact handling GS account in the company to which they are outsourcing. But she mentioned that they keep all the key activities for themselves and outsource all the peripheral ones. So, good for us!!
Joined: Apr 20, 2003
Originally posted by ab parashar:
Probably after you get a job you will realize
1. Quite a few Java developers make �100k+ per annum.(Some make less than 25k.)
You think �100+ per annum is possible even in a permanent job? I was earlier only looking at permanent jobs but then gradually shifted my focus to Contract ones coz they seem to be paying much more. I have about 5.5 years of Java experience - of which about 3.5 years is J2EE. But I have only about 6 months of experience in UK.
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.
Building robust enterprise systems is, in my view, by far the hardest of the development jobs to do. So, if you have someone who is a capable J2EE developer and has a good understanding of an application server - Websphere and WebLogic Server are the market leaders - then that person has enviable skills which command very good rates of pay.