I think it&#x27;s perfectly reasonable for interviewers to ask scientific and &quot;non-practical&quot; questions.<p>1. If they just went by open-source contribution and prior experience, the pool of &quot;qualified&quot; people would be immense.  You need some way to narrow them down, and it&#x27;s fine for a company to pick their way, be it CS questions or how handsome someone is (joking) or how easy they are to talk to and interact with (charisma).  It&#x27;s not just about pushing code--lots of people can do that.<p>2. Questions like these are not totally unnecessary.  Even though you won&#x27;t be dealing with CS questions regularly at work, they still show that you put the effort in to learn them, and that you can think critically and on the spot to solve problems.<p>I don&#x27;t think hiring is <i>as</i> broken as people make it out to be.  Just learn the science and study up on it a lot before... I even bought a book that is a summary of common CS problems that interviewers ask.  It&#x27;s not a big deal for me to just read it up for a couple hours a day for a couple days before my interview.  Good companies are looking for people who are ready to put a lot more effort in than just brushing up on Dijkstra&#x27;s algorithm.<p>Note: One of the greatest things I learned from 5 years of undergraduate school has nothing to do with coding or science.  It&#x27;s the ability to just shut up and get some work done.  Even if it&#x27;s hard, unnecessary, or it&#x27;s difficult to understand the motivation behind being assigned it, it&#x27;s a useful ability (for growing professionally) to just crank out some work when you&#x27;re told to do so.  Many times, it takes doing the work to understand <i>why</i> you should do the work.  Then that lightbulb turns on and you realize how much you&#x27;ve benefited from learning Dijkstra&#x27;s algorithm and applying it to something; it&#x27;s pleasant.