
剛剛看到一篇文章,文章里談到,在未來,我們可能不屬于任何一家公司,而是以自由職業(yè)或者聯(lián)盟等方式來完成工作。我認(rèn)為,理論上講,這個(gè)趨勢是存在的,跟軟件工藝的要求是一致的,而且軟件工程師的發(fā)展方向越來越接近于軟件工匠。但在實(shí)際工作中,要完全做到職業(yè)自由或者聯(lián)盟,還是面臨很多問題,首要問題,就是如何有效評(píng)估一名軟件工程師的工藝水平。
如果一名軟件工程師,已經(jīng)有很多優(yōu)秀作品,并獲得同行和用戶的認(rèn)可,其工藝水平是很容易評(píng)估的。但絕大多數(shù)軟件工程師,特別是年輕工程師,在短時(shí)間內(nèi)是很難得到有效的技能評(píng)估,主要原因有:
- 絕大多數(shù)程序員,因?yàn)楣ぷ鲿r(shí)間或精力問題,不可能確保在每一次求職時(shí)都做好充分的準(zhǔn)備,而在平時(shí)工作中就做好充分準(zhǔn)備的軟件工程師,其本身的工作就非常有價(jià)值,也在行業(yè)中有穩(wěn)定的位置。
- 在探索技能評(píng)估的過程中,可能我們還是應(yīng)該遵循軟件架構(gòu)設(shè)計(jì)“夠用就行”的標(biāo)準(zhǔn),達(dá)到潛力和發(fā)展的最佳平衡。
說白了,作為一項(xiàng)智力活動(dòng),軟件開發(fā)的一個(gè)重要原則始終是多動(dòng)腦子少花錢。
當(dāng)我們拋開熟人介紹和優(yōu)秀到不能被忽視的人之外,招聘作為一切的開端,在實(shí)踐過程中,我們始終面臨在不同的階段,做出決策選擇合適的人的問題。那么在特定的場景和需求情況下,只要還存在稀缺,如何評(píng)估軟件工程師的能力是一個(gè)重要而且困難的問題。如哈佛商業(yè)評(píng)論說的,如何發(fā)現(xiàn)高潛力人才。
面試能做什么
問答環(huán)節(jié)是面試中一個(gè)比較重要的環(huán)節(jié),個(gè)人的經(jīng)驗(yàn)是,能不能通過事先準(zhǔn)備和臨場發(fā)揮,用一系列問題來建立有效的溝通,是非常關(guān)鍵的。怎么做好,只能說溝通和管理一樣,既是技術(shù),也是藝術(shù)。開放的思維是關(guān)鍵。
這里有一個(gè)經(jīng)典的困局,我們?cè)O(shè)置的問題,應(yīng)該是考驗(yàn)開發(fā)人員的常識(shí),還是邏輯思考能力,哪一項(xiàng)更有意義;是記得Java的某種內(nèi)置排序算法重要,還是能夠用php寫一個(gè)優(yōu)雅的排序更重要。在面試這個(gè)不長的時(shí)間內(nèi),需要表達(dá)出哪些東西。
記得當(dāng)然比記不得好,過目不忘比過目就忘更好;看時(shí)間、精力和溝通的默契程度,看缺不缺人,看候選人多不多。常識(shí)和邏輯思考能力,應(yīng)該是同時(shí)需要考察的,這個(gè)環(huán)節(jié)是一個(gè)需要雙方都開啟智力思考模式的地方。
也如《羅輯思維》所說,科舉、應(yīng)試,在某種程度上,也是比較公平合理的方案??慈诉@種事情,從來就不是簡單的事情。
怎么做的更好
軟件開發(fā)始終是一種工程實(shí)踐,一種手藝。如果條件允許,嘗試一下是最好的選擇?!吨貋怼防锏睦硐胧欠浅:玫?,通過實(shí)踐來檢驗(yàn)軟件工程師的開發(fā)能力。
不過現(xiàn)實(shí)中,個(gè)人感覺是,與其說是考驗(yàn)被測試者,更大的考驗(yàn)應(yīng)該是對(duì)于考察的人;公司有足夠知名度的時(shí)候往往不缺一兩個(gè)人,更多精力可以用于直接挑選最優(yōu)秀的工程師;沒有足夠知名度的時(shí)候,沒有時(shí)間,也沒有足夠的空間去挑人。還要在不長的時(shí)間內(nèi),花額外的盡力去設(shè)計(jì)好的考試大綱。
所以,最后對(duì)于個(gè)人來說,還是只有在平時(shí)的工作學(xué)習(xí)中,不斷學(xué)習(xí)知識(shí),不斷的刻意練習(xí),讓自己隨時(shí)準(zhǔn)備好,建立自己的知識(shí)體系和技能樹,對(duì)于最核心的部分應(yīng)該做到隨時(shí)隨地都像肌肉反映一樣快速自然,最好的的狀態(tài)是以意馭劍,才能變化無窮。
例如,先定個(gè)小目標(biāo):寫50篇各種類型的文章;構(gòu)思并在Github上實(shí)現(xiàn)10-20個(gè)有創(chuàng)意的項(xiàng)目;每個(gè)月至少進(jìn)行一次編程操練。