微軟代碼女神潘正磊:程序員跟年齡關係真不大

微軟代碼女神潘正磊:程序員跟年齡關係真不大

曾經有幸採訪過微軟資深副總裁潘正磊女士,她的履歷堪稱精彩:

Visual Studio,. NET 開發框架,C# 編程語言,都是在她領導下的團隊負責開發的;編程大神 Delphi、C# 和 TypeScript 之父 Anders Hejlsberg、設計模式四人幫與 Eclipse 設計者之一的 Erich Gamma 直接向她彙報;管理的研發團隊規模超 3 千人,微軟擁抱開源的決定上她還起了舉足輕重的作用。她是目前微軟職銜最高的華人女性,也是一個一線出身的程序媛。

當時向她請教了那些中國程序員、年輕開發者、程序媛們最關心的一些問題,她也一一給出了自己的回答。

技術學習的取與舍

如果真的想在一個技術領域裡成為大拿,那麼你必定是要在這個領域裡做很多年的沉浸才可以。即便像 Eric Gamma、Anders Hejlsberg 這樣全球知名的技術領袖也是一樣。Anders 被公認是全球最棒的編程語言設計師,他從 Delphi 到 C# 到 TypeScrip 做了快 30 年了,他在這個領域這麼多年的沉浸,有這麼多的經驗,才能支撐他做出這麼好的設計方案。

對所處領域要有激情,需要很多年時間才能夠真正做到一個世界級的頂端的大師。這是一方面,另外一方面,需要對整個技術有一定的展望,對大的技術趨勢要有一定的把握。比方說現在,如果不去學一點 AI 的東西,不去學一點機器學習的東西,可能對未來的技術的把握就會落伍了。

總結就是:先選定一個技術領域,沉下心來在這個領域裡深耕,同時擴展技術的寬度。

從封閉到開源,轉變為哪般?

有一張微軟現任 CEO 薩蒂亞·納德拉的照片特別有名:

微軟代碼女神潘正磊:程序員跟年齡關係真不大

鮑爾默時代,微軟對於開源軟件、Linux 抱著敵視的態度。現在回過頭來重新再審視這件事,其實開源對微軟是非常好、非常重要的方向,微軟有很多特別好的技術,卻被封閉在牆內。也因為沒有擁抱開源,所以沒有得到用戶的認可以及參與。.Net 剛開源的時候,團隊都特別緊張,此前也沒有做過這麼大規模的開源項目。第一次開源出去,完全不知道回饋會是怎麼樣,別人會挑什麼毛病。並且許多工程師可能也曾經在代碼裡面發過許多牢騷,或者是寫過一些不知所云的東西,大家都想開源前都把它刪掉。

所以在正式的開源之前,其實做了很多工作,把整個代碼都看了很多遍。但是在開源之後發現:用戶對我們的反饋特別好,而且一開始就給了我們很多的幫助。甚至包括一個捷克的用戶反映發現了一個 bug 等修復等了很久,現在開源了之後他就可以自己動手了。

開源這個事情,其實對於很多在校大學生來說,也是一個特別好的鍛鍊自己的方式。通過寫測試、改 bug 等等方式,都可以參與進來。我建議在校大學生可以花一些時間在 GitHub 上,做一些貢獻,也能得到鍛鍊。

包括 Visual Studio 在內,我們做的開發工具現在也有 For Mac,For Android,iOS 的等等。在常人看來,從封閉到開源是一個巨大的轉變,但微軟好像轉起來毫不費力。其實在整個轉變的過程中,團隊裡還是發生了很多故事,也遇到了一些困難的。

從開源這個角度來講,團隊內部都非常歡迎,但真要開始著手做的時候,還是有非常多的挑戰。團隊裡面大多數的人都是在 Window 平臺上面沉浸了很多年,另外我們的工程師做測試、構建等等,都是基於 Windows 平臺,也都是內部的。如果要開源,首先就得把這套系統做到可以在 Windows 上運行,也可以在 Linux 上運行,所以對工程師能力的挑戰本身就挺大。

