好與壞的程式設計師:如何客觀評價程式設計師的水平?

2020-12-02 開源中國

1

有感於知乎上的一篇關於程式設計師的討論。讓我突然之間心有戚戚然的感覺。最近一段時間有點江郎才盡的感覺,寫不了大的主題,就寫點小東西吧。

我們從知乎上面引用的這段小故事開始:

魏文王問扁鵲家裡三兄弟誰的醫術最好。扁鵲回答說大哥最好,二哥次之,他自己最差。魏文王疑惑了,又問道,為什麼扁鵲最有名呢?扁鵲回答說因為大哥治病的時候人沒病就防止了,所以毫無名氣。二哥呢,病剛起來的時候,就給治好了,大家以為只能治小病。而自己呢,能耐不夠,非要到了病的很厲害了才能看出來,治起來的動靜就大了。好在還不至於庸醫能治好,結果大家看到每次治的都是頑疾,反而出名了。

這發生在幾千年前的對話是不是靠譜我們不知道,但是拿這話來套程式設計師的生態圈,真就是一套一個準。

2

微軟某個大牛軟體下面兩個不同的組裡各有一個大牛程式設計師,為了不失一般性,我們叫張三和李四吧。張三的特點頗有點大哥的風範,偶爾也充當一下二哥。寫的程序嚴謹,測試也很嚴謹,幾乎不犯錯。組裡其他同事有錯的,也在出大事之前默默的修掉了。

李四的風格和扁鵲像,手腳麻利幹活快,但是坑也很多。好在李四人聰明又手腳麻利,每次總是能夠在自己或者組裡其他人搞出驚天動地的大事來的時候,把坑迅速填好,救產品於危難。

名氣來說,李四是整個產品部門從VP往下數出了名的可靠的火槍手,救火隊員。領導信任不可或缺的左膀右臂。張三就默默無聞了。只有小組裡面的人知道自己是高手。

說起結局來,李四很快就到了principal,張三麼,一直默默無聞,很多年以後終於熬資歷到了senior,然後在一次裁員中被裁掉了。

3

事情到這裡就有點意思了。幾千年前的故事,幾千年後還在上演。看官可能覺得這個是特例。其實也不然。這樣的故事一直在上演。

說說另外一個順利上市擴張的公司的故事。我們知道但凡是初創公司裡的員工,都是能夠迅速的開發出差不多能用的東西的工程師的天下。但是這個東西有個度,差不多能用的東西短平快帶來的副作用其實很大。弄不好就得在未來某個時候全部重寫。

這個公司的領導層就是這樣一群碼農自然而然的升上來的,崇尚的就是這種做事風格。但是因為公司大了,產品不能夠再到處是bug了,可是公司的test coverage又是一塌糊塗。哪裡都是坑。所以每次新版本的發行,都不停的延期延期又延期。

公司裡我認識的有一個俄羅斯來的人,做事情嚴謹,寫程序的test coverage很好,因為以前合作的關係,知道這個人的工作style,而且知道這個人是我見過的最為優秀的程式設計師之一。有次我偶遇聊起天來,這位一個勁的和我訴苦,苦不該去這個公司。因為公司裡面所有的人崇尚的是救火隊員,從未有人覺得好好寫code,少出bug是重要的。

後來我又認識了一個羅馬尼亞來的工程師,也是同一個公司。這位羅馬尼亞老兄的程序我就不評價了,實在有點不堪入目。然而我看看linkedin,在此公司混的是風生水起。我再次和俄羅斯人見到的時候,俄羅斯人和我說,這個羅馬尼亞人啊,就是個徹頭徹尾的hacker。每次做事情,把當前的bug能修掉再說,code一塌糊塗,最後別人都得替他擦屎。但是領導們都很喜歡他啊,能迅速的修好東西讓產品出去。

4

這事情說到這裡,其實可以概括下來兩句話:曲突徙薪亡恩澤,焦頭爛額為上客。

一個程式設計師為了不出問題而做的努力,往往沒有那些出了問題以後再打雞血一樣去努力解決的人獲得的回報多。你說按照這個標準去判斷,到底是哪裡出錯了呢?

從這一點來說,我們首先得要看看一個領導是怎麼樣去評價一個好或者不好的程式設計師的。在我的經歷裡面,並不是沒有遇到過在意系統結構,對那些能夠寫出不錯的程序,能夠防範未然的程式設計師非常重視的領導。然而更多的領導其實最在乎的依然是如何能夠迅速的把東西寫完,迅速的發布出去。

基於後者的情況越來越普遍,尤其是在比如著名的亞馬遜的很多產品組,領導有的是MBA或者產品經理出身的,其評價體系裡面,並不會給扁鵲大哥那樣的程式設計師太多發揮的空間。

我作為程式設計師的時候,是非常希望自己可以成為扁鵲大哥這樣的牛逼的大神的。我環顧四周的時候,看到拯救公司的英雄們,各個都如同扁鵲,或者扁鵲++。這個問題我很困擾了,讀到知乎上的文章,頗心有戚戚然。那麼碼農們,你們怎麼選?經理們,你們怎麼看?

