There are two distinct classes of 'programming in NGS data analysis':
- To make the scripts/programs that glue together the inputs and outputs of other programs. Occasionally with a bit of mild novel analysis thrown in, but barely anything beyond basic aggregate functions (min, max, sum, mean, stddev, etc)
- To write novel statistical analyses that outperform, based on some arbitrary metric, other programs in the field. Alignment, prediction, modelling, clustering, etc.
When I started doing NGS analysis, I thought 2) was a lot more impressive than 1). These days I'm not so sure. Whilst 2) requires the skills you might expect in a typical programming analysis job (understanding of data structures, algorithms, optimisation, statistics/mathematics, etc), you have the luxury to define your own formats, standards, etc - and everything is somewhat under your control.
Number 1) however is a different kind of programming entirely. It's about understanding the programs you glue together like they were your own children - knowing their strengths and weaknesses, their quirks, their bugs, their parameters, their wacky file formats, and working under what seems like constant uncertainty. To do it as a profession where you have deadlines to meet and multiple projects to juggle is an art form.. Some people are very good at it, whilst others - who are fantastic programmers in their own right with hundreds of github projects on the go - are not.
So to answer your question about questions with a question - what kind of job is it?
For a Type 1) job, I wouldn't really care if you knew the difference between a bubble sort, a radix sort and a merge sort. I would be a lot happier if you knew how to use unix sort(1) to sort the first column of a CSV file numerically, then the second alphabetically, using 10 CPU cores and the SSD for temporary space even though the file you are sorting is on a remote partition.
Having said that, this very practical view of interview questions is not always held by interviewers. I've heard stories of people not getting a Bioinformatics job because they couldn't distinguish an Exponential distribution from a Pareto distribution...!!
Thank you for your explanation. This gives me an idea of how a person in the panel thinks about the applicant during the assessment.
I should add that these questions come from a combination of seeing lots of frauds get hired and waste everyone's time and money, and also from attending coding job interviews where I get asked WTF questions like "Write a sudoku solver in 30 minutes." I can't guarantee that you'll get asked these questions (or any at all -- I've interviewed and received offers for positions where I didn't receive a technical interview. I turn those down). This is just how I do things -- I'm not sure one can have any kind of expectation about what a technical interview will entail.