2009-01-07

第一次工作面試 (Mr. Q)

用一個漢字形容:挫。

第一次的工作面試經驗壤我受到打擊,因為自己的表現實在不佳,面試過程中被問倒。面試過程才知道社群名人 jserv 也在這家公司,在面試前竟沒想到之前 c9s 收到 jserv 給的面試機會就是這家公司。我客觀的認為,這家公司的水準在中上或上級。所以我不能因為這次的經驗就打擊甚大,要更振作!以下就盡我所能描述可以出現的面試過程。


6 Jan 13:50
進去 Si-Soft 大樓 3F,call Shawn Lin。Shawn 是 AndesTech 第一個和我接觸的人,他在 104 HR Bank 看到我的 resume 後 mail 給我,給我一個面試的機會。Shawn 先帶我進一個約四坪大的小 office,兩張桌子,和隔壁的 Manager (?) 類似擺放。Shawn 給我一張雙面的 A4 資料 form 填寫 basic info。填了 15 mins 時門打開了,有一位頭髮些許白色看似 40 yrs 的先生走進來,暫且稱他 Mr. Q,我有氣無力地跟他說聲好。

五分鐘後他遞給我一張空白 A4 的紙張,上面寫了兩行英文,要我造句:

Not only... but
Abundant a malice

第一句我造的很虛;Not only expensive but tiny space. Mr. Q 用了很疑惑和不滿意的眼神和口氣回應我的句子。接著我說看不懂第二行的單字,老老實實地跟 Mr. Q 說。他更是用強烈懷疑和不滿意的疑問聲音回應我,之後點頭示意 ok, next。接著問我擅長的語言 C/C++,問了大概七個問題。

Q1: How to convert that OO method and template to C.
ans: OO method could be presented as function pointer in C. But, the template is ... hmm, i am not sure whether it could be achieved or not, i've no ideas about it.


Q2: Explain volatile in C++.
ans: It tells compiler that the variable which declared with volatile, should be free after whole function call exits.


Q3:
struct
{
int a;
long b;
short c;
} X;
sizeof (X) = ?
ans: 1 + 4 + 2 = 7 bytes
Q: Don't you consider about the alignment?
ans: I've no ideas about alignment...


Q4: Plz implement a reverse function out with char* type parameter.
ans:
void
reverse (char* str)
{
char *result;
result = (char*) malloc (sizeof (char) * 100);
strcpy (result, "");
int i;
for (i = strlen(str); i >= 0; --i)
{
strcat (result[strlen() - i], str[i]);
}
printf ("result: %s\n", *result);
}
Q: There are many problems over you codes.
ans: I did a fixed size, it's result variable.
Q: Yes, and it allocates a space, wastes too much time request to os.
ans: Hmm?? I've no ideas to enhance.


Q5: Explain these statements,
int a[10];
int *a[10];
int (*a)[10];
ans:
1. Ten units of int type.
2. Ten units of pointer that point to int.
3. Hmm... ten units of int type that point to a.


Q6: Explain what difference between "Call by address" and "Call by reference".
ans: Passing the variable address to somewhere, getting the variable content refer to the address. It's "call by address". Passing the variable to somewhere, getting the address refer to variable's content. It's "call by reference". (I know it's wrong that "call by reference".)


Q7: Show code that link-list has double nodes, wiht typedef.
ans:
struct
{
void* a;
void *b;
} X;

typedef X link;
Q: "void*" has a problem, without the cast.
ans: Hmm... (I don't understand what you are talking about) But, "void*" can accept anything.
Q: Yes, but it is really has problems over it.


Q: 我的時間快到了。你有問題想要問嗎?
ans: Hmm... Hmm... 我看到網頁上的 os 好像是跟美國的 Mentor... what 合作。
Q: 那是 XXOO XXOO (blah 好多,我整個呆著聽)
ans: 這些 OS 都有 follow POSIX 嗎?
Q: POSIX 不夠 efficient.
ans: oh...
Q: 好吧,我時間到了,要離開了。
ans: 謝謝你,謝謝。

4 則留言:

jserv 提到...

很顯然還有進步空間,不過這表示你可以追尋前輩們的步伐,持續前進,如果願意選擇工程生涯的話 :-)

快速瀏覽過 Q & A,看來是很好的起點,這裡比較在意系統層面的認知與解決問題的能力,可能是您比較不善言表,慢慢來。

預祝職場生涯順心如意。

Alan Lu (盧利雄) 提到...

感謝 jserv 的關心。我能去 貴公司面試可能是 jserv 給的機會,真的很感謝。

經過這次的面試讓我清楚地知道目前的能力,及設定目標的高低。我會繼續保持努力,好好地加油!

再次謝謝 jserv 的關心。:-)

Arrakeen 提到...

dear jserv,
這麼說來,我的應徵沒有回音,我以為是我 resume 太弱... 還是 mail 被當成 spam 了?

jserv 提到...

@c9s,

大概是時候未到吧? :-)