摘要:最近要招一名中高級程序員有位同學(xué)的面試表現(xiàn)我們幾位面試官都覺得不錯思維很活躍知識面也還挺廣尤其是主動提及最近還在研究這個高性能框架并說出了基本實(shí)現(xiàn)原理表現(xiàn)出喜歡鉆研技術(shù)的態(tài)度唯一的缺點(diǎn)就是邏輯思維不太縝密工作經(jīng)驗(yàn)只有年多但我們都覺得稍加培養(yǎng)
最近要招一名中高級程序員, 有位同學(xué)的面試表現(xiàn)我們幾位面試官都覺得不錯: 思維很活躍, 知識面也還挺廣, 尤其是主動提及最近還在研究Disruptor這個高性能框架, 并說出了基本實(shí)現(xiàn)原理, 表現(xiàn)出喜歡鉆研技術(shù)的態(tài)度. 唯一的缺點(diǎn)就是邏輯思維不太縝密, 工作經(jīng)驗(yàn)只有3年多. 但我們都覺得稍加培養(yǎng)他就能快速上手工作, 于是就把他招了過來. 畢竟目前我手頭的項(xiàng)目,都是業(yè)務(wù)驅(qū)動型的互聯(lián)網(wǎng)系統(tǒng)--業(yè)務(wù)不太復(fù)雜, 技術(shù)難度也不算太高.
誰知該同學(xué)在試用期的表現(xiàn)讓我們大跌眼鏡: 他跟同事溝通沒有任何問題, 能清楚的表達(dá)自己的想法, 也能理解簡單的業(yè)務(wù)需求, 但就是無法根據(jù)簡單的需求做出對應(yīng)的技術(shù)設(shè)計(jì), 同樣也不能根據(jù)技術(shù)設(shè)計(jì)做出代碼實(shí)現(xiàn), 開發(fā)速度比同等級程序員慢幾倍不說, 寫出的代碼也是bug百出. 無奈之下, 只能讓其試用期過完后離職.
之后我開始反思這次招人經(jīng)歷, 暴露了我們面試中存在的兩個問題:
缺少全面考察程序員動手能力的筆試過程.
低估了邏輯思維嚴(yán)密的重要性.
對于程序員來說, 能將需求轉(zhuǎn)化為代碼實(shí)現(xiàn)的能力和寫出健壯程序的能力恰恰是最基礎(chǔ)的能力. 而我們面試時, 過多的考察了表達(dá)溝通能力和知識廣度深度, 卻缺失了對程序員最基本能力的考量. 結(jié)果招來了"眼高手低"的程序員.
那如何面試才能篩選出實(shí)戰(zhàn)能力強(qiáng)的程序員呢?
我覺得除了基本的面試(項(xiàng)目經(jīng)歷的考察)之外, 還需要設(shè)計(jì)一些偏實(shí)戰(zhàn)性的筆試題來測試程序員的能力.
以下是我為此設(shè)計(jì)的筆試題目之一:
題目1現(xiàn)有遺留系統(tǒng)S1, 其關(guān)系數(shù)據(jù)庫D1有一張表Table T1 , T1用戶數(shù)據(jù)樣例如下:
用戶ID | 積分 | 修改日期 |
---|---|---|
1 | 20 | 2016-12-23 10:55:33 |
2 | 49 | 2015-09-12 11:11:23 |
3 | 60 | 2016-10-22 23:55:55 |
S1的主要業(yè)務(wù)為查詢,修改和插入用戶數(shù)據(jù).
S1在線上運(yùn)行, 目前T1每天大約會插入20萬條數(shù)據(jù), T1當(dāng)前數(shù)據(jù)總量為5千萬, 插入速度較慢.
由于業(yè)務(wù)發(fā)展需要, 需要開發(fā)新系統(tǒng)S2, 用來替換遺留系統(tǒng)S1.
S1的用戶數(shù)據(jù)T1需要全部遷入到S2的數(shù)據(jù)庫D2中, 并添加新的業(yè)務(wù)字段"用戶等級","狀態(tài)".
D2中用戶數(shù)據(jù)樣例如下:
用戶ID | 用戶等級 | 積分 | 修改日期 | 狀態(tài) |
---|---|---|---|---|
1 | 1 | 20 | 2016-12-23 10:55:33 | 1 |
2 | 1 | 49 | 2015-09-12 11:11:23 | 0 |
3 | 2 | 60 | 2016-10-22 23:55:55 | 1 |
其中"用戶等級","狀態(tài)"可通過以下邏輯確定:
用戶等級1: 積分<50
用戶等級2: 積分<100
用戶等級3: 積分>=100
狀態(tài)1: 修改日期 >= 2016-10-00 00:00:00
狀態(tài)0: 修改日期 < 2016-10-00 00:00:00
問題1: 為了應(yīng)對數(shù)據(jù)的增長速度, 減少業(yè)務(wù)響應(yīng)時間, 請?jiān)O(shè)計(jì)新系統(tǒng)S2的數(shù)據(jù)庫D2, 并給出具體實(shí)現(xiàn)過程.
問題2: 假設(shè)S2已開發(fā)測試完畢, 請結(jié)合電商系統(tǒng)的日流量分布情況, 給出系統(tǒng)S2上線替換系統(tǒng)S1的方案, 列出詳細(xì)實(shí)施步驟.
問題3: 假設(shè)S2的數(shù)據(jù)庫D2為Mysql, D2采用針對問題1調(diào)整后的表結(jié)構(gòu)保存用戶數(shù)據(jù). 請寫出遷移程序, 保證在1個小時以內(nèi)完成數(shù)據(jù)的遷移(所有用戶字段都需要填充完).
這個筆試題比較偏實(shí)戰(zhàn)性, 給定了一個特定的場景, 和需要解決的3個問題.
問題雖然簡單, 但依然能暴露出不少面試者在思維和動手能力上的問題, 比如:
對問題1來說, 有些人能提出mysql分表, 但無法給出分表實(shí)施細(xì)節(jié). 有人能給出mongodb自動分片方案, 但不了解如何實(shí)施自動分片.
對問題2來說, 不少人沒有考慮到遷移時的數(shù)據(jù)完整性問題.
對問題3來說, 這是需要手寫代碼的問題, 很多動手能力差的程序員都沒能寫好并發(fā)處理的線程調(diào)度邏輯, 同樣經(jīng)驗(yàn)欠缺和邏輯思維不嚴(yán)密的程序員很多都沒意識到mysql分頁大偏移量帶來的性能問題.
那如何評判答案呢?
如果面試者不能給出基本的解決方案, 直接pass.
如果面試者能給出基本解決方案, 但需要在面試官的指導(dǎo)下才能意識到自己方案的不足. 對于5年以上的程序員直接pass. 對于5年以下程序員, 如果他能在指導(dǎo)下給出方案的改進(jìn)措施, 并能寫出步驟, 則可以酌情考慮.
如果面試者能給出基本解決方案, 能主動發(fā)現(xiàn)方案中的不足, 指出需要改進(jìn)的點(diǎn), 并能寫出改進(jìn)措施的詳細(xì)步驟. 說明該程序員的邏輯思維和動手能力都非常不錯. 是很好的備選人員.
如果面試者能直接給出優(yōu)化后的方案, 甚至給出不止一種解決方案, 同時能將細(xì)節(jié)用筆寫出來. 則說明他是一名非常有經(jīng)驗(yàn)和動手能力較強(qiáng)的程序員, 是不錯的人選.
總之, 對于中高級程序員職位的面試, 用于衡量動手能力的筆試環(huán)節(jié)仍是不可或缺的一個環(huán)節(jié).
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69861.html
摘要:在線簡歷生成工具,可以導(dǎo)出。技巧目前寫簡歷的方式有兩種普遍被認(rèn)可,一種是一種是。培養(yǎng)新人和帶團(tuán)隊(duì)其他項(xiàng)目項(xiàng)目該項(xiàng)目是,使用技術(shù),完成功能。閱讀原文點(diǎn)擊查看簡歷模板。 工欲善其事必先利其器,這是自古以來的道理,所以如果想找到一份好的工作,一定要先整理一份好的簡歷。 模板 寫簡歷首先要有一個好的模板,我們做技術(shù)的不同于 UX,UED,我們不需要那么花哨,但是也需要整潔干凈。好的模板能讓你的...
摘要:三年百度,五年阿里,阿里架構(gòu)師淺談我是如何順利進(jìn)入前些天在我群里認(rèn)識了以為挺有意思的老哥,他也是工作年多技術(shù)和面試都不差,最近也是在找工作,是從京城來魔都的,也和他撈了不少。 說來慚愧,也不怕你們笑話。做開發(fā)8年多,到目前還是一名不折不扣的掃地僧。年前的辭職,到現(xiàn)在還在家靜養(yǎng)中。其實(shí)也沒什么,就是回家總結(jié)一下自己這些年來在外工作與面試等做一個簡單的總結(jié)與反思。做一下自己后面一個人生規(guī)劃...
摘要:網(wǎng)易跨境電商考拉海購在線筆試現(xiàn)場技術(shù)面面。如何看待校招面試招聘,對公司而言,是尋找勞動力對員工而言,是尋找未來的同事。 如何準(zhǔn)備校招技術(shù)面試 標(biāo)簽 : 面試 [TOC] 2017 年互聯(lián)網(wǎng)校招已近尾聲,作為一個非 CS 專業(yè)的應(yīng)屆生,零 ACM 經(jīng)驗(yàn)、零期刊論文發(fā)表,我通過自己的努力和準(zhǔn)備,從找實(shí)習(xí)到校招一路運(yùn)氣不錯,面試全部通過,謹(jǐn)以此文記錄我的校招感悟。 寫在前面 寫作動機(jī) ...
閱讀 2832·2021-11-22 15:11
閱讀 3555·2021-09-28 09:43
閱讀 2898·2019-08-30 13:05
閱讀 3442·2019-08-30 11:18
閱讀 1455·2019-08-29 16:34
閱讀 1313·2019-08-29 13:53
閱讀 2919·2019-08-29 11:03
閱讀 1669·2019-08-29 10:57