另一個大的挑戰就是我們當時準備做的開源和 Android、Java 不一樣。因為 Android 和 Java 的開源,其實都是在內部已經做好了,然後把代碼一次性地再放出去。用戶可以對其做小的修補,但對於其大的架構是很難起到影響作用的。

我們準備做的是一個全開源的、開放式的。具體怎麼做的?我們每星期都有內部的討論,包括下面的架構怎麼做,要有什麼樣的新功能等等。我們會用攝影的方式把討論錄下來,放在網上供大家討論。我們根據用戶對此的討論,再決定我們要做哪些功能。開源的開發工具 Visual Studio Code (VS Code)也是用類似的方式。

程序員的年齡關係大嗎?

程序員有沒有這個年齡限制這個問題,其實這是一箇中國挺獨特的問題,其實國內現在有很多程序員都在擔心 35 歲之後是不是就不能做程序員了,或者說要轉行回老家,對這個其實我也覺得是挺奇怪的。因為我覺得對程序員的定義我們要稍微改一下,如果一個程序員什麼都不知道,就是你老闆叫你做什麼你就寫代碼,這種是最單純的一個程序員的定義,那麼這種程序員我覺得做幾年之後,一部分人確實可能會遇到很多瓶頸。

微軟代碼女神潘正磊:程序員跟年齡關係真不大

Anders Hejlsberg

我們團隊裡的 Anders Hejlsberg,大家喜歡稱呼他“海神”,他做了 30 年還在寫代碼,他還能這麼有激情?你說他是程序員嗎?他每天也是在寫代碼,還在寫代碼,但是他另外一個身份是全世界最好的編程語言設計師,而且他對整個行業的分析、對行業的認知,他的前瞻性是一流的。有很多的問題,我們兩個會討論,我會充分聽取他的建議和意見。

我們一開始準備做 VS Code,Anders 也是積極的推動者,他雖然自己不做,但他覺得這對我們來說是一個非常重要的領域去介入。他的這種前瞻性,對戰略的把握,實際上對他的程序員生涯是非常重要的,如果沒有這種戰略的把握,沒有這種前瞻性,他不可能在我們公司做到和全球資深副總裁同樣的級別。但是同時作為一個程序員來說,他又是一個非常牛的程序員。

在第一個版本做出來之後,已經有了很多的用戶。Anders 看了之後,覺得還可以寫得更好。於是他就花了幾個月的時間,一個人把 TypeScript 編譯器的部分重寫了一遍。重寫完以後,總代碼量只有原來的三分之一,運行速度提升了好幾倍。

所以每次有人問起,對程序員的考核標準,要不要用寫的總代碼量來衡量,我總是會跟他提起海神的這個故事。如果用這種考核標準,能招到海神這樣的大牛嗎?我認識很多 35 歲、40 歲朝上的程序員,他們對領域的把握、資深的認知是年輕程序員所欠缺、難得的。所以即使他們還是在做程序員這份工作,但也不是像大學畢業的新進同事只寫代碼。資深的程序員對於公司來說,是非常寶貴的資源。

微軟代碼女神潘正磊:程序員跟年齡關係真不大

Erich Gamma

另外像我們團隊裡的另一個大神,Erich Gamma,他就跟我說他團隊裡的人不要超過 20 個人。超過 20 個人,他就要花很大的精力去管理,他希望把時間更多地放在技術上面,然後能夠把技術做透。

很多時候中國的文化很看重管理的人數多少,其實並不是管理的人越多越好。Erich Gamma 只管不超過 20 人的團隊,Anders Hejlsberg 一個人都不管,但是他們對於產業的影響力卻是很多管理大型團隊的領導者所難以企及的。

從程序員邁向領導者

不同的企業,它的需求是不太一樣的。我只能從微軟的角度,從產品的角度談一談怎麼從技術轉向管理。

一般來說,如果技術都做不好,是不會做到管理者的崗位的。因為你一定要有信服力,你一定是技術做得好,被大家所認可,才有機會做到技術主管,步步升遷。微軟的技術主管不僅要管人,還要管這個產品的技術實現。

微軟代碼女神潘正磊:程序員跟年齡關係真不大

