|
英文原文:Don't Call Yourself A Programmer, And Other Career Advice
每年都有無數(shù)年輕程序員,加入軟件行業(yè)。
他們在學(xué)校里學(xué)過編程,但是對(duì)這個(gè)行業(yè)的現(xiàn)實(shí)一無所知。
Patrick McKenzie 是美國一家小軟件公司的老板,他寫了一篇長文,介紹這個(gè)行業(yè)的一些實(shí)際情況。我看了以后很感慨,有些地方很受啟發(fā)。我選擇了一部分,翻譯如下。
一、90%的編程工作來自內(nèi)部軟件
(90% of programming jobs are in creating Line of Business software)
計(jì)算機(jī)專業(yè)的學(xué)生,可能有一種印象,覺得大部分程序員,都在編寫公開出售的軟件或者通用軟件。
這種看法是不對(duì)的。大部分程序員,實(shí)際上編寫的是不公開的企業(yè)內(nèi)部軟件,比如追蹤費(fèi)用的軟件、優(yōu)化裝運(yùn)成本的軟件、幫助記賬的軟件、設(shè)計(jì)新部件的軟件、計(jì)算保單價(jià)格的軟件、識(shí)別惡意訂單的軟件等等。
各種各樣的商業(yè)公司,開發(fā)內(nèi)部軟件,解決它們自己的問題。市場上對(duì)程序員的大部分需求來源于此,只有極少數(shù)程序員直接編寫面向外部顧客的軟件。
內(nèi)部軟件的開發(fā),通常非常乏味,令人厭倦。因?yàn)樗鼈兊募夹g(shù)復(fù)雜性低、技術(shù)決策非常保守、預(yù)算很少、缺乏長遠(yuǎn)考慮。但是,世界上大部分編程工作都是這種。
二、別人雇你的目的,是讓你創(chuàng)造利潤,不是讓你編程
(Engineers are hired to create business value, not to program things)
商業(yè)公司最關(guān)心的(或者說唯一在乎的)事情,就是增加收入、降低成本。因此,它們實(shí)際上需要的不是程序員,而是能夠幫助它們增加收入、降低成本的人。
開發(fā)優(yōu)美的軟件,解決技術(shù)難題,編寫沒有 bug 的代碼,這些都不是商業(yè)公司的目的。它們雇傭你,是為了讓你幫它們完成某個(gè)可以增加收入、降低成本的項(xiàng)目,而不是因?yàn)槟闶?geek。
你個(gè)人對(duì)于公司的唯一價(jià)值,就在于你能多大程度上為它們增加收入、降低成本。
三、不要自稱為程序員
(Don't call yourself a programmer)
很多公司的經(jīng)理不懂計(jì)算機(jī),在他們心目中,"程序員"就是一群高成本的勞動(dòng)力,只會(huì)在一臺(tái)復(fù)雜的機(jī)器上干一些難懂的事情。
如果你自稱為"程序員",當(dāng)公司需要壓縮成本的時(shí)候,某些經(jīng)理首先就會(huì)想到解雇你。有一家公司叫 Salesforce,口號(hào)是"沒有軟件",意思就是如果經(jīng)理們購買了他們的服務(wù),就不再需要?jiǎng)e的軟件管理銷售業(yè)務(wù)了,也就是說,不再需要自己雇傭程序員了。
正確的做法是,你應(yīng)該把自己描述成與增加收入、降低成本有關(guān)系的人,比如"xx 產(chǎn)品的開發(fā)者"或"改進(jìn)者"。有一個(gè) Google Adsense 程序員的自我介紹,是這樣寫的:"Google 公司97%的收入,與我的代碼有關(guān)。"
四、不要限定自己
(You are not defined by your chosen software stack)
年輕學(xué)生經(jīng)常會(huì)問,應(yīng)該選擇哪種語言或平臺(tái)?學(xué)會(huì) Java,是不是比學(xué)會(huì) .NET 容易找工作?
過分強(qiáng)調(diào)某一種語言或平臺(tái),都是不必要的。如果你把自己限定為 Java 程序員或 .NET 程序員,你就已經(jīng)輸了,因?yàn)槭紫饶悴粦?yīng)該自稱為程序員(理由見上一點(diǎn)),其次這種限定使得你自動(dòng)被排除在世界上大多數(shù)編程工作之外。
現(xiàn)實(shí)生活中,學(xué)會(huì)一種新語言,只需要幾個(gè)星期,然后再過半年到一年,你就會(huì)變成老手。那時(shí),根本沒人在乎你以前用什么語言。
天才程序員是很少的,可是需要天才程序員的工作機(jī)會(huì)卻很多很多,大多數(shù)場合都是需求遠(yuǎn)遠(yuǎn)大于供給。這意味著,即使你不是天才程序員,只要你是一個(gè)優(yōu)秀工程師,那些招聘公司也會(huì)立刻錄用你,因?yàn)樗鼈冎勒衅傅教觳懦绦騿T的機(jī)會(huì)微乎其微。(重復(fù)一遍,所謂"優(yōu)秀工程師",就是你的履歷上有一連串增加收入、降低成本的記錄。)
某些公司的人事部門,會(huì)根據(jù)某個(gè)關(guān)鍵詞(比如 Java 或 .NET)過濾簡歷。雖然這樣的公司根本不值得去,但是如果你真的想過這一關(guān),也很容易:投入幾個(gè)晚上和周末,在你當(dāng)前的項(xiàng)目中設(shè)法用到這個(gè)關(guān)鍵詞,然后再把它寫進(jìn)簡歷就行了。
五、如何提高求職時(shí)的談判能力?
(How do I become better at negotiation?)
(1)記住你不是在求職,不是在展示編程技巧,而是在推銷某種商業(yè)需求(增加收入或降低成本)的解決方案。
(2)面試時(shí),要有自信,要平等的對(duì)話。你要的是一個(gè)互利的錄用合同,不要每次對(duì)方提出要求,你都說 Yes。
(3)雇主可能會(huì)問"你的上一份工資是多少",他們其實(shí)在說"給我一個(gè)理由,壓低你的報(bào)酬"。你要想好如何適當(dāng)?shù)鼗卮疬@個(gè)問題。
(4)要還價(jià)。這里不僅僅指錢,還指其它你關(guān)心的方面。如果你無法要求更高的薪水,那就試著要求更多的假期。
(5)在對(duì)方?jīng)Q定錄用你以后,才開始討論薪水。因?yàn)槟菚r(shí),他們已經(jīng)在你身上,投入了大量的時(shí)間和金錢,產(chǎn)生了一定的成本,此時(shí)他們可能覺得一些小問題已經(jīng)不值得再糾纏了,比如每年的工資增加幾千元。
六、創(chuàng)業(yè)公司是否適合應(yīng)屆畢業(yè)生?
(Are startups great for your career as a fresh graduate?)
如果你一畢業(yè)就加入創(chuàng)業(yè)公司,最可能的結(jié)果是,接下來幾年你都工作得非常辛苦,然后公司悲慘地失敗了,你失業(yè)了,不得不又去另一家創(chuàng)業(yè)公司工作。
如果你真的想去創(chuàng)業(yè)公司,應(yīng)該首先找一家大公司干上兩年,攢一點(diǎn)錢,積累一些經(jīng)驗(yàn),然后精心挑選后再去創(chuàng)業(yè)公司。
在創(chuàng)業(yè)公司工作,一般情況下,你遇到的都是創(chuàng)業(yè)者。他們大多數(shù)人沒有能力在兩年后雇傭你;而在大公司工作,你遇到的都是其他大公司的人,他們中很多人將來有能力雇用你或者幫你介紹工作。
七、在創(chuàng)業(yè)公司工作是否值得推薦?
(So would you recommend working at a startup? )
選擇創(chuàng)業(yè)公司,就是選擇一條職業(yè)道路,而不是選擇一種生活方式。可惜很多人把這兩者顛倒了,他們推薦創(chuàng)業(yè)公司,實(shí)際上是在推薦一種你感興趣的生活方式。
如果你確實(shí)喜歡這種生活方式,老實(shí)說,你在大公司里也可以得到它們。在許許多多大公司里,你都有機(jī)會(huì)鉆研最新的技術(shù),而且還能5點(diǎn)半準(zhǔn)時(shí)回家照顧孩子。
八、溝通技能是最重要的職業(yè)技能
(Your most important professional skill is communication)
前面說過,工程師被雇傭,不是因?yàn)闀?huì)編程,而是因?yàn)槟軌騽?chuàng)造商業(yè)價(jià)值。所以,你讓人們相信你能創(chuàng)造價(jià)值,這是幫助你找到工作的最重要的能力。這種能力與你真的能創(chuàng)造多少價(jià)值,實(shí)際上聯(lián)系不是很緊密。
我認(rèn)識(shí)的一些最優(yōu)秀的程序員,往往拙于表達(dá)。因此,別人不是不想與他們一起工作,就是低估了他們的價(jià)值。相反地,如果你看上去很會(huì)編程,并且很善于表達(dá),別人就會(huì)真的這樣看待你。
it知識(shí)庫:不要自稱為程序員,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。