So I was recently asked (and gave a very bad answer to) a question that has been haunting me ever since.  What is the subfield of computer science where I am the strongest?  First of all, in my undergraduate training, I was never really introduced to these ideas of subfields of CS explicitly.  I knew intuitively there was a difference between people working on databases or on operating systems, programming languages or algorithms, but it wasn’t emphasized as a choice I would ever need to make.  This is perhaps because I went to a relatively weak school in CS for my undergrad.  But now that I’m in a rather strong CS school and pursuing a CS-related masters, the question should probably have entered my mind before now.

So when asked, I floundered about for an idea and spluttered out “algorithms” just because it seemed like it was hard to go wrong there.  Well, I’ll leave the details out of this little memoire, but suffice it to say, I was wrong.  A better answer would have been “none.”  Where does natural language processing / computational linguistics fall in the list of subfields?  Is it its own?  Or is it part artificial intelligence, part algorithms, part whatever?  I’ve seen it lumped with AI more closely in the past, but unfortunately AI escaped me as a possible choice when called upon in this high-stress scenario.  Moreover, I haven’t really compartmentalized techniques as belonging to “AI” or “databases.”  Is it useful to do that?  I guess I do sometimes, but when people ask me to make big picture assessments of things I haven’t thought about much, it takes me a while to process it.

I hate interviews.