**汉语阅读者**可以从 这里 阅读其汉语版本。

This transcript is subject to being incomplete and/or of wrong order as it is recalled by me. Only lines starting with ‘

Me:’ are spoken by me. In the same section, the same letter represents the same person. If only one interviewer spoke, he is denoted byE. I was interviewed by about 8 people.The transcript was written in English in March 2014, immediately after the interview for best fidelity. In English because the interview went on in English. The transcript was translated into Chinese on 18 July.

The transcript is published after the period of confidentiality.

## 1 Introduction

**E**: Please introduce yourself within 2 minutes. Just tell us what you’d like us to know most.

**Me**: My name is Gee Law, Chinese name Luo Ji. I love computer technologies and mathematics, and I’m good at both. I am currently a Microsoft Student Partner, which has something to do with Microsoft, like promoting its latest technologies. I love algebra, especially linear algebra. I think linearity is the inner beauty in it. I also like mathematical analysis.

## 2 Programming languages

**E**: What programming language do you know?

**Me**: C#, C++

**E**: List a few programming languages?

**Me**: VB6, VB.NET, C#, C++, C, Ruby, Python, Java…

## 3 C++

**E**: What do you think of C++?

**Me**: I think it’s too complex, for me, for everyone, to know all about it. I hate the complexity.

**E**: How is it complex?

**Me**: The lookingly-the-same statement can have very different meaning under different contexts. (I wanted to name the `Hack vector, vec, my_struct; vector<vec> my_struct;`

example, with `operator <`

and `operator >`

overloaded.)

**E**: For example?

**Me**: It’s hard to name a concrete example at this time.

## 4 Ruby and other things

**E**: What do you think of Ruby? What makes it a successful language?

**Me**: I haven’t ever used Ruby, just knowing its name.

**E**: Okay. Let’s get down to the basics. What languages do you use?

**Me**: Visual Basic, the C family.

**E**: So would you please read this piece of code and decide the output?

```
void f(int p)
{
if (p < 200) f(p + 2);
else p + 200;
}
int main()
{
int i = 8;
f(i);
printf("%d", i);
}
```

**Me**: It’s… eight.

**E**: Okay.

## 5 Microsoft Student Partner

**E**: You said you’re a Microsoft Student Partner. What have you done at Microsoft?

**Me**: I’m not at Microsoft.

**E**: I know, but you’ve got something to do with Microsoft. Just tell us what you’ve done.

**Me**: I programmed a few Windows Store apps and delivered some webcasts, promoting its technologies. MSP is just like a Microsoft evangeli(on), evangeli(on)… evangelist! Actually I received an honor from Microsoft, ‘优秀微软校园精英，2013 年度’. (Honoured Microsoft Student Partner in 2013)

**E**: Whoa you didn’t write it in your résumé.

**Me**: Yeah. They sent me the certificate recently.

## 6 Mathematical analysis

**E**: You said you like mathematical analysis. Why?

**Me**: It makes the base, the base, yes, the base of physics. We need mathematical analysis to describe physics things.

## 7 Grades

**E**: I see your grades have rises and falls in your résumé. Do you…?

**Me**: Sometimes I have ‘distractions’… like competitions/contests and… when I go back to school, I can do it.

**E**: So you can do it well except for the distractions?

**Me**: Yes.

## 8 Quick sort algorithm

**E**: Do you know quick sort? Explain the method behind it. I don’t need the code.

**Me**: It’s divide and conquer. Put all elements less than a certain one, let’s call it the pivot, together, and all elements larger than the pivot together and do it recursively. Then it gets sorted.

**E**: Yes. Do you know heap sort?

**Me**: Yes.

**E**: Which is faster/better?

**Me**: Heap sort is stable. On average, quick sort is faster. (Note: Here we should have used ‘less data-sensitive’ rather than ‘more stable’.)

**E**: Is it?

**Me**: Ye…s? At least with random optimization.

**E**: Do you know the complexity?

**Me**: Yes. Both $n\log n$.

**E**: Then why is quick sort faster?

**Me**: The constant.

**E**: Yes, the constant.

## 9 Biggest prize ever

