Most time the interview you attend these days are rubbish. People on the panel have no clue the questions they are asking. Only thing they are trying harder is to convince you they are better than you.

If they are better, why can't they do the jobs instead of hiring someone?!

Seldom interviews, sometime when you are lucky, really force you think harder, notice your weak spots and maybe find your self-esteem back. These questions in interview are nothing but pure gold.

Question 1: Think about you are going to have a debate with someone also work in software development regime, who have the similar skill set you have, who you regard as the rivals or equivalents. The advantage is you can choose the topic. The topic you choose should show your full understanding of SDLC, the topic that would establish you are exceptional of the rest, the topic that would even elevate you to the top and win the debate. What topic you are going to choose?

There are a wild range of topics in software development, popular topic like programming language, high performance and high scalability, security is another very "sensitive" topic making sense.

However, there is one, the only one answer to this question. The topic you should choose is "Automated Test".

High quality software is back by the high quality test. Automated test can help decrease software development time, improve efficiency, increase software quality and reduce costs.

Automated test is the software development. There is really no way getting around it.

Question 2 is very easy one: "What is your favourite programming language?"

Easy but tricky indeed.

If you interview for a Java development role, how could you make you extraordinary like if your answer is "Java", only?

Answering "Groovy" makes you an always want to learn and play with new thing like. "Javascript" makes people think if you could prove you are not a terrorist you must be an extreme geek.

Functional language, like Scala, are red hot potatoes at the moment, but are not quite good answer this time.

Question 3 is following your answer of question 2: "Tell three big things you want to change and improve in your favourite language?"

If the answer of your favourite language is Haskell, just because it is a language that let dynamic code loading a ton of other ostensibly dynamic features, an extremist conservative language in a liberal way, but you are still not that a radical extremist conservative programmer, you know you are dead now ...