I am an independent contractor and, as such, I interview 3-4 times a year for new gigs.  I am in the midst of that cycle now and got turned down for an opportunity even though I felt like the interview went well.  The same thing has happened to me a couple of times this year.Now, I am not a perfect guy and I don't expect to be a good fit for every organization.  That said, my batting average is lower than usual so I politely asked my last interviewer for some constructive feedback, and he delivered!  The main thing, according to the interviewer, was that I seemed to lean too much towards the use of abstractions (such as LINQ) rather than towards lower-level, organically grown algorithms.  On the surface, this makes sense--in fact, it made the other rejections make sense too because I blabbed about LINQ in those interviews as well and it didn't seem that the interviewers knew much about LINQ (even though they were .NET guys).So now I am left with this question: If we are supposed to be standing on the shoulders of giants and using abstractions that are available to us (like LINQ), then why do some folks consider it so taboo?  Doesn't it make sense to pull code off the shelf if it accomplishes the same goals without extra cost?  It would seem to me that LINQ, even if it is an abstraction, is simply an abstraction of all the same algorithms one would write to accomplish exactly the same end.  Only a performance test could tell you if your custom approach was better, but if something like LINQ met the requirements, why bother writing your own classes in the first place?I don't mean to focus on LINQ here.  I am sure that the JAVA world has something comparable, I just would like to know why some folks get so uncomfortable with the idea of using an abstraction that they themselves did not write.UPDATEAs Euphoric pointed out, there isn't anything comparable to LINQ in the Java world.  So, if you are developing on the .NET stack, why not always try and make use of it?  Is it possible that people just don't fully understand what it does?
Why is the use of abstractions (such as LINQ) so taboo?
algorithms;.net;abstraction;linq
I don't think it's the use of abstractions per se that's objectionable.  There are two other possible explanations.  One is that abstractions are all leaky at one time or another.  If you give the impression, correct or not, that you don't understand the underlying fundamentals, that might reflect poorly in an interview.The other possible explanation is the fanboy effect.  If you talk excitedly about LINQ, and repeatedly bring it up in an interview with a company who doesn't use it and has no current plans to do so, that gives the impression that you would be dissatisfied or even disgruntled working with older technologies.  It can also give the impression that your enthusiasm for one product has blinded you to alternatives.If you truly think you would be happy in a non-LINQ shop, try asking about what they do use, and tailor your answers accordingly.  Show them that while you prefer LINQ, you are competent using whatever tools are at hand.