Patrick McKenzie 在2011年寫了《不要自稱程序員》這篇文章,我寫的這篇算是一個(gè)(相當(dāng)晚的)回應(yīng)。我覺得他說的有些還是有道理,假設(shè)一個(gè)人在職業(yè)發(fā)展初期能按著他說的做的話,沒準(zhǔn)還真能有點(diǎn)幫助。但假如是二十歲的我的話,我真懷疑自己能用他說的那些提高自己。
所以下面我主要說說我不能同意的那部分,我建議大家往下看之前先看看 Patrick 的文章,這樣就不會(huì)錯(cuò)過什么。(譯注:《不要自稱程序員》這篇譯文是摘選翻譯,并非全文翻譯。)
實(shí)際上也不能說是不同意他的觀點(diǎn),更加準(zhǔn)確的是:“我們的閱歷不同”而已。我們站在不同的職業(yè)發(fā)展軌跡上,所得到的經(jīng)驗(yàn)當(dāng)然不同:Patrick McKenzie 是“bingo card creator”的老板(一個(gè)小企業(yè)),同時(shí)是一個(gè)成功的咨詢師;而我則是一個(gè)“億”級(jí)別公司的架構(gòu)師。我們的共性是都和”純寫程序“有些偏離了,只是我們偏離的方向不同。
你想為什么樣的公司工作?
Patrick McKenzie 說90%的工作都和實(shí)現(xiàn)一個(gè)內(nèi)部差旅報(bào)告表一樣無聊,根本沒有機(jī)會(huì)寫那些能給用戶使用的程序。并且你還得接受這個(gè)現(xiàn)實(shí)。可是真是90%么?Spolsky說可能是80%,不過那也夠恐怖的了,Patrick 還解釋了為什么做一個(gè)內(nèi)部程序員(in-house programmers)糟透了:
沒有商業(yè)理由去改善那種“勉強(qiáng)夠用”的內(nèi)部軟件。“請(qǐng)忘了引以為豪的工藝,否則你就要會(huì)制造讓人尷尬的垃圾。”
在公司里面,工作的內(nèi)容和公司盈利更緊密,程序員也就更容易獲得尊重。除了少數(shù)一些純技術(shù)公司,程序員是不可能最終提升為公司的CEO。無論對(duì)VIACOM(一個(gè)跨國(guó)傳媒集團(tuán))來說網(wǎng)絡(luò)通暢有多重要,真正到了分工位的時(shí)候,內(nèi)部程序員還是得三個(gè)人擠一起桌子坐。
McKensize 和Spolsky 都同意上面的說法,同時(shí)Spolsky認(rèn)為:程序員應(yīng)應(yīng)該到一家軟件公司工作,那里的文化會(huì)使一個(gè)程序員茁壯成長(zhǎng)。而McKenzie則意見與他相左,他認(rèn)為程序員應(yīng)該“走出去”。
所以目前的問題變成了程序員個(gè)人的喜好問題:你想到軟件公司做白領(lǐng),還是自己接活。但是別急,80-90%的人都不能得到一份軟件公司的工作。這不是你想不想進(jìn)去工作的問題,而是能不能的問題。
然而這里我就不同意了,即使只有10-20%的程序員能在軟件公司找到工作(如果數(shù)據(jù)是正確的),即使這部分程序員是最棒的那部分McKenzie又說:
“你們經(jīng)常以一些自己身邊的人為根據(jù)來預(yù)測(cè)可能的競(jìng)爭(zhēng)對(duì)手的實(shí)力,而這經(jīng)常讓你高估了它們。有很多獲得了高級(jí)工程師職位的人都不能寫好一段fizibuzz的代碼”。
所以如果大部分的競(jìng)爭(zhēng)者實(shí)力都不濟(jì)的情況下,你很可能進(jìn)入到那前10-20%的行列,就像我畢業(yè)時(shí)候的大部分畢業(yè)生一樣。所以我寧愿相信為一個(gè)公司工作還是以項(xiàng)目為單位的軟件開發(fā)是一種個(gè)人喜好的選擇。那么下面我們就說說McKenzie給在軟件公司工作的人的建議。
如何進(jìn)行自我定位
McKenzie的一個(gè)建議是:
“不要將自己定位成一個(gè)程序員。這里的程序員和那些身價(jià)很高,寫著各種看不懂的詞句的詩人有差不多的意思。相反,應(yīng)該將自己定位成能夠?yàn)楣椭髟黾邮杖牖蛘邷p少投入的工程師。”
不錯(cuò),有時(shí)候內(nèi)部程序員會(huì)花很多的時(shí)間寫出一堆令人看不懂的東西,至少在那些非技術(shù)的 MBA 眼里是這樣的。
然而對(duì)我來說,我很喜歡那種能寫出讓人看不懂的東西,但是對(duì)別人的工作時(shí)有意義的程序員。
McKenzie認(rèn)為軟件公司招聘程序員和一般的公司招聘沒有什么不同。一個(gè)例子是:在Google,一個(gè)寫后臺(tái)記賬程序的程序員——據(jù)說Google 97% 的賬目都使用該程序——現(xiàn)在已經(jīng)成為一名風(fēng)險(xiǎn)投資人了。也就是說他是通過和“盈利中心”靠的比較近發(fā)家致富的,而不是一般意義上的什么技術(shù)。
我相信這個(gè)例子的主人公是來自NSNA空氣動(dòng)力實(shí)驗(yàn)室的Ron Garret博士。你能相信Google雇用他是因?yàn)樗谠搶?shí)驗(yàn)室的時(shí)候增加了營(yíng)收或者減少了開支么?(順便說一下,據(jù)說Ron Garret并不喜歡那份寫記賬程序的工作,他買了一些Google的股票期權(quán)之后就辭職了。)
那么那個(gè)記賬程序里有沒有什么特別的技術(shù)?Ron Garret說:
”我最終去寫了信用卡消費(fèi)和賬戶管理系統(tǒng),這一點(diǎn)也不簡(jiǎn)單,幸運(yùn)的是,我在來Google之前學(xué)會(huì)計(jì)算機(jī)安全以及密碼學(xué)。所以對(duì)于這個(gè)工作,我恰巧十分在行。在我設(shè)計(jì)的系統(tǒng)中,即使一個(gè)惡意用戶得到了root權(quán)限,他也不能造成太大的危害。假設(shè)他們還在使用我寫的系統(tǒng)的話,我可以非常自負(fù)的說,我在那里存得信用卡信息是不可能丟的。“
在我聽來,他的技術(shù)知識(shí)和編程能力才使他成功的寫出這樣一個(gè)”不會(huì)被偷“的系統(tǒng),而這里所謂的”不會(huì)被偷“的系統(tǒng)似乎既沒有減少了Google的投入,增加Google的產(chǎn)出。
所以如果我要投一份芯片工程師的求職簡(jiǎn)歷,我會(huì)強(qiáng)調(diào)自己在轉(zhuǎn)換固定函數(shù)交換器和可編程處理器中的技術(shù)角色,而不是我之前的什么管理崗位。(我認(rèn)為之后的管理崗位是由于之前的努力的技術(shù)工作而來,管理了什么是虛的,真正干得活才是實(shí)打?qū)嵉模?/p>
跳槽
“同事和老板不是朋友,你會(huì)花很多時(shí)間和同事相處,你也許會(huì)和他們中的一些成為好朋友。但是一般情況下,離職之后你會(huì)很快忘了他們。
你的老板會(huì)做一些你的朋友永遠(yuǎn)不會(huì)做的事情:例如跟你談降工資,或者加班。你的同事還會(huì)殷勤的介紹各種你討厭的東西。“
確實(shí)有一些關(guān)于同事并不是朋友的潛規(guī)則。但我覺得這個(gè)說法和他的根據(jù)有點(diǎn)循環(huán)論證的意味。同事之所以不能成為朋友,是因?yàn)槟銜?huì)離職。但是你為什么會(huì)離職呢。
所以我不同意這個(gè)潛規(guī)則。我在一家公司工作超過12年,很多一部分原因是我跟我的同事非常要好。雖然最終我跳槽了,但那是當(dāng)工資漲幅遠(yuǎn)遠(yuǎn)大于10%的時(shí)候我才會(huì)考慮的事情。如果經(jīng)常因?yàn)樾〉臅x升或者工資漲幅而跳槽,那么你不可能熟悉你的同事以及你所要做的工作。你可能對(duì)如何找工作非常有見地,也對(duì)市場(chǎng)上需要什么樣的人非常敏感,但你并不會(huì)特別熟悉你的雇主,你會(huì)很快和雇主達(dá)成一致,進(jìn)入工作狀態(tài)。但是正好比一個(gè)消耗品一樣,你也會(huì)很快消耗完自己的價(jià)值,很快離開。
相反如果你能在一個(gè)職位上堅(jiān)持下去(只要那個(gè)職位的環(huán)境還算有趣,并且能時(shí)不時(shí)的提升),你和周圍人的關(guān)系也就能更加緊密,同時(shí)你也能更有遠(yuǎn)見,從而學(xué)到平時(shí)不可能學(xué)到的東西。
以我為例:我大部分的知識(shí)都是來自ASIC的黑客同事們那。他們之所以愿意和我一起工作,是因?yàn)殚L(zhǎng)期工作而來的默契。要知道達(dá)到融洽無間的工作關(guān)系相當(dāng)難得,需要相當(dāng)長(zhǎng)時(shí)間的磨合。
順便說一句,如果你能夠在一個(gè)地方工作夠長(zhǎng)的時(shí)間,在雇主眼中你的價(jià)值就會(huì)自然而然的升高:即使不用跳槽你也能獲得相應(yīng)的提升(職位上或者是薪資上)。你的薪資會(huì)高于那些具有同樣經(jīng)驗(yàn)的新員工,這時(shí)已經(jīng)沒有必要更換工作了。這種方式和通過更換大量工作而最終成為咨詢師的方法具有異曲同工之妙。
不管哪種方式,你都能成功。我這里沒有關(guān)于哪種工作方式更有效的統(tǒng)計(jì)數(shù)據(jù)。但是我認(rèn)為一段時(shí)間內(nèi)固定在一個(gè)地方工作更加有趣一些。如果不是這樣我不可能收獲到現(xiàn)在這么多的摯友。
這世上之事失敗的居多,成功的為少。你不能指望一個(gè)職業(yè)發(fā)展計(jì)劃就能讓你獲得夢(mèng)想的職位或者一大筆錢。你需要付出很多努力,除此之外還要付出還有很多你所不知道的東西。你能確定的只是你的計(jì)劃給你生活方式帶來的改變。而你選擇的生活方式又決定了你能認(rèn)識(shí)什么樣的人,擁有什么類型的關(guān)系-這比是否能夠達(dá)成最終的目標(biāo)更具有可預(yù)期性。
McKenzie關(guān)于老板的觀點(diǎn)我十分贊同。確實(shí)有一些老板非常的“周扒皮”還假模假式的和你做朋友。這個(gè)時(shí)候你就應(yīng)該正當(dāng)?shù)暮葱l(wèi)自己的權(quán)利了。
如何衡量股權(quán)
McKenzie說不要太看重股權(quán),但沒有過多闡述。這里我想說說股票期權(quán),比實(shí)際的股權(quán)還差勁的東西,也是我曾經(jīng)唯一獲得的東西。
和上面提到的一樣,我的觀點(diǎn)是一切都要從長(zhǎng)遠(yuǎn)出發(fā)。在12年中,我的東家價(jià)值翻了十倍。可是它目前仍然是一個(gè)私有公司-我的期權(quán)毫無用處。
從長(zhǎng)遠(yuǎn)看,股票期權(quán)更好,或者更糟。
說它更糟,是因?yàn)橥ǔT谀汶x職的時(shí)候你根本買不起那些股票,或者無法承擔(dān)投資股票的風(fēng)險(xiǎn)。當(dāng)一個(gè)公司在存活下來,開始進(jìn)入穩(wěn)定期,你可能開始厭煩自己負(fù)責(zé)的工作,想套現(xiàn)離開。這個(gè)時(shí)候的股票期權(quán)會(huì)成為束縛。尤其在進(jìn)行晉升談判的時(shí)候,你手里的期權(quán)會(huì)成為公司的籌碼–他們知道你無法辭職。
也就是說股票期權(quán)成為了一種債務(wù)。
相反,如果一個(gè)公司進(jìn)入成熟的階段,雇員們又會(huì)低估他們的股票–已經(jīng)這么貴了,還可能再漲么?尤其是已經(jīng)翻了三四倍之后,這種想法更加自然。但你要知道你獲得的不是百分之幾的數(shù)字,而是實(shí)實(shí)在在的美元。一個(gè)每股100美元的股票漲了20%到了120每股,意味著你一股賺了20美元,而一個(gè)每股5美元的股票即使?jié)q了100%到了15塊一股,你也只是每股賺了10美元。所以一個(gè)成熟的漲勢(shì)的公司股票要比那些年輕公司的便宜股票更具有投資價(jià)值–你更可能因此而一夜暴富。
結(jié)果是人們總是在公司初期的時(shí)候高估,而在隨后的時(shí)間低估。注意如果你沒有打算在一個(gè)公司工作超過三年的話,股票期權(quán)會(huì)成為你的“債務(wù)”,因?yàn)樗鼤?huì)讓你更難辭職。
在創(chuàng)業(yè)公司工作
McKenzie列出一個(gè)許多不到再創(chuàng)業(yè)型公司工作的理由。例如工作的滿意程度,在大型公司里面你能接觸到更多有意思的事情。但是我要說至少有一點(diǎn),是大公司和創(chuàng)業(yè)公司比不了的。大型公司一般沒有什么職位上的空缺,事實(shí)上它可能根本不會(huì)注意到職位的空缺也不會(huì)去解決。通俗點(diǎn)講就是大公司一個(gè)蘿卜一個(gè)坑,你進(jìn)來工作就是到一個(gè)坑里面去,公司不會(huì)挖新的坑了。相反創(chuàng)業(yè)公司幾乎無時(shí)不在處于缺人手的狀態(tài),因此,你可以根據(jù)需要自己挖坑,還可以同時(shí)占多個(gè)坑。也就是說你可以承擔(dān)更多的責(zé)任。在有些公司,你要和多個(gè)人同時(shí)競(jìng)爭(zhēng)才能把事情做成。相反在一個(gè)創(chuàng)業(yè)公司,你只管做你想做的事情,因?yàn)榇蠹易约好€忙不過來,根本沒有時(shí)間和你競(jìng)爭(zhēng)同一件事。
隨著公司變得越來越大,能夠做你想做的事情變得越來越難。創(chuàng)業(yè)公司里面,程序員都是游牧民族,哪有草就去那里。等到了大公司里面游牧進(jìn)化成固定城邦,程序員也有了身份證,你想看看其他部門的代碼都是需要審批的。
我這里不是建議要到創(chuàng)業(yè)公司里面去。相反如果你是一個(gè)年齡比較大的程序員,喜歡比較成熟的流程,那么在一個(gè)家大公司里面工作可能更適合你。
職業(yè)選擇對(duì)人生幸福感的影響
“每當(dāng)一天結(jié)束之后,你今天是否幸福并不完全取決于你的職業(yè)。”
一方面我完全同意這句話。不管工作內(nèi)容如何,這只是一個(gè)工作而已。并且我注意到如果我過分強(qiáng)調(diào)工作的重要性之時(shí),我的生產(chǎn)力反而降低了。合理的方式是:回到家就別像白天那么拼命了。
另一方面,我們確實(shí)花了一些時(shí)間在工作上。這兒的問題是:工作和生活應(yīng)該如何區(qū)分(平衡)呢?這里我不同意在區(qū)分開工作和生活的過程中將同事和一般的朋友分開的做法。一旦離開公司就和同事斷掉聯(lián)系完全沒有必要。
總結(jié)
當(dāng)我介紹我自己的時(shí)候,我常自稱為程序員(即使我之前的工作主要負(fù)責(zé)芯片架構(gòu)還是管理),因?yàn)槲铱繉懗绦蛸嶅X,而不是單純的因?yàn)樵谡f到”程序員“這個(gè)詞的時(shí)候感到強(qiáng)烈的自豪。我認(rèn)為程序員是一個(gè)很好的職業(yè),并且對(duì)我這樣的人來說很合適。
相反的,如果你只是將寫程序作為職業(yè)起點(diǎn),從而可以最終轉(zhuǎn)成其他類型的職業(yè)(例如管理者),那么你真的不能稱作程序員。這種方法對(duì)我來說不可理解:你還不如去讀一個(gè)MBA呢。當(dāng)然這個(gè)路線對(duì)有些人也許是適合的,因?yàn)橛行㎝BA需要一些業(yè)界工作經(jīng)歷之后才會(huì)錄取你。
所以關(guān)鍵在于選擇一個(gè)適合自己的路線,并且一直堅(jiān)持下來,最終你會(huì)成功。對(duì)于像我所在的公司來說,如果想要獲得一個(gè)寫程序的職位,但卻不認(rèn)同自己是程序員的話,恐怕不會(huì)給面試官什么好印象。
最后強(qiáng)調(diào)一下McKenzie文章里我十分認(rèn)同的觀點(diǎn):溝通能力很重要。我推薦你去讀一讀。
-
程序員
+關(guān)注
關(guān)注
4文章
953瀏覽量
29900
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
阿里云升級(jí)通義靈碼AI程序員,全面上線
TMS320C55x DSP CPU程序員參考補(bǔ)充

UCD3138A64/UCD3138128程序員手冊(cè)

機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南

AI編程工具會(huì)不會(huì)搶程序員飯碗
第五屆長(zhǎng)沙·中國(guó)1024程序員節(jié)開幕
京東上萬程序員都AI用它!

程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

助力程序員告別困擾已久的夢(mèng)魘-Bug

大模型時(shí)代,程序員當(dāng)下如何應(yīng)對(duì) AI 的挑戰(zhàn)

評(píng)論