Archive for March 2009

I have been getting a lot of requests from freshers to guide them about their career. So I have decided to dedicate an article for that.

Pre-Fresher

I would describe someone who is in the last stages of finishing their formal education as Pre-Fresher. At this stage of your life, you need to be aware of industry trends, job market and salaries. Websites such as Tiobe Index should give you an idea of what is in demand. However, remember that what is in demand today may not remain in demand by the time you finish your degree. So its still a bit of a gamble. But if you have a broad skill set and good design and analytical skills, you can’t go wrong.

Don’t close yourself off. You may not be master of all skills. But as long as you are good at a few and know about a few others, you should be fine.

Industry experience is vital and would set you apart when you finish your education from your collegues. So I would suggest that at this stage you go for it even if you don’t get paid.

Skills worth looking at are: Java/J2EE stack, C/C++, VB, PHP, MySQL, PostgreSQL, Oracle and Linux.

Fresher

At this stage, you have finished your formal education and are ready to take on the world. You have to remember that humility, honesty and hard-work are the important attributes at this stage.

You don’t know everything. So don’t pretend you do. Don’t put things on your CV that you cannot justify. And if you don’t have a job, nothing is stopping you from downloading the latest JDK or Hibernate or JBoss Seam distribution and having a play around with it.

It is possible that you may not have access to a computer or internet. Be resourceful. I used to hire computers on an hourly basis to practice C Language.

Take any job. And once your contracted hours are over, with your manager’s permission you can spend time in some self-teaching. I am sure your manager would be more than happy to let you do that.

By this time, you should have a good idea about what skills attract you. So you can start concentrating on sharpening those skills. For example, if it is Java based Web Applications that interest you, make sure you have a look at JSF, RichFaces, JBoss Seam, JPA, Hibernate and JBoss.

There were no free databases when I had started my career. But today you are spoilt for choice. I would recommend PostgreSQL. Again, for operating systems, go for something with wide acceptance such as Fedora Linux. Have a look at distrowatch.com for other popular linux distributions.

Again, as far as an IDE is concerned, you are spoilt for choice. I would recommend Eclipse as that has a great set of available plug-ins.

Other things that you need to be aware of are Apache WebServer and Subversion (SVN) version management software.

A skillset such as that is going to give you a good start in your professional life.

One thing my teacher Dr. Mrs. Shirwaikar said to us which I follow to this day is “Your books don’t teach you everything”. And no matter how much you know, remember, you don’t know everything.

Another thing worth remembering is you may do everything correctly. But the outcome may not be what you expected. That doesn’t mean there is something wrong with what you did. Its just life – taken from Star Trek.

Recession or Credit Crunch time imposes heavy restrictions on a company’s spending. Generally where a company can hire 10 developers, they are forced to reduce this to 5 or less developers.

Not just that, each individual is required to pick up the work of 2 or more individuals and also, wear multiple hats such as analysis, development, mentoring, project management, deployment, testing and user training. This means that a smaller development team is required to develop the same size and quality of a project as a larger team did before.

A lot of time in the project is taken up for design. However, once the database design is in place, a team is required to develop a series of screens that allow the end users to quickly get a feel for the project and be able to do Create, Retrieve, Update and Delete operations on the underlying database.

Add to this, requirements such as search, filtration, pagination, etc. The requirements and expectations don’t stop there. You will have the higher management asking for Rich Internet Experience and Google-like search.

In the recent past, I have been involved in many projects where the requirements have been similar to what I have described above for some small to medium sized business clients.

So what tools and frameworks really work in such situations you may ask. I have been using the following:

  • Java / J2EE
  • JSF
  • RichFaces
  • JBoss Seam
  • Java Persistence API (JPA) driven by Hibernate
  • PostgreSQL database
  • JBoss Application Server
  • Linux

The above stack is not only fantastic for developer productivity, it also provides fantastic TCO (Total Cost of Ownership). Depending upon the kind of support requirements, the stack can cost anything from Free to GBP 100,000 a year apart from the hardware costs. As the above stack offers a high developer productivity, the cost of development goes down significantly as well. And so does the time. Of course, these two depend largely upon the complexity of the project.

Interesting isn’t it? Especially when you consider that many organizations spend a few Hundred Thousand Pounds on just keeping their applications running!!! Of course, for larger organisations and banks, this cost alone can run into Millions of Pounds.

Recently I had the opportunity to speak on Hibernate at the UK Java User Group – Scotland. The presentation was partly slides and partly a live demo.

In this live demo, I covered following examples:

  • Single table CRUD
  • Single table CRUD where the id was autogenerated
  • One-Many CRUD
  • Many-Many CRUD

I have since migrated the example to work on Eclipse Ganymede (3.4.1) instead of MyEclipse 7.1. I have also made some small changes to the code.

You can download the presentation and the example code as a single zip file from here -> hiberws.zip.

To run the examples, you will need a PostgreSQL database. The SQL script for that is available in the db folder.