[心得] 一個程式設計師該會幾種語言
一個程式設計師該會幾種語言?
一般的面試分成三段:第一段聊resume,第二段考技術,第三段閒聊
閒聊其實是我認為最重要的部份,因為閒聊的時候人最容易展現真實的一面
因為面試時間通常只有短短的45分鐘,一個準備充份的面試者
很容易在resume或是技術的部份"作弊",所以第三段就變成很重要…
這是其中一個我最喜歡在面試別人時候問的問題(第三段)。
我也特別喜歡留20分鐘給第三段。
我知道標準答案是"看情況"或是"不一定"
但我想分享一下我的答案,以及為什麼這是一個很好的問題
首先,在看下去之前,我會請你想想你會怎麼回答…
(我說真的,想想看)
十之八九,我聽到的答案是"不一定"
我會要求對方,沒關係,總是給我一個數字再說...,然後再要求對方解釋
如果對方堅持不給數字,或是說"看情況",
這都不重要,我會開始把問題慢慢導到
「就你自己而言,你覺得你應該要會幾種語言,是那些?你又會了幾種?
到那種程度?為什麼?」
我先承認,我自己的答案也不一定是最好,但是要能回答這個問題
人必須先省思,自己到底把自己定位在那裡
先聊聊三種我傾向會拒掉的情況,不管前面他表現的多好
1)回答只需要一種:通常理由是,我會java,什麼我都能寫得出來
與其什麼都不精通,不如像我專攻一樣,然後達到最高境界
我先解釋為什麼這個不好,首先,某些程度上,這沒有錯
如果我確實是想找一個資料庫的專家,你專攻sql,我只是請你來改寫我們的script
那沒有問題,只是這種時候,我需要的是顧問,只想解決單一問題
當然,也許有例外,也許公司找你是來當javascript工程師,本來就定位非常清楚
但我這裡比較談是,不是這種特例…
十之八九,說只需要一種的,要不只會一種,要不對於其它新東西/新技術
永遠都保持著"不需要""不必要"也"不想要"的態度
當然,少數的人能言之成理,說服我他的答案
這就另當別論,如果你能在不強辭奪理的情況下說服我,我也能接受,
不過機率真的很低…
2)回答愈多愈好,然後告訴我他一直在學習bla bla bla
這就不用多說了,我會直接再補一題技術問題(不要是考古題)
十之八九就會發現這傢伙根本沒有經驗
當然,也許找pm或是找tech sales是特例,或是特定角色只要你懂個皮毛就行
但通常我要找的程式設計師,也不會是這種特例
3)打死不回答,跟我打太極,把這個問題當成mba的作文題
至於其它的答案,一邊追問下去,通常可以對這個人的背景及野心有一個初步的概念
我曾經被問過這個問題,下面是我的回答(當然中間改了很多次)
我想一個好的面試官,要幫住面試著探討他自己的定位
最少要會C++/Java/C#/VB.Net或隨便一個這一類的物件導向語言
這裡所謂的會,最少大概可以想成不看考古題勉強考過認證的程度
也就是說,常用的library要熟,大型專案裡面,分工作給你,你接的起來
這裡比較擔心的是,如果公司都是用java,你的專長在c#
轉換會需要時間,但下個工夫,一個月可以上手
對於一個合格的資工畢業生,或是有一些工作經驗的人,這不會是大問題
至少也要perl或python或類似的scripting langugae
很多日常工作,上述的scripting language可以一分鐘作到十分鐘的事
沒有理由不需要會這些語言
至少要摸過tcsh/bash/zsh/...任何一類的shell script
不需要很懂,但不會這些os level的script很多問題
當然,如果你是前端工程師,也許你的答案會變成javascript/css/html
但我這裡聊的是比較後端/RD部份的軟體工程師
其實重點不是什麼語言,而是為什麼你需要會這個語言
我自己的答案是至少要會這些(7),然後最多精通1~2個
- Java
- Python
- bash
- awk
- sql
- pig
- scala + scoobi
當然,我有我的道理,而描述"為什麼",或是"怎麼會"的過程(經驗)
我就解釋了我是一個什麼樣專長的人(我的過去/未來)
例如,SQL,因為在學校是database group,當助教也教sql,自然就熟悉
也因為工作過,很多小project都是用LAMP,自然mysql是第一選擇
後二者代表我為大公司工作過,而且有map-reduce的background (或是打算往這發展)
其實,閒聊還可以看到很多有趣的問題
像是,一個人怎麼可能精通7種
人的時間有限,頂多二種,你精通的愈多,廣度愈夠,深度愈不夠
我自己的歸劃是
1~2種主要 (最近期/或是目前的工作需要)
舉例來說,如果你說java,例是你不能說出java 5, 6, 7的不同
那就很不合理,你自己平常每天工作要用,卻不follow最新/近的變革?
(有可能此人缺乏主動學習的動力)
2~3種次要 (沒在update,停留在上次/先前工作的狀態)
剩下的可以是 "有在碰",但是需要一邊google才有辦法完成任務
舉例來說,如果那個人答bash是有在碰,我也傾向推薦錄用他
我會馬上弄來一台電腦,請他十分鐘內寫出一個很簡單的題目
寫個處理 countline.sh *.txt 把一個資料夾裡面所有的文字檔(算幾行)
如果很快完成,請他再補上請算只包含數字開頭, "."結尾"的行號
這樣的考題順便又考了regular expression, wc -l 或 grep
怎麼解不重要,但是多花個十~二十分鐘檢查他宣稱的事實,是值得的
當然,如果不錄用,這個練習就不需要的
我自己interview和被interview的經驗,其實"超過預定"時間是錄取的正向訊號
對方其實根本就想用你,只是再進一步確定一下而已
當然,真正的情況視情況而定
舉例來說,我沒回答html,沒回答css,沒回答javascript,難道就沒碰過?
我假設的情況,他的回答,就告訴你,他想從事什麼想的工作
我這裡並不是想提供正確的答案,只是分享一下自己interview別人的方式
只是比問那種「你遇過最大的困難的問題是什麼?五個詞形容自己?」
我寧願選擇這種題目來問…
也歡迎大家分享自己怎麼快速判斷一個人的潛力:)
舉例來說,如果你聽到的是
- C / 打工用過
- lisp / 作業/修課 學
- R / 博士班 寫paper
- Matlab / 碩士班 老闆的計畫
- html/css/photoshop 自己興趣 (XD我真的聽過有人把photoshop當語言)
重點,其實你可以猜出或多或少這個人的背景,不是嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 216.113.168.141
※ 編輯: chucheng 來自: 216.113.168.141 (07/25 03:15)
→
07/25 04:16, , 1F
07/25 04:16, 1F
→
07/25 04:57, , 2F
07/25 04:57, 2F
→
07/25 04:57, , 3F
07/25 04:57, 3F
→
07/25 04:57, , 4F
07/25 04:57, 4F
→
07/25 04:58, , 5F
07/25 04:58, 5F
→
07/25 08:14, , 6F
07/25 08:14, 6F
→
07/25 09:33, , 7F
07/25 09:33, 7F
→
07/25 09:40, , 8F
07/25 09:40, 8F
→
07/25 09:46, , 9F
07/25 09:46, 9F
→
07/25 09:47, , 10F
07/25 09:47, 10F
→
07/25 10:07, , 11F
07/25 10:07, 11F
→
07/25 10:33, , 12F
07/25 10:33, 12F
→
07/25 10:34, , 13F
07/25 10:34, 13F
→
07/25 10:43, , 14F
07/25 10:43, 14F
→
07/25 10:44, , 15F
07/25 10:44, 15F
→
07/25 12:02, , 16F
07/25 12:02, 16F
→
07/25 12:02, , 17F
07/25 12:02, 17F
→
07/25 12:42, , 18F
07/25 12:42, 18F
→
07/25 12:43, , 19F
07/25 12:43, 19F
→
07/25 12:43, , 20F
07/25 12:43, 20F
→
07/25 12:44, , 21F
07/25 12:44, 21F
推
07/25 13:56, , 22F
07/25 13:56, 22F
推
07/25 14:14, , 23F
07/25 14:14, 23F
→
07/25 14:15, , 24F
07/25 14:15, 24F
→
07/25 14:16, , 25F
07/25 14:16, 25F
→
07/25 14:16, , 26F
07/25 14:16, 26F
推
07/25 17:09, , 27F
07/25 17:09, 27F
→
07/25 17:10, , 28F
07/25 17:10, 28F
→
07/25 18:04, , 29F
07/25 18:04, 29F
→
07/25 18:12, , 30F
07/25 18:12, 30F
→
07/25 18:12, , 31F
07/25 18:12, 31F
→
07/25 18:17, , 32F
07/25 18:17, 32F
→
07/25 21:50, , 33F
07/25 21:50, 33F
→
07/25 21:50, , 34F
07/25 21:50, 34F
→
07/25 21:51, , 35F
07/25 21:51, 35F
→
07/25 21:51, , 36F
07/25 21:51, 36F
→
07/25 21:52, , 37F
07/25 21:52, 37F
→
07/25 21:52, , 38F
07/25 21:52, 38F
→
07/25 21:52, , 39F
07/25 21:52, 39F
推
07/25 22:21, , 40F
07/25 22:21, 40F
推
07/25 22:43, , 41F
07/25 22:43, 41F
→
07/26 00:27, , 42F
07/26 00:27, 42F
→
07/26 02:45, , 43F
07/26 02:45, 43F
→
07/26 02:46, , 44F
07/26 02:46, 44F
→
07/26 11:18, , 45F
07/26 11:18, 45F
→
07/28 13:13, , 46F
07/28 13:13, 46F
→
07/28 13:14, , 47F
07/28 13:14, 47F
推
07/28 21:58, , 48F
07/28 21:58, 48F
推
07/28 22:09, , 49F
07/28 22:09, 49F
推
07/30 16:16, , 50F
07/30 16:16, 50F
→
07/30 16:17, , 51F
07/30 16:17, 51F
討論串 (同標題文章)