**E**: What’s the biggest prize you’ve won in the competitions? In Informatics?

**Me**: 2nd prize of NOI.

**E**: NOIp?

**Me**: No, NOI. National Olympiad in Informatics. And CCC and other minor prizes.

## 10 Experience of competitions

**E**: What’s your experience of the competitions? What’s good in it? And what’s bad?

**Me**: I’ve learnt a lot of algorithms and thoughts behind them. That’s the good one. The bad one is that I gained many bad habits of coding through it.

**E**: Like what?

**Me**: Like, all the variables are `a`

, `b`

, `c`

, `d`

, `e`

, `f`

, `g`

…

(Laughs)

## 11 Primes

**E**: Do you know how to prove there is infinite number of primes?

**Me**: Yes. I’ve seen a lot of proofs.

**E**: (Laughs) Just tell me one.

**Me**: It’s done by… by Euclid, using… 反证法. (Note: I was too nervous to recall how to say that in English!)

**E**: Contradiction. Just state the proof.

**Me**: Assume there are only finite number of primes. Let’s multiply them and plus one. This number is coprime to all primes.

**E**: (Smiles) Ah, yes.

## 12 Linear algebra

**A**: You said you like linear algebra. When you multiply two matrices, you have the rule, like… whatever the rule. What’s the physical background behind it? I mean, the rule is the rule, but what’s the physical meaning?

**Me**: I have to speak Chinese here. 就是映射的复合嘛. Oh, yes. It’s the combination of two transformations, or two maps. It produces the third transformation.

**A**: Yes. And you can talk in English!

**Me**: Yep. Just couldn’t get the expression in English.

**B**: (to A) Did he get the right answer?

**A**: (to B) Yes he’s right. (to me) But you probably replace *combination* with *composition*.

**Me**: Ah, yes. It’s composition.

## 13 Estimate $100!$

**E**: Can you estimate how many digits 100 factorial has? Do you know factorial?

**Me**: Yes. 阶乘.

**E**: Right.

**Me**: Here we need a bit of integration. We need to estimate $\log1+\log2+\cdots+\log{100}$. Or just use the… the… I-can’t-get-his-name formula.

**E**: Is it the Stirling’s formula?

**Me**: Yes. It gets the correct number of digits when… $n\geq2$. I’ve tried this before.

**E**: Okay. But I just want an estimation. With calculators I can do this easily. But now, you’ve got no calculators.

**Me**: Well. (starts calculating, estimating $\log1+\cdots+\log{100}$, forgetting to divide by $\log{10}$) It’s about 400. (Note: I should have thought twice! How can the product of 100 numbers of 2 digits be a 400-digit number?!)

**E**: Okay.

## 14 Career

**E**: What’s your career? What do you want to do in the future?

**Me**: I’d like to do pure academic research… Yes, academic researches.

**E**: Why do you want to join us?

**Me**: In emmm… 交叉信息学院 I can start from the basics, the fundamental level. Only with these fundamental things, I can go deeper and deeper in academic researches.

**E**: It’s Yao class. 😊

## 15 Longest code

**E**: Longest code you’ve written?

**Me**: Read?

**E**: WRITTEN!

**Me**: I think it’s an app in Windows Store. A client app of a video sharing website, namely bilibili, which allows commenting on the video.

## 16 Lync

**E**: Do you know Lync?

**Me**: Yes.

**E**: It’s a part of Visual Studio.

**Me**: Nope. I think it’s a part of Microsoft Office 365. (Whoa I was so native because I was pronouncing it three-sixty-five)

(Note: I later guessed that he said ‘linker’ or ‘link’ and maybe wanted to test my knowledge on compilers.)

**E**: Oh? Maybe we can keep the difference… (the alarm rang)

**Me**: Is time up?

**E**: Yes.

**Me**: Should I take this scratch paper away? Because it’s used.

**E**: No, you don’t have to take it.

**Me**: Okay. Goodbye!

…

After the interview. Interviewers told the moderator: we need a longer rest.

(Note: Later, it is confirmed that this ‘moderator’ is actually the Student Affair Officer of IIIS.)

Please enable JavaScript to view the comments powered by Disqus.