天天看點

微軟工程院需要什麼樣的人?

微軟工程院需要什麼樣的人?

《程式員》

  最近,一篇報道微軟亞洲工程院招聘不到合适的開發人員的新聞引起了很大反響。報道發到網上後,很多人認為這是微軟傲慢的表現。事實上,恰逢記者也在采訪現場,除了此篇新聞的作者過度粉飾數字之外,其大衆媒體的定位也決定了其無法深入報道張宏江院長更為看重的原因所在。

  作為新成立的微軟亞洲工程院,已有十多個新項目和産品開發列入日程,短短的一段時間便需将人員擴充為百人之多。張宏江說:“過去的五個月中,我們管理人員用了大部分時間在人員招聘上,我們希望吸引更多的優秀軟體人才加盟。”

CTO陳怡芬同意南京研發中心的研發人員數目擴充一倍,面對這樣一個機遇,研發中心的負責人陸劍峰既興奮又忐忑不安,因為要短時間内招到如此多優秀的人才,面臨的壓力也不小。為此,他還專門從總部請來了幾位研發進階副總裁和全球産品部使用者界面總監Amy Ma來鼓氣和傳授經驗。

  對此,很多人耿耿于懷:中國如此多的開發人員,難道就選不出區區幾十人嗎?

  當然,這些國際性的大公司對人員的挑剔是重要的因素,因為他們都遵循“甯缺毋濫”的原則。然而,當我們了解了這些企業的需求之後,你會發現,其實很多人并不是栽在了網上四處流傳的号稱可以考察智商的“微軟面試題”上,而是很多顯而易見的基礎知識讓他們被拒之門外。靜下心來,仔細的分析一下,或許可以為自己的明天找到更好的彌補之路。

  基礎知識要紮實,會程式設計和懂程式設計差距甚遠

?

C#程式設計和懂C#程式設計區分開嗎?

C代碼和真正寫一段C程式有相當的差别,這并不是說程式員所寫的代碼有錯誤或者不能運作,而是程式整體的架構就不對。軟體設計工程師應該知道他寫了某段程式對緩存的需求有多高,對CPU和GPU要求是怎樣,這些都應該是在他寫程式的時候大腦中非常清晰的。如果對整個系統的了解不透徹,就無法回答面試中的很多問題。張宏江說:“很多人隻是将語言純粹當作一個工具來使用,而産品開發所需要的素質遠不止于此。”

  現在的高校在講授計算機課程的時候太分散,沒有按照系統的知識傳遞給學生,是以教學中需要把這些課程結合在一起,學計算機也應該像學數學一樣,一環扣一環,把整個體系搞清楚,把軟體開發當作一門學問,而不是當作一種工具來學。當然,用培養科學家的方法培養工程師也會有問題,有些人會朝做虛的方向發展,他會蔑視記憶體管理這些東西。張宏江說:“我在微軟看到很多大師,這些人厲害之處在于他們對系統的了解,是以寫出的程式才能這麼漂亮。”是以,張宏江建議現在的學生應當系統地學習計算機課程,并通過了解将各種内容融會貫通起來,甚至可以通過項目的形式來實踐書本中的零散知識。

  加強軟體工程的思想

?

CMM類的學術詞彙和品質體系認證,而是軟體工程化的開發流程。也就是說,軟體設計人員需要了解如何把軟體需求變成一個軟體功能,如何把功能再分解成子產品,以及評估每個子產品的開發所需要的時間和優先級。他需要很清楚,哪些功能是必需的——沒有這個功能就無法稱之為一個産品;而哪些特性是比較吸引使用者的;哪些在時間緊迫的情況下是必須要放棄的。

1/6左右。

  張宏江說:“如今的産品開發都是很大的工程,不可能是一個人對整個程式了如指掌,是以應該以軟體工程的理念去做。每個軟體設計的人員不但知道自己需要做什麼,還需要了解自己在整個軟體開發流程中起着什麼作用,如何與其他同僚配合工作,共同解決問題。适時的把“架構師”的概念融入整個流程。”

  培養團隊合作意識

