Wednesday, June 21, 2006

how pipe works

I had a (slightly heated) discussion today on whether one should know "how pipe works". One of my colleagues was very upset after interviewing some supposed to be brilliant candidates who did not know (according to him the "most basic concept" of Unix OS), that "how pipe works". I was not very convinced with him that it was very shameful of him.
I was myself very fearful of these (according to me jargons) of Unix like pipes, fork etc. etc. which make such good interview questions, but one like me always forget them as soon as done with an interview. I always used to hate such interviews. And, used to come out flying colors from them, if and only if, I had read an OS book before them.
If I were an interviewer, I would surely like to have candidates which have these on their tips "without reading a book". But I believe that only people who have done real system programming can have these always current. You cannot expect that from everybody out of college, however good college it might be.
So, what should you see?
I believe the reason why companies prefer to go to "supposed-to-be" good colleges, not just because the students are most well taught, and hence they know-all. But because the students there are supposed to be smart, according to that college's admission criteria. To further that, the students with good CPIs are supposed to be smart by that college's gradation criteria. A company just wants to make sure that whoever it recruit is smart enough. Can learn and can get things done.
So, I believe it's not important to know "how pipe works". But it's important that the person should be able to understand it as and when needed. So, if you are interviewing a person who has done a multi-tasking project with lots of programming, which involves using pipes-and-stuff, and he doesn't know how pipe works, he is surely worth nothing. He did not learn when he was needed to.
But what the hell, pipe is just something which takes an input and put it to a output. I think there will be more to it. Otherwise, it isn't even worth asking. But that was all I ever needed to know. And, thank god nobody asked me this in an interview!

7 comments:

shaileshkm said...

Hey Shweta,

You are taking the 'pipe' question too literally. The reason 'piping' works so transparantly in Unix is because of the smartness that goes in process context. The 'pipe' question is just the facade to guage understanding of process context. One who has learnt pre-emptive multi-taskig os must surely be introduced to process context. And you can not hide behind the fact that it was tought during BE course and don't remember it anymore. It is so fundamental, you cannot simply forget it unless you wanted to. How do I know? Well, I have hardly wrote programs dealing with (any kind of) pipes. Mostly 2/3. Yet I remember. Going by the same yardstick, I'd expect someone who did B(Tech,S,E or whatever) as recently as 2 years back to have internalized such fundamental things. You can't just say my specialization is database, and I know zilch about a particular language or an OS. The specialization is desired and yet the rest of the knowledge is necessary in industry.

And I don't think its me who should be ashamed of expecting students of internalizing the basic fundamentals they have studied to get good marks.:-)

Your couligue!

Unknown said...

May be the IIT MTechs are not upto your expectations ;)
But I for one don't remember things unless I have made some practical use of them. Just reading or learning is short-termed.

born_in_the_woods said...

well well well, Me being a techie can't get away witout commenting on this situation.

I see the point what shailesh is trying to make, -basics- are not to be forgotten at all costs.. But

Shweta has a interesting and convincing point as well. Anyone who reads a OS book before the interview will pass shailesh interview with flying colors, yet he may not be as good as -others- who didnt brush up 'pipes' :(

Long Reply whats the conclusion?
If a candidate doesnt know pipes, I give him the benefit of doubt, explain him what it is, and ask him How will you design a 'pipe' and try to see how deep he can go.
What say!

Chill shailesh. you don't have to give an explaination. :)

shaileshkm said...

I find it ironic that I'm being judged on one single question of type-asking-bookish questions.

I think here lies failure of our education model. IIT output is considered brilliant, and judged according to parameters set by IIT and not by the industry. However, the feeder institutes has not achieved this feat. And here in lies the problem. If the feeder institutes (to IIT) were good at teaching, basic concepts would get internalized far easily and nobody would give an execuse that so-and-so thing was tought some years back.
If something is learnt, you must know not just remember. If you just remember a thing, you are prone to forget it.

Unknown said...

I guess we have come to a stage in this discussion where we are not understanding each other's points well, so it might be better to stop this here. No wonder, whether a interview question is good or not, is such a tough question to answer :)

shaileshkm said...

Just noticed something, in my blog as well as yours. By default, comment field has truncated time stamp. Not showing the date. There is a setting in comment section where you can turn date field on.

Just FYI.

Shilpi said...

Interesting discussion

I dont know how pipe works, I dont think I ever read about it (or did I :) - so unfortunately I cant contribute to this argument

But this reminds me of another discussion I had in my office - Is it right to judge candidates by asking "trivia" type questions, or one should check only basic knowledge and understanding...

Trivia type ques - which u can very easily answer if u have read particular chapter of a particular book, but otherwise its nearly impossible to answer, because they are not general enuf to be read by everyone. And generally interviewers who ask such ques give undue importance to them.

In our discussion, most of us were not in support of these type of ques...I do not know how much parallel can be drawn between the tqo discussions (as I said I dont know how pipe works)