九九八十一難,有時(shí)候,程序員真的太慘了
有這么一群人,他們上班遲到早退,工作期間也只是寫了幾行代碼。
他們談?wù)撟约河卸嗝撮_心,輕描淡寫地說(shuō)著過(guò)去了解的可怕世界如何不復(fù)存在。
他們掙錢很多,上班晚下班早,每天都能吃到免費(fèi)午餐。還可以免費(fèi)使用健身房和那些超棒的睡眠艙。
這群人擁有的工作難道不是我們夢(mèng)寐以求的工作嗎?
快讓我康康,是什么工作?
程序員。
什么?!
沒錯(cuò),就是程序員。
雖然常常被各種吐槽(其實(shí)大部分是自黑),但成為一名開發(fā)人員真的是一件很了不起的事,很多人都想進(jìn)入這個(gè)領(lǐng)域。
人們從新兵訓(xùn)練營(yíng)畢業(yè),成為常青藤名校中的佼佼者,甚至自學(xué)成才。他們付出所有這些努力,只為成為一名程序員。所以,我可以很負(fù)責(zé)任地說(shuō):
程序員的工作雖然艱苦,卻使人獲益匪淺,是個(gè)充滿成就感的職業(yè)。
還記得我得到第一份開發(fā)工作時(shí),前所未有地覺得自己是有用武之地的。那種感覺就好比你加入了某個(gè)異教團(tuán)體或者某個(gè)幫派——可見當(dāng)時(shí)我是多么的自豪。
每當(dāng)有人問(wèn)我是做什么工作的,我都會(huì)充滿自信地站好,用堅(jiān)定的聲音告訴他:“我......是一名軟件工程師。”
我很自豪,這種自豪感會(huì)發(fā)光,會(huì)感染那些我接觸過(guò)的、與我懷有同樣夢(mèng)想的人們。
大多數(shù)程序員談到工作都會(huì)展現(xiàn)光鮮亮麗的好處部分,雖然其中會(huì)夾雜些吐槽,但大部分都是往好的輝煌的部分說(shuō),極少會(huì)涉及那些磨人的內(nèi)容。所以今天,我就聯(lián)系一下我的糟糕經(jīng)歷,來(lái)和大家侃侃“程序員之慘”。
周末工作
是的,你要在周末結(jié)束前的最后一刻完成所有妨礙你沖刺的新任務(wù)。
別誤會(huì)我的意思,有的公司在團(tuán)隊(duì)管理方面效率很高,在這樣的公司你周末就不用工作了。但是,大多數(shù)開發(fā)人員的周末遲早都得貢獻(xiàn)給一定量的工作,盡管他們已經(jīng)寫了一個(gè)星期的代碼。
在管理者看來(lái),這是好事。他們認(rèn)為你在周末工作,就能完成更多任務(wù)。
有腦子的人都知道這個(gè)想法是不對(duì)的。谷歌研發(fā)出可以編寫應(yīng)用的自動(dòng)程序之前,將咖啡因轉(zhuǎn)化成代碼的程序員只能是活生生的人。這就意味著,程序員的斗志要與項(xiàng)目生產(chǎn)率和進(jìn)度成正比。
范圍蔓延
是的,因?yàn)榉秶樱乙呀?jīng)為工作搭上了不少周末時(shí)間。如果你不知道什么是范圍蔓延,那么就想象一下,一位客戶給了你大綱和細(xì)節(jié),想讓你據(jù)此設(shè)計(jì)一款應(yīng)用。
假設(shè)你每?jī)芍芏己瓦@位客戶開會(huì),回顧自己在過(guò)去兩周時(shí)間里拼命工作的成果。
范圍蔓延指的是你確實(shí)按照客戶的要求做好了這款應(yīng)用,但是現(xiàn)在客戶提出了更多的要求。客戶要求的往往是一個(gè)小變動(dòng),但這個(gè)小變動(dòng)不是該應(yīng)用的初始用例。
將用戶界面上的一個(gè)圖標(biāo)從一個(gè)屏幕移動(dòng)到另一個(gè)屏幕,或改變下拉菜單的位置,這些操作似乎沒什么大不了,但過(guò)一會(huì)兒,屏幕上就到處都是廣告。
最糟糕的是,開發(fā)人員無(wú)法終止范圍蔓延,因?yàn)閼?yīng)付客戶、協(xié)助公司與客戶進(jìn)行溝通并不是開發(fā)人員的工作。
做這些工作的是能把客戶的需求變成代碼的經(jīng)理。
范圍蔓延意味著你的短期目標(biāo)、故障和用戶故事都要發(fā)生變化。所以,你永遠(yuǎn)也完不成任務(wù)。你明白這是什么意思吧?
與時(shí)俱進(jìn)
在我看來(lái),這對(duì)于程序員來(lái)說(shuō)是最有挑戰(zhàn)性的。要想成為一名優(yōu)秀的程序員,你必須適應(yīng)變化,能夠快速學(xué)習(xí)使用新工具。這就意味著,你要持續(xù)關(guān)注那些你的應(yīng)用程序和組織能用到的新技術(shù)。
這是很累人的,尤其是你年紀(jì)逐漸變大,而且做了很久的編程工作之后。
以Angular為例。它的發(fā)布周期是六個(gè)月。也就是說(shuō),Angular每六個(gè)月都會(huì)發(fā)布新產(chǎn)品。我知道新產(chǎn)品的發(fā)布不會(huì)像Angular 1到Angular 2一樣有那么大的變化,但是要想理解它們的基本工作原理也確實(shí)要費(fèi)一番功夫。
哪個(gè)工程師會(huì)使用他們不了解的工具呢?
持續(xù)關(guān)注組織內(nèi)外的技術(shù)變化還會(huì)讓你更有價(jià)值。如果公司來(lái)了一批更加年輕、精力更充沛的開發(fā)人員,你就會(huì)失去競(jìng)爭(zhēng)力。此外,如果你在為一家創(chuàng)新公司工作,他們會(huì)更看重那些會(huì)使用比較新、比較最出色工具的工作人員。
以上幾點(diǎn)只是發(fā)生在我程序員生涯中的一些不好的事情。
大部分時(shí)間,當(dāng)程序員的好處還是遠(yuǎn)多于壞處的。
雖然不好的方面依然存在……
但是,如果你能幸運(yùn)地在一家超棒的公司工作,可以免費(fèi)使用健身房,免費(fèi)享用午餐,工作時(shí)間靈活,還有睡眠艙,那么你很好的選擇就是長(zhǎng)期在那里工作,不要跳槽!不要跳槽!不要跳槽!(重要的事情說(shuō)三遍)
因?yàn)?hellip;…
那樣的公司實(shí)在是太少了。