來自:51CTO 作者:徐飛

相關焦點

  • 程式設計師不要總想著四兩撥千斤
    2020 年是很魔幻的一年,但好在這特殊的一年中,經歷了一些事情,閱讀了一些書籍,終於明白了一些之前的困惑。因為覺得自己這些感悟可能具備一些普適性,所以作本文和大家一起分享。1. 因為數位化,程式設計師會長期存在經常會有媒體拿 35 歲來製造年齡焦慮,但現實生活中,我也見過不少超過 35 歲的程式設計師。
  • 高級程式設計師是如何從初級程式設計師演變的?工作經驗不再是唯一途徑!
    不過我走了好大一段彎路才明白了這一點。 一名程式設計師不會因為他會寫代碼而成為一名合格的程式設計師,而是因為在開始做任何事情之前先做分析,然後再來開展工作,這才是真正的程式設計師。初級程式設計師往往高估自己的知識和能力,無法認識到其他人的技能和能力水平,這就是為什麼他們總是認為自己比別人更有能力,知道得更多。 正如 David Dunning 所明確指出的:在許多情況下,無能並沒有使人們失去方向、困惑或謹慎。相反,不稱職的人通常會盲目自信。
  • 程式設計師怎麼提高英文水平?
    上篇我們分析了程式設計師是必須要學習英文的,和英文對程式設計師的重要性。這一篇我將對如何學習英語和如何提高程式設計師的英文水平分享下我自己的經驗。英文主要的提高點在閱讀,口語和聽力,下面讓我們逐個攻破。如何提高閱讀能力?
  • 專科VS本科:別給專科程式設計師套上學歷的枷鎖!
    雖然相對於其他職業來說,程式設計師的實際能力和工作經驗顯得更為重要,但是在具體情況下,學歷依然是影響程式設計師未來職業發展的不可忽視的因素。尤其是對於學歷出身一般的程式設計師來說,在職業發展過程中需要克服的客觀阻力可能更大。 在程式設計師這個職業上,專科與本科有什麼區別嗎?區別在哪?
  • 程式設計師的這108個笑話 你都看得懂嗎?-程式設計師,笑話,編程, ——快...
    15、殺一個程式設計師不需要用槍,改三次需求就可以了。16、C++程式設計師看不起C程式設計師,C程式設計師看不起java程式設計師,java程式設計師看不起C#程式設計師,C#程式設計師看不起美工。周末了,美工帶著妹子出去約會了,一群SX程式設計師還在加班。17、問:如何生成一個隨機的字符串?答:讓新手退出VIM。18、「我給你出個腦筋急轉彎,你說達文西密碼的上面是什麼?」
  • 資深程式設計師大佬告訴你,如何成為一個C++高級程式設計師
    語言我們要成為一個程式設計師,學的東西會很多很雜,但是最開始一定要從語言開始學習,而學習語言最關鍵的莫過於選好一本書,學校的教材就算了,根本沒 有寫得好的。在此隆重推薦《C++ Primer》,這本書很厚,內容也很豐富,對知識的講解不僅僅停留在表面。如果這本書能有耐心看完,語言方面基本就沒有什麼大問題了,對以後的學習也打 下了一個很好的基礎。2.
  • 程式設計師是做什麼的?未來計算機變得智能,就不需要程式設計師了嗎?
    甚至不少程式設計師對他們是做什麼的都沒有清晰的概念。 計算機將我們的文明推入一個新的水平,使我們的生活更有意義並充滿樂趣,還彌補了我們大腦的缺陷。很可能計算機比人類更聰明。(不過,我有點關心如果這成為現實後,計算機還需要人類程式設計師嗎?) 現代計算機具有完全邏輯性、直接性和順從性。如果你知道它應該做什麼並且知道如何命令它,那麼和計算機一起工作是快樂的。唯一的問題是,計算機只會做你告訴它去做的。
  • 國外程式設計師推薦:每個程式設計師都應讀的書
    無論您的經驗水平如何,也不管您在怎樣的開發環境中工作,也無論項目是大是小, 本書都將激發您的思維並幫助您構建高品質的代碼。《代碼大全(第2版))》做了全面的更新,增加了很多與時俱進的內容,包括對新語言、新的開發過程與方法論的討論等等。推薦數:1504對於那些已經學習過編程機制的程式設計師來說,這是一本卓越的書。
  • 如何度過程式設計師的菜鳥階段?
    近些年,IT行業薪酬水平穩居榜首,70%的程式設計師薪酬在十萬以上。那麼想要進入IT行業成為一名程式設計師該怎麼度過自己的菜鳥階段呢?不要盲目跟風的一味追求新設備別看程式設計師看起來清心寡欲,其實對新設備的追求不亞於女孩子們對包包的熱衷。我真的見過那些為了買新Apple喝西北風的程式設計師,如果你剛入職,設備更新換代的速度,比你漲工資快多了。如果被偷或者更換的時候不注意,很可能被人盜取隱私。不如拿這些錢去提升自己,你想要的總有一天都會得到。
  • 普通程式設計師與高級程式設計師有什麼差別?你知道嗎?
    程式設計師的基本能力是:Tasking和學習能力。當好程式設計師的能力是:用更好的方法來實現功能。0.文檔能力「文檔是第一生產力」,這一點在程式設計師的世界是毫無異議的。俗話說:「不會寫文檔的程式設計師不是一個好程式設計師」。
  • 中國程式設計師 VS 美國程式設計師,差距就在這五點
    美國程式設計師大多數都是因為熱愛編程行業而從事這份工作的,他們會專注某一個領域幾十年。50歲以上的程式設計師還會安心待在同一個崗位寫代碼,專研技術。他們想法很簡單, 對於編程這種事情更多的是那種單純似的熱愛。影響因素:國外的程式設計師,專心寫程序並專研,他的級別和工資就會年年往上漲,和做管理的人員沒太大區別。
  • 50%是招聘,50%是培訓,100%是程式設計師
    本期受訪團員:張雲浩(LeetCode 聯合創始人) 招聘程式設計師是越來越多的企業無法迴避的一件難事,招到合適的程式設計師並不容易。現在招聘渠道多是通過獵聘、Boss直聘等招聘網站,看看教育背景與項目經驗,再約面試,並有一些編程題目對程式設計師水平進行現場測試。
  • 程式設計師秀英文水平,不想被吐槽,閃瞎同事24k鈦合金眼睛
    程式設計師居然不會英語?很多人會有這樣的疑問,其實現實中,程式設計師不會英語並不奇怪,不管是什麼計算機語言,能用到的單詞往往很有限。可是,當一個不怎麼會英語的程式設計師,在自己的代碼裡,秀英文水平,又會是一種什麼樣的情景呢?
  • 資深程式設計師認為的成功十大黃金定律
    如何才能成為一個頂尖的程式設計師呢?Java頂尖程式設計師Lukas Eder和我們分享了偉大程式設計師應該具備的十大特質,他表示這十大特質並不是偉大程式設計師所特有的,任何領域的領導者可以說都有這些特質。當然這只是Lukas Eder的一家之言,如果你有不同觀點或者其它補充歡迎在下方留言評論。
  • 被嫌棄的35歲程式設計師
    而代碼水平是『術』。即便管理工作多用「道」,也許術的部分有些生疏,但本質上計算機的邏輯沒有變,並不妨礙成為一個優秀的技術人」,蘇銳說。35 歲 + 管理者代碼量的問題或許很難給出一個統一的答案或者標準,因為公司類別、規模、崗位等的不同,對管理者的要求也必然不盡一致。
  • 程式設計師的真實工資有多少?程式設計師可以幹多久?
    程式設計師的真實工資有多少?程式設計師可以幹多久?1程式設計師的真實工資一般程式設計師真實工資是一萬左右。《2018中國程式設計師薪資生存現狀調查報告》顯示,中國程式設計師的平均月薪達到1萬元,大多數程式設計師年薪在9-30萬元。上海程式設計師收入最高,16.9%月入2萬及以上。其次是杭州、北京和深圳。Java、PHP、Android的月薪在北京、上海都已過萬,在杭州、廣州也是普遍8K以上。其中,Java和PHP的平均薪資要高於另外兩個崗位。
  • 程式設計師如何快速的學習並使用API
    對於應用級程式設計師來說,每天都要跟各種API打交道,不同的API完成不同的功能,但是簡單的總結一下,這些API其實只完成一件事,這一件事就是資源管理。所以了解API實際上就是了解各種資源,以及如何調用這些資源來完成一個具體的業務邏輯處理過程。
  • 誰是更好的程式設計師:中國人還是印度人?
    總而言之,u 複製產品或代碼的能力並不能造就一個優秀的程式設計師。u 在任何給定網站和/或難題解決方面能力很強並不能證明是一個好的程式設計師。是的,我解決了許多數獨難題,但您會認為我是愛因斯坦嗎?u 哪個國家或地區從某人的工作中獲益並不決定誰是一個偉大的程式設計師。u 網站發布的受歡迎程度的統計數據,絕對不是決定一個優秀程式設計師的標準。
  • 程式設計師和工程師的不同
    ,可以迅速從程式設計師成長為工程師。當時我覺得太詫異了,從很多招聘啟事來看,「程式設計師」不就等於 「工程師」嗎,只是「工程師」更好聽一些而已。等我工作久了,才知道「程式設計師」和「工程師」真的是不一樣的——程式設計師只寫程序,工程師寫能在現實世界中創 造價值的程序。
  • 高效程式設計師的特徵:聰明,懶惰
    這裡我使用了聰明,懶惰和程式設計師這幾個詞。