Pros
Fairly easy to get hired by TCS without requiring much technical work experience. Salary is average and you have some job security. As a new grad, you will go through an initial technical and cultural (indian) training which is fully paid. If you are not assigned to a client for a month, you still get full pay. I've heard of people who have not been assigned to a client for more than 6 months yet they still get full pay.
Cons
The initial technical training is good but often feels rushed. The cultural and mandatory training is very Indian based and seems out of place. It's almost as if you will be working in India. They show you a history of India and how people in India think and behave. That's because ALL the TCS management is Indian. TCS has clients all over GTA. In the job description it says "great flexibility in work location", but this is a complete lie. They absolutely don't care where you live and will put you on the other side of the city. Once you are assigned to a client, you are pretty much there forever (unless the client ends contract with TCS) and you have no say what so ever. They will refuse your change of client request. There's no work from home option and no flexibility in working hours. Once you are at client site, for about a month you will do absolutely nothing productive. You just have to show your face everyday and do some outdated online training. The quality of your work life will depend entirely on what manager you are assigned to. You will often be put on projects that are behind schedule and the manager is very frustrated. There is very little training or mentor-ship on the specific tools needed which makes it unpleasant experience for you. A lot of times even the people who are in lead position have very little idea about the project it self. The management is all about quantity. As long as you show consistent high numbers of tasks everyday, that's all that matters. Respect for employees goes out the door when things aren't looking good. You will be blamed for working slow even though it had nothing to do with you, and you are demanded to work longer hours and work on weekends week after week, without compensation. Once the project is coming to end and there's less work, you will be thrown into completely different project without any notice like disposable worker. Lot of politics, micro managing and tracking of hours. Constantly getting told to submit detailed "minutes" worked on what, every single day. On top of that, also need to submit weekly tracking of activities to justify your hours. High turnover. Out of the initial group of people that were hired, nearly half the people quit before 1 year. Terrible if you are trying to get some real developer experience since you will be doing monitoring or manual testing mostly.