關於知識,經驗,能力

2022-03-20 15:38:53 字數 2188 閱讀 7428

老文章了,

**果殼--< 再談「我是怎麼招聘程式設計師的」>

翻閱舊日筆記,深有所感,我想這些不僅是應聘,更是每日應注意的

我以前寫過一篇「我是怎麼招聘程式設計師的」的文章(在csdn那裡有很多人進行了回覆)。今天,我想再談談關於招聘和面試這方面的東西,主要是以下這些原因:

所以,我很想把自己的這些新的想法再次寫下來的。還是和以前一樣,這篇文章同樣是獻給面試官的。我認為,面試的好壞完全在面試官而不是面試的人。下面是我對「我是怎麼招聘程式設計師的」一文中的一些加強性的觀點。(關於一些點評,請參看本文下篇)

為了讓我的文章有連續性,請允許我重申一下前文的幾個重要觀點。

操作,知識,經驗,能力

我們有很多的面試官似乎分不清,什麼是操作能力,什麼是知識,什麼是經驗,什麼是能力,這導致了我們的面試官經常錯誤地對面試者下結論,我認為分不清這些事的人是沒有資格做面試官的。所以,我有必要在這裡把這個問題先講清楚。

我不否認這四樣東西對於乙個優秀的程式設計師來說都很重要。但是,通過上述的分析,我們可以知道,能力和經驗和知識需要分開對待。當然,這些東西是相輔相成的,你的能力可以讓你獲得知識,你的知識可以讓你更有經驗,你的經驗又會改變你的想法和思路,從而改善你的能力。在面試中,我們需要清楚的認識到,應聘者的操作技能,知識和經驗只是其能力的必要條件,並不是充要條件,而我們更應該關注於應聘者的能力。

也許用這四個詞來描述定套東西並不太合適,但我相信你明白我想表達的。

不要膚淺地認識演算法題和智力題

很多公司都會在面試的時候給一些演算法題或是一些智力題或是一些設計題,我相信演算法題或是智力題是程式設計師們在面試過程中最反感的事了。很多人都很bs面試官問的演算法題,因為他們認為面試官問的這些演算法題或智力題在實際工作當中用不到。但我想在這裡說,問難的演算法智力題並沒有錯,錯的很多面試官只是在膚淺甚至錯誤地理解著面試中的難題的目的。他們認為,能做出演算法題和智力題的人就是聰明的人就是有能力的人,這種想法實在是相當的膚淺。

其實,能解難題並不意味著這個人就有能力就能在工作中解決問題,你可以想想,小學奧數題可能比這些題更難,但並不意味著那些奧數能手就有實際工作能力。你可 以想一想你們班考試得高分的同學並不一定就是聰明的人,也不一定就是有能力的人,相反,這樣的人往往者是在應試教育下培養出來的書呆子。

所以,我認為解難題的過程更重要,你要主要是通過解題檢視這個應聘者的思路,方法,運用到的知識,有沒有一些經驗,和你一起互動時和溝通得是否順暢,等等,這些才是你重點要去觀察的。當然,最終是要找到答案的。

我想,讓面試者解決乙個難題的真正思路是:

這些方面才是考查應聘者的能力(思路,方法、態度,性格等),並順帶著考查面試者的經驗和知識。下面是一些面試的點:

在解難題 的過程中考查應聘者的能力才是最終目的,而不是為難應聘者,不然,你只是乙個傲慢而無知的面試官。

模擬實際中的挑戰和能力

所以,最為理想的面試是一起工作一段時間。當然,這個在招聘過程中,操作起來幾乎不可能,因此,這就要求我們的面試官盡可能地把面試的過程模擬成平時工作的 過程。大家一些討論來解決乙個難題,和應聘者一起回顧一下他已經做過的事情,並在回礎的過程中相互討論相互學習。下面舉乙個例子。

我們知道,對於軟體開發來說,開發軟體不難,難是的下面是這些挑戰:

軟體的維護成本遠遠大於軟體的開發成本。

軟體的質量變得越來越重要,所以,測試工作也變得越來越重要。

軟體的需求總是在變的,軟體的需求總是一點一點往上加的。

程式中大量的**都是在處理一些錯誤的或是不正常的流程。

所 以,當我們在考查應聘者的**能力時候,我們為什麼不能模擬這樣的過程呢?比如,讓應聘者實現乙個atoi()的函式,實現起來應該很簡單,然後 不斷地往上加新的需求或新的案例,比如:處理符號,處理非數字的字母的情況,處理有空格的情況,處理十六進製制,處理二進位制,處理「逗號」,等等,我們要看 應聘者是怎麼修改他的**的,怎麼寫測試案例的,怎麼重構的,隨著要處理的東西越來越多,他的**是否還是那麼易讀和清晰。如果只是考查編碼能力,乙個小時,就問這乙個問題,足矣。真正的程式設計師每天都在和這樣的事打交道的。

如果要考查應聘者的設計能力,同樣可以如法泡製。不斷地加新的功 能,新的需求。看看面試者的思路,想法,分 析的方法,和你的討論是否流暢,說沒說在 點上,思想清不清晰,會應用什麼樣的知識,他在設計這個系統時的經驗是會是什麼樣的,面對不斷的修改和越來越複雜的需求,他的設計是否還是那麼好?

當然,因為時間比較短,所以,你不能出太複雜的問題,這需要你精心設計一些精製的有代表性的問題。

---恢復內容結束---

編輯器載入中...

關於敏捷能力

關於敏捷能力 研發團隊的未來 1什麼是敏捷能力?敏捷能力是一種讓團隊應對大資料時代需求日新月異改變的一種思維方式以及團隊綜合能力。敏捷需要主動溝通,需要積極響應,需要技術積累,它是一種讓一群武林高手變為特種部隊的途徑。2 對於開發團隊來說,敏捷能力至少包含什麼?1 較高的職業素養與負責態度 2 把專...

經驗和知識

這是本系列的第一篇文章,我想它適合開始一些新的程式設計師都會遇到更多的基本問題。本系列以後的文章將解決日益複雜的自然的程式設計錯誤。無論乙個程式設計師的經驗水平,錯誤發生,無論是通過知識的缺乏,乙個錯字,或一般的疏忽,知道哪些問題是最有可能引起麻煩,可以幫助減少他們可能帶來麻煩。雖然是無可取代的經驗...

關於專案經驗

在網上經常看到一些別的朋友有提出專案經驗的問題,依照lz面試的感覺來說,面試主要看幾點 專案經驗 基本技術 個人潛力 也就是值不值得培養 關於專案經驗,我認為併發程式設計網的創始人方騰飛老師講的一段話非常好 介紹產品時面試官會考察應聘者的溝通能力和思考能力,我們大部分情況都是做產 品的乙個功能或乙個...