面試程式人,最需關注學習能力

看板Soft_Job作者 (小妹)時間14年前 (2009/12/14 17:33), 編輯推噓20(20010)
留言30則, 23人參與, 最新討論串1/1
文/王建興 (清華資工所博士班研究生) 2009-12-10 軟體人才如何尋 第2回許多主管會將對特定語言及領域知識的熟悉度,擺在用人的最優先考量,但那其實是比較容易解決的 對於履歷的來源,我想要補充一點,如果可以的話,盡量運用人際網絡將徵才的訊息透露出去。依據經驗,透過人際網絡所找到的對象,通常會比由人力銀行之類的管道來得精準。這些對象可能更符合你的需求,而且比較能確保品質。 測驗的效果有限,直接面談可以發掘更多 挑出適合的可能人選之後,接下來,雙方敲定時間後,便可以安排面談。有些公司針對面談會安排滿長的時間和內容,例如包括一些基本資料的填寫、智力測驗、心理測驗、外語測驗(通常是英文),最後才是面談。 規模小一點的公司,可能就沒有這麼複雜的安排。之所以會有像智力測驗和心理測驗之類的測驗,當然是依據人力資源的專業而設計出來的,目的當然是希望可以確保應徵者的智力達到一定水平,而在心理的傾向上也符合你希望徵才的類型。 不過,以我的觀點,這兩類的測驗對軟體公司而言,可能不是絕對必要的項目。因為以智力而言,從專業技能來考驗應徵者,倘若能夠過關,那麼相信應徵者的智力應該不會太低。而心理傾向是一件複雜的議題,從簡單的測驗中能做出的觀察和推斷可能也有限,其效果或許還不如從面談中所發掘出來的應徵者人格特質。 演算法或資料結構等考試,實質意義不大 那麼需不需要專業技能的考試呢?例如請應徵者當場解答一些演算法或資料結構的問題,或者當場請他寫下解決你所指定問題的程式碼。的確有一些公司會這麼做,但我覺得聽起來好像很嚴謹,但實質意義不大。 原因在於,像演算法或資料結構這樣子的測試,比較偏向於在學校的課堂中就會接觸到的東西,你應該從他的學歷就能夠推斷他是否具備這方面的能力,即使他忘了,他也應該查了書本或甚至網路上的資訊就能回憶起來,能不能即時在面試前的測驗中完成,應該不是太重要的事情。 就在寫下此文的同時,我問了坐在我旁邊的某英雄級程式人,某個資料結構進行某個操作時的時間複雜度是多少,他張大的嘴巴答說:「我忘了耶…要重新再回憶一下才行」。這位英雄,人既聰明、學生時期的研究也做得好,程式也寫得很快,但如果你在面試考題裡出了這一題,很有可能就把他給刷掉,而損失掉一名戰將。 選人的條件很多,終究要有所取捨 面談前的測驗、面談本身究竟應該扮演什麼角色,以及從什麼角度切入來和面談者互動,話說回來,終究還是跟你想尋找什麼樣類型的程式設計人員有關。 在此之前,其實我們沒有談到設定用人的對象。但總要決定你要找什麼樣子的人,才知道應該如何跟他談。所以在討論面談的過程之前,先讓我們來看看你可能會怎麼決定你的目標對象,以便決定該如何進行面談。 在考慮招攬新的人手進來加入團隊時,你必須先設定好目標對象,你可能會考慮到以下幾個因子:(1)對特定語言的熟悉程度(2)對特定領域知識的熟悉程度(3)學習新事物的能力(4)獨立解決問題的能力(5)溝通協調的能力(6)對軟體工程的熟悉程度(7)電腦科學背景知識的熟悉程度(8)對軟體開發、程式設計的熱情(9)有多聰明。 你可能會同時列下很多重要的因子,但是完美的事物終究是不存在於這個世間的,完美的人才也未必會投履歷到你這兒來,所以在不可能滿足所有條件的情況下,必須有所取捨。 與其寄望新人什麼都懂,不如著重對方是否具備快速上手的能力 許多用人單位主管,換句話說,也就是開發團隊的管理者,會將(1)對特定語言的熟悉程度和(2)對特定領域知識的熟悉程度,擺在最優先考量的位置上。這並不是說不對,而是這兩件事情,有時候反而是比較容易解決的。 什麼意思呢?如果你的應徵者滿足其餘的條件,但是就是不熟悉你們正在開發的專案所用的語言,其實考慮錄取他,請他快速學好目前正在使用的語言,或許是一個比較好的選擇。 領域知識亦同,例如你們正在開發一個視訊解碼的程式碼,與其計畫找一個對此視訊解碼相關知識已經十分熟悉的人,或許找到一個其他方面都夠水準,可以很快學會該視訊解碼知識的程式人,還會來得比較快。 最近我們找了一位學校剛畢業的新人加入我們的團隊,他完全不會Java,也沒有Web程式設計的經驗,不過我們還是順利讓他在報到的一週內開始上工,開始撰寫Java-based的Web應用程式。 我們的目標並不是要找一個十分熟悉Java程式語言的人,而是在一開始便能夠快速適應,然後投入開發的人。 這樣子的例子說明了,其實並沒有必要在語言是否熟悉上,做太多的限制和考量。你只需要考慮,他能不能很快上手。 這也就是上述列出的各種考量因子裡會有「學習新事物的能力」這一項的原因。說實話,一個開發團隊想要招攬新人手,無論如何,找進來的人,總是會有各種可能不熟悉的事物。 想要找一個一進來就每件事情都懂的新人,應該是非常的困難,所以,「學習新事物的能力」就很重要。與其寄望他一進來就什麼都懂,不如期望他即使不會,也能很快學會。 而且,更重要的是,軟體開發本來就是一個多變的行業,即使一個人熟悉你們現在做的東西,或許到了明年,你們要開發的東西不同了,要用到的技術也不同了,甚至是全新的技術時,是否具備「學習新事物的能力」就很重要。 了解電腦科學的基本原理,跟上新的技術不會太困難 對軟體開發而言,具備「學習新事物的能力」,代表可以在短時間內了解一項新事物,例如新程式語言、新的開發平臺、新的觀念、新的技術等等,同時可以很快地掌握到核心精神,並且加以運用在實際的開發中。 我不知道「學習新事物的能力」是否可以系統性地訓練,但無庸置疑的,擁有這樣子的程式人在你的團隊中,是一件很棒的事情。 而「電腦科學背景知識的熟悉程度」代表著他受過基本的、廣泛的電腦科學的訓練,他對諸如演算法、資料結構、程式語言、作業系統、電腦網路、編譯器、資料庫之類的學科有一定的了解。 這並不是說他必須仍然牢記課堂上所學的東西,而是他必須對該學科有個大體上觀念的認識,例如現代作業系統分時多工的排程,以及多程序、多執行緒並行執行時的同步問題以及解決機制。 這些電腦科學的基礎訓練除了有助於他在解決問題時,不會做出太偏差的判斷(例如,不知道一個臭蟲可能源自於競速條件,所以才會偶爾發生,難以重複複製),同時也有助於他學習新的事物。 因為,電腦科學的理論大體上變動十分緩慢,卻是構成各種具體技術的根本,我們可以說即使有新的技術問世,幾乎也是萬變不離其宗。了解電腦科學的基本原理,要跟上任何新的技術或發展,就不會太困難。這是我之所以認為「電腦科學背景知識的熟悉程度」必須納入考量的原因之一。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.175.47.74

