Friday, August 07, 2009

TCS ILP Study Materials

One of the first phases for candidates joining this reputed organization is undergoing a training program like xplore, Explore, or ILP to get ready for the corporate world. The concepts and technologies that are useful to be adept with involves key understanding of programming, operating systems and algorithms.
A broad generic overview of the below topics will be beneficial as we embark on this. Some of the key topics that have been covered below to give a pretty good grasp are focussed on Software Development Life Cycle (SDLC), Agile Software Development, DevOps as a set of industry practices, Operating System concepts, Programming in Unix, Software Testing concepts.

Software Development Life Cycles - A good understanding of the different stages of Software Development gives a pretty clear picture of how we fit in the bigger picture, how the lines of code that we so crave to start writing ultimately see the light of day.

For more in-depth understanding of the concepts I would like to recommend some of the below articles:

Agile Software Development - The current pace of the engineering and business world demands most all of the lifecycle models to be agile to keep up with the changing landscape. Hence we have been lucky enough to gobble up few new key terms along the way that's really interesting.


A more in-depth detailed insight into the world of agile and how and in which circumstances it becomes relevant, the below lecture will be helpful.

DevOps - A new breed of set of practices that aims to further enhance and streamline the flow of activities to meet the demands of the modern world is DevOps. It is aimed at overcoming some of the limitations of the earlier models, and hence combines the best of all worlds to meet the changing asks. It's interesting to note that none of these new models absolutely replaces the earlier ones, but instead power-up and fine tunes their defects to certain extents.

Some of the best practices and corresponding benefits leveraged out of successful DevOps implementations in the largest organizations can be known from case studies and use cases in the real world. A really good video to sink in and absorb the essence is below.

Operating System - The functioning of Operating Systems and the different modes of interactions of the various processes is an essential piece of study. It helps us in our next steps when we try to investigate complex algorithms and problems in various fields. Some key concepts can be grasped below.

Understanding of Operating System virtual memory, paging, segmentation, and address space utilizations keep forming important aspects of state of the art technologies.

The logical interactions between different processes and concept of semaphores keep driving new innovations in nearly all fields today.

Unix Programming - The knowledge of Shell scripting has become nearly synonymous with knowing programming these days, hence it is essential to be comfortable in this area. A very thorough yet crisp understanding is what will help us go a long way.


Software Testing - One of the top gold standards of software quality is after it has passed rounds of exhaustive testing successfully. Thus it goes without saying how much crucial this activity fits into the overall lifecycle of the delivery.

There are different types of testing that needs to be performed, and is usually best to have multiple brainstorming sessions and review to make sure no key area is missed out before finalizing the test cases.
The approach we take towards testing also depends on the datasets, our focussed areas of sensitivity, the integration of the component with other pieces, and how the application functions as a whole after the change.
The concepts of the key domains elaborated here will equip ourselves for quite sometime as we hike on towards the unknown territories in the land of the future.