Friday, September 23, 2005

NCST Survival Guide: Experiences from the year that was

Met some guys from the new batch and found them experiencing the same frustrations as we felt during our time. So decided to pen this record of what it was like to be at NCST doing the Full time PG Dipl in Softw Tech, for no other reason than, -- at best an aid to new batch members who find themselves floundering, -- at worst, a record of past experience, lest I forget :)

On joining you are immediately faced with the challenge of solving non-trivial programming assignments in the genre of string, matrix manipulation, game simulation problems, etc, and also the frustration of attempting (and failing at) MGPTs.

The data structures and algorithms modules introduces a lot of alien concepts, not often used in day to day programming projects in the workplace -- but an important foundation for computer science graduates nevertheless.

The cycle of lectures -> lab sessions struggling to complete assignments -> reading textbooks and writing code -> module quizzes -> MGPTs & Projects, immediately dominates (becomes) your life for the year.

The schedule is gruelling and demands quick pick-up and application of learning. Time is always in short-supply and the pressure is relentless. You're taught advanced concepts in very compressed time-frames. Imagine covering the 'C' programming language in just 3 days (followed by 15 days of C++, but still).

The emphasis is not so much on teaching as on introducing the student to core (advanced) topics of a subject. You're expected to put in double-time on reading, exploring and applying yourself to the subject.

It is very easy to fall behind -- so you can't afford to let your hair down, or allow yourself to be flattened by setbacks such as flunking a quiz or a project. The schedule doesn't allow you to. An important trait for just sitting through this course from start to end, is perseverance -- put your shoulder to the grind, forget about whining and the stress, and just do it!

Never lose sight of your goal to successfully complete the course. Depending on how new your are to the subject, you'll either find it relatively easy or hard, but either way, you'll learn a lot.

On Teaching: Teachers & The Taught...
Faculty members come with varying degrees of presentation skills, but all of them come with good knowledge of their subject. If you want to maximise their value, be prepared to ask very specific questions about what you don't understand. But make sure you've read up and practiced on the lecture's topic beforehand. Some teachers might appear to be boring in the way they present, but its your job to extract knowledge from them. The more questions you ask, the more will the duration of the lecture get stretched -- so be prepared for the lecture to intrude on your lab-session time, and for your lab-sessions to go beyond regular hours.
One of the mistakes I made was to not ask questions. Ask; persist; get answers; but don't look for spoon-feeding. That becomes very apparent.

In some cases the lectures touch upon a subject very lightly, while the module project expects you to be quite knowledgeable about it. The time constraint (12 modules in one year) prevents in-depth coverage, relegating lectures on some topics to an exploratory style at best -- which affects peformance on the project.
One way around this issue is to collaborate in groups and to learn from each other, rather than struggling individually. Explore a topic, learn how it works, and transfer that learning to your group members. In this way you'll all end up covering a lot more than you could alone. But this requires commitment to the group on part of individuals, and strong bonding and groupwork as opposed to streaks of individualism.

The Learning & The Attitude U Carry
Many folks join NCST with the sole objective of landing a job. That's a key goal no doubt, but to place one's primary focus on it, is (IMHO) to miss the point.
To me, the uniqueness of NCST is in the learning opportunity that it offers -- and the way it changes the way you approach the world of IT from then on.

NCST is a place where you should go if you're keen to build a career in IT, and to acquire skills that'll equip you for life as a Software Engineering professional.
Landing a job is simple -- brush up on freely available technical-interview question papers, pray for luck, and practice on impressing the HR interviewer.
But surviving in IT takes more than that. It requires competence in a broad range of areas, the ability to assimilate new technologies at thought-speed and to adapt and be willing to work round the clock.

One of the key skills that this course equips you with is the ability to pick up alien concepts in a short span of time. It forces you to assimilate new concepts and new technologies quickly and become accustomed to doing that on a regular basis.
In the real world too, new projects often demand that you pick up evolving technologies at short notice. At such times when most people would complain about the pressure, you feel at home, because you've experienced similar situations in the course (in each module as a matter of fact).

I think 'Re-skilling' is the most important skill you can teach yourself during your stay at NCST, apart from getting to learn all the foundational Computer Science & core IT topics in use today.