Thursday, July 8, 2010

Measuring the Gap

Now we look at the first of the gaps listed in my first post - the gap in the difference between the skill sets young graduates from a majority of Educational Institutions come out with into the job market, and the skills they need now to join a company's workforce and be productive as soon as possible.



Graduates from a technology-oriented bachelors’ program are expected to be ready for employment. This implies that they have already mastered the necessary skills and been exposed to key technologies of interest to employers.

However, the progress in computer and computing related technologies in the industry, and the fact that most graduates are caught with their wrong foot forward when they join such companies, makes one wonder whether most of the colleges are doing enough to prepare their students for the realities of the work arena.

Majority of students come out with the impression that skills in programming in a high level language like C++ or Java are adequate when it comes to facing the highly competitive and emerging computer field in IT organizations.

It should be noted that during the Y2K crisis, any graduate was given a basic training in troubleshooting the issue and in conversion, and found employment.

It should also be noted that a large number of developers do not necessarily come from a computer science background at all, but from diverse disciplines such as mechanical or civil engineering. They make the transition by taking up basic language courses offered by external organizations, and then essentially self-train themselves as they go about their job. Peer learning and occasionally a good mentor is often all they have for a support system.

Trainings organized are often very project specific and on complex and advanced topics, opr ? particular products. A large percentage of the people who attend such trainings don't get what they should get out of such trainings, and stumble and learn things the hard way.

The result is lost productivity, and lost time in organizations trying to execute projects under tight deadlines. Sometimes, it also end up stretching the project delivery period since the team doesn’t have the right expertise n skill-set to execute the project efficiently. Also, having picked up skills the hard way, freshers are always on the lookout for the next better opportunity. The individual programmer is an IT company's asset, therefore, when he walks out through the door at the end of a day’s work, he should have sufficient reasons to come back the next morning. A conviction that the company has invested enough time and money on them to develop and sharpen their skills can be the clinching factor.

Having said these, let me point out the desired skill-sets that is required or sought after in the fresh joinees in an IT organization, and where lies the gap therein.


  • Most of the fresh joinees have little or no idea about setting up complex development environments involving one IDE or the other, or in use of versioning systems.
  • They have scant ideas about software testing and the discipline involved for that. Software testing is an essential skill-set for a software programmer even though in the organisation there may be a different team handling quality aspects.
  • They often have no concepts about networking, cell phone systems, Payment systems, ATMs, WiFi, LAN etc. Such knowledge is vital to work effectively in today's complex and multi-disciplinary software projects.
  • Database concepts are often very elementary; skills in writing database procedures or complex queries, SQL optimization or basic database administrative functions are lacking.
  • Freshers are often good at picking up technology aspects, but are very weak at application design aspects. They lack ideas on basic design patterns.
  • They are also in adept at web technologies when they join an organization. For basic skills like Javascript, Ajax etc there are no comprehensive training courses available, and the path to knowledge is often through peer interaction and internet lookups and hack solutions. GUI and usability skills are often lacking. They possess hardly any knowledge on fundamentals of web and application containers as well.
  • And most importantly, most often they lack a structured way of thinking to solve hard computing or algorithmic problems that come up their way during their work. It is a known fact that bulk of the time spent by a programmer on a project comprises of attempting to solve problems with which they are stuck. Problems often get solved through collaboration or through assistance from Internet forums rather than through thought, and the time spent on each such issue can be considerable, affecting the overall timeline of the project as such.



Apart from the technology related gaps above, such freshers are also expected to be good at communication and teamwork. They are required to perform in a competitive team, be ready to escalate issues as and when they rise and attend customer calls. With scant exceptions, majority of the fresh joinees are unprepared when it comes to this.


To a large extent, these issues also plague developers who may have put 2-3 years of work at an organization - because they started with the same base.



My point is, a thorough grounding on the above skill-sets is needed for any developer to be productive from day one, and is also the basis on which IT organizations can build the technical leaders of tomorrow. When the base is suspect, and institutions offering Computer Science courses are not likely to change their mindsets and co-ordinate with the industry to understand the market demands, what options do the freshers have? What options do the IT organizations have?

In our next installment we take a look at training - how it is handled in IT organizations presently...and why it is inadequate.

No comments:

Post a Comment