?

  在面試過程中,面試官會有意試探其對周圍事物和人的評價,從中可以看出此人的團隊合作意識。微軟亞洲研究院在初期招聘時曾經遇到這樣一件事情,有一個公司的上下級同時來應聘,在雙方互不知曉的情況下,面試官分别請他們對對方進行一番評價。結果上司大罵了一頓員工,員工也大罵了一頓老闆。最終上司被否決了,員工被錄用,之是以錄用這個員工也是因為急需人才。但後來,這個員工在與團隊其他人員合作上出現了問題也離職了。

3-5名學生組隊參加也是因為這種原因。”

  需要強調的是,過度的自信也可能造成團隊合作能力的下降,陸劍峰介紹,曾經有幾個軟體工程碩士畢業後到研發中心,自己非常自信。做項目的時候,雖然看到一些工作很難,很多東西自己還在學,但并沒有和經理談,最後沒有做下來,造成了工作的拖延,這也是缺乏團隊合作能力的展現。

  團隊合作也包含着對溝通能力的要求。尤其是對于跨國企業的軟體研發中心,多地域的合作開發并不少見。南京趨勢就曾經和美國的研發中心聯合開發某個産品,由于時差的關系,雙方可以輪流開發,順利的情況下縮短一倍的開發時間,但最關鍵的是溝通,如果有一個問題沒有溝通好,可能某方反而會浪費一天的時間。

  優秀的項目管理經理和測試工程師難尋覓

?

  在這些研發中心的招聘中,很多職位的空缺并不在于開發工程師,而是在于項目管理經理和測試工程師。

  由于國内規範的産品開發公司很少,能夠勝任項目管理經理的人屈指可數。對開發人員來說,管人并不難,但中國的開發人員更習慣于接受上級的上司,而對于并不具有人事權的項目管理經理來說,能夠管理起一個開發團隊就不是一件容易的事情了。目前微軟亞洲工程院的項目管理經理多為從美國微軟總部回來的經驗豐富的華人擔任。

  測試人員的缺乏也令很多研發中心無奈。在中國,軟體測試經理這樣的人幾乎可以忽略不計。而且對于程式員來說,大家還沒有完全接受軟體測試的工作,一般就是認為測試就是按照一定的流程進行操作找錯誤而已,其實這隻是一個測試執行的過程,真正的測試工程師是要能夠設計出各種各樣的測試工具,并使用這些工具對所開發的軟體進行測試。“微軟工程院的測試人員面對的是絕對有趣也非常有挑戰性的工作。”張宏江說。

API或者網絡協定,而做測試,沒有什麼固定的東西和流程可以遵循,可供發展的空間更大。測試一段程式,如果沒有一定的開發功力,找問題會非常困難。為此,趨勢中國研發中心還和南京大學軟體學院進行合作,将自己的經驗做成教材,開設了軟體測試的專業。

 提高素質

CEO張明正自己就說對工程師很寵,我們每年幾百萬美元的研發費用很少被砍的。”

  放眼望去,中國軟體産業要發展,必須要在軟體産品開發方面走的更好,而這就需要大量适應産品開發的程式員。不僅中國的軟體公司在擴招,同時,一些跨國軟體企業不斷的在中國設立軟體研發中心,甚至包括一些印度來華的軟體企業,這對中國的軟體開發人員來說不啻于一個好機會,但真的把握住這樣的機會,重視提高這些企業所看重的某些素質,這無論對自身還是整個中國軟體産業都是非常有益的。

  微軟亞洲工程院稱自己最需要的三類人才

?

  軟體設計工程師

-設計-實作(程式設計)-測試-釋出。但微軟更強調人員的合作和成長。微軟要求軟體設計工程師的基本技能出衆并善于學習,溝通能力、協調能力出類拔萃,還要求他們“具備‘架構’的概念”,能适時用 “架構師”的角色去了解整個流程,進而主動發現問題并協同解決問題。

  軟體測試工程師

  “給你一台冰箱,你将如何測試它?”