很多時候,團隊裡的工程師會說想要去做技術管理。通常我會說,你可以去試一下,如果覺得做不好再轉回做技術。有的時候,我會更直白地說,你要是做技術,只需要管理好自己一個人,可能升職反而會更快。但如果你做了技術管理,團隊沒帶好、功能沒實現,反而會影響到後續的升職和提拔。

微軟的工程師有兩條線,一條是純做技術,一條是技術管理。至於微軟的項目管理,雖然跟技術管理一樣,都是用 Manager 的職稱,但是他其實不一是一個真正意義上的領導者(People Manager)。項目管理者更多可能只是一個個人,在統籌項目的進度等等。所以微軟裡面做團隊管理的,基本上都是技術管理。

拿架構師來舉例,國外的很多傳統的架構師,像微軟公司的架構師,其實並不是用職稱來反映的,越資深的工程師,本身要負責的問題就越大,然後對此要有一個相應的很大的解決問題的框架,落地其實就是架構了。另一方面,從負責制的角度來說,如果管架構的和主管開發的經理不是一個人,或者有不同的理念,萬一最後做出來的產品有性能上的問題或是功能上的問題。究竟是架構不好呢?還是開發不好呢?

所以,一定要在一個認知合一的情況下看問題。程序員轉管理崗,並不是條容易的路。

給女性程序員的貼心話

我剛進微軟做開發的時候,確實開發組裡女程序員數量非常少。那時候不像現在,微軟做工程師的華人也是非常少。我剛進開發組的時候,一個大老闆問我說:“你高中畢業了嗎?看著還像個高中生就來上班了。”我當時還覺得挺沒面子的,被別人看成高中生。

我覺得很多時候,女程序員面臨的第一個就是對自己的認可。從全球的角度來看,有很多數據支持的一個現象是:對於一個職位的要求,男程序員可能自我審視到滿足 60% 就會去申請,但是女程序員很多時候是在達到 85% 甚至 90% 以上,也就是說基本滿足要求的情況下才會去申請這個職位。

微軟代碼女神潘正磊:程序員跟年齡關係真不大

所以對於女程序員來說,第一就是要知道跟男程序員在這種情況下會有不同的反應,很多時候對於自己的自信和自我認可是很重要的。但很多女程序員,在團隊裡作為新人的時候,會刻意地去控制自己,在研討會的時候覺得別人的發言都很有邏輯很有道理,認為自己作為一個小白還是多聽少說。

但實際上我覺得作為一個不管是男性還是女性的程序員,對自己的自信心還是非常重要的,在團隊的搭建過程中和在團隊的合作過程中要勇於表述自己的意見,如果你沒有意見表述,就算你心裡面很有想法,別人也是猜不到你的意見的和想法的。所以很多時候你不表述你的意見,別人可能認為你就沒有想法。

這實際上是對女性成員是非常不利的。很多時候,我覺得女性成員還需要做的事情就是要據理力爭。你認為有道理的要用一個比較合適的方式跟整個團隊做討論,而不要躲在後面不發聲。我覺得這跟中國的文化有點關係,老師給我提什麼我就做什麼,但實際上很重要一點就是不管男性和女性,你要真的弄明白你老闆叫你做的事情,為什麼要叫你做這個,他想達到的效果和目的是什麼?

微軟裡很多女程序員,不僅是在結婚之前做技術。結婚生孩子之後還在接著做技術。我也有孩子,我覺得孩子和家庭並不影響你,不會說結婚生子後,突然你的架構能力,你的寫代碼能力就沒有了,就下降了。我覺得其實女程序員在很多時候,尤其是在團隊合作中,在交流中實際上相對於男性程序員還可能還會有更多的優勢。而且我覺得女程序員天生對用戶的體驗會比較敏感,而且我覺得一個團隊裡面有男程序員也有女程序員,其實對你產品整個的用戶體驗來說會更合適。

對於女性程序員來說,總的來說,第一是不要被別人影響,要自信,要勇於去挑戰別人對你不行的偏見。中國的女生,高考數理化成績都很好,數理化能學好的,學好計算機有什麼問題?


分享到:


相關文章: