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