12/14 17:37, , 1F
一個博班的學生share如何面試新人 科科
12/14 17:37, 1F

12/14 17:48, , 2F
學術界跟業界有很大的差別吧 很多教授都不屑寫程式...
12/14 17:48, 2F

12/14 17:49, , 3F
一樓大概不知道他是誰吧? 科科
12/14 17:49, 3F

12/14 17:53, , 4F
Thinking in Jave中文作者之一 XD?
12/14 17:53, 4F

12/14 17:57, , 5F
高手...推
12/14 17:57, 5F

12/14 17:59, , 6F
so what ? Thinking in Jave 的中文翻譯讓我看到吐血
12/14 17:59, 6F

12/14 18:01, , 7F
科大老人最喜歡做翻譯這種事了
12/14 18:01, 7F

12/14 18:28, , 8F
書寫得好也不一定懂得面試啦, 學習新東西的能力固然重要
12/14 18:28, 8F

12/14 18:28, , 9F
但是即戰力還是很重要的因素, 只要企業出得起, 為什麼不找更
12/14 18:28, 9F

12/14 18:28, , 10F
好用的呢?
12/14 18:28, 10F

12/14 18:30, , 11F
以弟對 qing 的瞭解, 他的經驗是來自於實務環境的。
12/14 18:30, 11F

12/14 20:59, , 12F
作者的學長在博班就開了公司,職稱:副總.(上次網路泡沫前).
12/14 20:59, 12F

12/14 22:23, , 13F
文章內容說得很不錯啊..面試問那些查得到的東西沒啥意義
12/14 22:23, 13F

12/14 22:28, , 14F
酸的人好多。qing很務實OK?
12/14 22:28, 14F

12/15 00:09, , 15F
軟體人員面試教戰守則 BY JOEL 就說過類似的
12/15 00:09, 15F

12/15 00:10, , 16F
他只是重講一次而已 了無新意
12/15 00:10, 16F

12/15 00:21, , 17F
這不是ITHOME的文章嗎? 還蠻有道理的啊,不要因為他是秃頭
12/15 00:21, 17F

12/15 00:21, , 18F
就酸他好嗎? XD
12/15 00:21, 18F

12/15 00:22, , 19F
另外,博班有蠻多早在業界N年了...土博士又不好畢業
12/15 00:22, 19F

12/15 00:37, , 20F
登山社社長笑一個博班的學生share如何面試新人 科科
12/15 00:37, 20F

12/15 01:01, , 21F
在JavaTwo聽過他的課~ 推一個~
12/15 01:01, 21F

12/15 01:08, , 22F
推樓樓上
12/15 01:08, 22F

12/15 21:49, , 23F
字太多看不下去,能不能直接告訴我要考什麼就好了
12/15 21:49, 23F

12/15 23:02, , 24F
中肯. 有CS sense很重要.
12/15 23:02, 24F

12/16 00:47, , 25F
1F不懂裝懂...
12/16 00:47, 25F

12/16 20:05, , 26F
大部份同意, 對一個禮拜上工的例子不太認同. 跟 Joel 說法很
12/16 20:05, 26F

12/16 20:05, , 27F
接近的文章.
12/16 20:05, 27F

12/16 22:37, , 28F
怎麼他還在唸博士班啊...
12/16 22:37, 28F

12/17 15:31, , 29F
胡說八道 = = 明明每家都在考 algo..
12/17 15:31, 29F

12/18 18:12, , 30F
http://0rz.tw/d9sks Joel的文章 抱歉我覺得不像
12/18 18:12, 30F
文章代碼(AID): #1B9WPXXT (Soft_Job)