2009-04-11 85 views
4

我是一個相當初級的程序員,他的任務是面向一位經驗豐富的大型機COBOL程序員,爲Windows Mobile開發C++開發職位。我的意思是說,候選人的整個編程生涯都是COBOL。從COBOL轉換到C++

我不偏向任何特定的語言,只是略微擔心我的能力做一個徹底的訪談。

採訪內部我如何在沒有COBOL經驗的情況下對受訪者的能力有一個良好的感受?

有什麼具體的事情我應該問或尋找?

我已經閱讀了很多關於SO的一般性訪談內容,考慮到候選人背景的性質,我會尋找哪些具體的事情會有幫助。

回答

5

最好的事情是,給他一個任務,類似於他在你的公司所要做的。 告訴他他可以使用僞代碼(因此不需要互聯網)。另外,Cobol人的主要問題是掌握OO(因爲Cobol主要是程序性的......我知道新的OO版本)。

還有一個陷阱Cobol的人都被抓了範圍的概念,作爲傳統的Cobol每個變量現場從開始到應用,他是在底部。

1

找出被訪者對於C++來說有多好,是不是更重要?如果這就是他應該做的事情?

+0

由於C++已經非常複雜,除了C++之外,該候選人可能是一位比他的能力更好的程序員。這個問題提出了一些方法來感受應試者的編程能力,而不是C++的經驗。 – SingleNegationElimination 2009-04-11 03:00:10

+0

是的,但要確定他是否能夠有效地工作在C++項目上,我會讓他開始學習C++,稍後再回來並檢查他(或她)的進度。 – lothar 2009-04-11 03:13:21

5

如果這個人是一個優秀的程序員可言,他/她有與其他語言的經驗。 (說起以COBOL開始的老屁,甚至RPG/II更糟)。即使這個人從來沒有和其他人一起工作過。

這裏有一些事情你可能會問:

  • 「你是怎麼開始使用電腦?」
  • 「你有任何編程的樂趣嗎?」
  • 「你爲什麼要轉向C++環境?」 (這是一個特別好的問題,因爲好的COBOL程序員現在實際上很難找到,我敢打賭這個人想學點新東西。)
  • 「你有沒有做過任何彙編語言編程? (如果他們對機器很熟悉,他們會很快把C/C++帶到C/C++中。)
  • 「你能描述一下'面向對象編程'是什麼意思嗎? (關鍵字:查找關於「對象」是什麼,「繼承」和「多態性」的描述。如果解決方案不成問題,詢問他們何時使用繼承vs聚合,即「是」關係vs「有」關係)。
  • 「你家裏有Windows電腦或者你有真正的電腦?」

如果他們聲稱任何C++知識,一套真正好的篩選的問題是:

  • 「是什麼聲明和在C 定義之間的區別?「
  • ‘什麼是間‘私人’,‘保護’和‘公開’聲明的差異,一類?’
  • ‘什麼是‘朋友’?’(額外的信用,如果他們知道該說,」在C++只有你的朋友可以訪問你的私處。「)
  • ‘什麼是虛成員函數?’
  • ‘什麼是‘虛擬繼承’?’
2

確保他們知道並理解結構/類,類型,多態性,模板,函數和最重要的指針 確保他們理解語法。嘿聲明一個指向一個無效函數,它接受兩個整數參數,例如?他們將如何解決最令人頭疼的解析? 初始化列表如何優化代碼?他們是否熟悉標準模板庫? 他們能手工編寫一個原始鏈表或矢量數組嗎? 這些東西是你想要的程序員能夠編寫高效和乾淨的代碼。