Fast technological changes impact the software industry. Today, maybe python is hot, yesterday it was possibly Java, Oracle, C# (C-Sharp), .NET and others. Who knows as to what will be popular in the future ? Not many can predict the future and directions of the IT industry.
The only prediction that can be made is that the software technology road ahead will be full of bends and turns.
How to provide Sound Conceptual Foundation Knowledge to Software Professionals so that they are assured that once they have grasped these concepts, when technology changes in the future, their skills will not be redundant ?
The Answer : Generic Abstract Teachings (Independent of Individual Technology Instances) must be imparted in software.
Problem # 2 - Lack of Practical Training Exposure
Today there is a gap between what the software industry needs and what the training industry currently provides. Most of the faculty today in the various training institutes have not practically worked on real life software projects.
As one can see in the above visual from the Classical Software Engineering Essay 'Mythical Man month', the effort required to create a full-fledged Programming System (multiple developers working on multiple programs together) is atleast nine times than the effort required to create a single program.
Most Academic Institutions and training institutes give small independent assignments (single programs) to their students. These do not have much of a value unless they are part of a larger real life project that truly measures practical challenges & complexity.
How to provide relevant inputs to the fresh software trainees so as to minimise the skills gap which exists between the knowledge imparted by most training institutes and required by industry ?
Problem # 3 - Unintegrated Training
Most training course modules are not integrated to one another as there is minimal logical flow between them. Most trainees find it extremely difficult to be able to retain knowledge of earlier modules, when they move on to newer modules. It is imperative that the entire training that is provided is integrated in an uniform and consistent fashion across all different technologies and modules.
How to ensure that uniformity And integration is achieved in the entire training Program irrespective of technologies taught ?
The training topics have to be integrated at a Generic knowledge level within the organization.