1. 程式人生 > >又是一年畢業季——程式設計師的苦與樂

又是一年畢業季——程式設計師的苦與樂

又是一年畢業季,一大波程式設計師又將進入戰場。 不知不覺間距離畢業的念頭已經一隻手都數不過來了,想想上一次在學校的日子還是在21世紀10年代。在程式設計師這個行業也摸爬滾打好幾年了。在這一大波程式設計師進入戰場之前,談談這些年感受到的苦與樂。希望想要入坑或即將入坑的同學們,慎重考慮! ### 程式設計師樂趣 我想程式設計師這個職業最大的樂趣a在於其並不是一個完全重複性的職業。寫程式、開發軟體,不是一個簡單的重複性的肌肉勞動,更多的是腦力勞動。相比於工廠生產線上那日復一日年復一年的重複性勞動,我想,從事腦力工作人是幸福的,雖然它們可能會掉更多的頭髮。 ![](https://hunter-image.oss-cn-beijing.aliyuncs.com/%E5%8F%88%E6%98%AF%E4%B8%80%E5%B9%B4%E6%AF%95%E4%B8%9A%E5%AD%A3/%E8%84%B1%E5%8F%91.png) #### 創造的快感 這種非重複的勞動會有很大的創造性,而創造本身就可以可以帶給人很純粹的快樂,就像小孩可以不知飢餓的玩泥巴,畫家可以為了新作可以廢寢忘食、建築師可以為了設計圖而不眠不休一樣,程式設計師也可以為了程式的完成而通宵達旦。 我經常會跟朋友開玩笑說,程式設計師也是“藝術家”。其實仔細想想畫家畫畫、音樂家創造音樂、作家寫出文章......他們都是一個無中生有、創作的過程。而程式設計師寫程式、做軟體,同樣是一個無中生有,是一個創造事物的過程。為什麼不能稱為藝術家呢? ![](https://hunter-image.oss-cn-beijing.aliyuncs.com/%E5%8F%88%E6%98%AF%E4%B8%80%E5%B9%B4%E6%AF%95%E4%B8%9A%E5%AD%A3/%E7%A5%9E%E8%AF%B4%E8%A6%81%E6%9C%89%E5%85%89.jpg) #### 魔術般的力量 創造的過程會體現出一種魔術般的力量,將一個個細小的零部件通過不同的方式組裝起來,看著它們精妙的執行,並且得到自己預期的結果。你就想一個掌控全域性的指揮著,整個過程散發著迷人的魅力。這種掌控一切的感覺讓人迷戀。 創造的過程可以給人很純粹的快樂,創造的成果則會給人很大的成就感,看著我們敲出的一行行程式碼能列印結果,繪製圖形,發出聲音......神話中魔術般的場景,在我們這裡成為了現實。 而如果我們創造出的東西可以被其他人所使用,可以給他人帶來幫助,那麼它會給我們帶來更大的愉悅感。快樂有時源於我們是一個有用的人,我們可以做出對他人有用的東西。每個人內心深處都會渴望自己被社會被他人所需要的。沒有什麼比看著我們的勞動成果被人所需要,並可以給予他人幫助更令人開心的事了。 ![](https://hunter-image.oss-cn-beijing.aliyuncs.com/%E5%8F%88%E6%98%AF%E4%B8%80%E5%B9%B4%E6%AF%95%E4%B8%9A%E5%AD%A3/%E9%AD%94%E6%9C%AF.jpg) #### 學習的樂趣 學習使我快樂! 正是由於程式設計師工作的不重複性,創造性。你需要不斷的進行學習。學習新的思想、新的技術...... 而學習新事物的本身就是充滿樂趣的。而這一點也是在畢業以後從事了這個行業才感受到的,在學校的時候總是被逼著學,因此對學習充滿了抗拒。而工作以後更多的是出於自願、出於興趣。每學習到一個新的技能、新的知識點,總會有種莫名的喜悅。以至於工作越久越發懷念與羨慕那學校的時光,可惜卻再也回不去了。 ![](https://hunter-image.oss-cn-beijing.aliyuncs.com/%E5%8F%88%E6%98%AF%E4%B8%80%E5%B9%B4%E6%AF%95%E4%B8%9A%E5%AD%A3/%E5%AD%A6%E4%B9%A0%E4%BD%BF%E6%88%91%E5%BF%AB%E4%B9%901.gif) ### 程式設計師的苦惱 程式設計師的工作是充滿樂趣的,但其中卻也包含了許多苦惱。 #### 枯燥沉悶的勞動 萬丈高樓平地起,也都是工人們一塊一塊磚蓋起來的。程式與軟體同樣如此。再龐大的軟體都是一行行程式碼寫出來的。而與建築師所不同的是,建築師只需要設計,由工人們負責執行。而程式設計師大多數時候還需要自己去親自實現自己的設計,甚至是他人的設計。創造是令人愉悅的,實現的過程卻也是枯燥而沉悶。 #### 繁雜瑣碎的Bug 程式的創造必然會產生其附屬產物——Bug,儘管這個產物你並不想要,卻也是無法避免的。你必須時候準備好迎接它,並要有耐心去尋找它產生的原因,花費大量的時間查錯、除錯,並解決它。不管它是不是你所創造出來的。 #### 身不由己的無奈 程式設計師這個職業有很多身不由己的無奈。 雖然程式是由你來創造,很多時候卻必須由他人來設定目標,供給資源,提供資訊。 很多時候我們也不能決定自己的工作環境、工作時間。 我們必須在有限的時間和有效的資源範圍內,尋找解決實際問題的切實可行方案。 有些時候我們不得不依賴一些他人的東西。有的時候這是一件非常痛苦的事情,往往這些程式設計得並不合理,實現拙劣,釋出不完整(沒有原始碼或測試用例),或者文件記錄得很糟。 有些時候我們必須按照別人的設計進行創造,儘管這些設計糟糕的像坨屎。 有些時候我們不得不在一個大的團隊系統中扮演一個螺絲釘的角色,你不得不臣服於既有的規則,儘管你有很多的想法、很優秀的設計,卻也是有心殺賊無力迴天 ...... ![](https://hunter-image.oss-cn-beijing.aliyuncs.com/%E5%8F%88%E6%98%AF%E4%B8%80%E5%B9%B4%E6%AF%95%E4%B8%9A%E5%AD%A3/%E6%97%A0%E5%A5%88.png) #### 沒有回報的失落 我曾經在我第一家公司的產品上投入了大量的心血,投入了無數個加班的日日夜夜,投入了我最好的幾年青春,而最終這個我付出了那麼多的產品卻因為種種原因沒能走向市場。你必須也只能接受這種結果,當投入了大量辛苦的勞動,產品在即將完成或者終於完成的時候,卻已顯得陳舊過時。也可能是同事和競爭對手已在追逐新的、更好的構思......。 #### 不斷學習的壓力 在這飛速發展的社會,產品、技術的發展都是日新月異、優勝劣汰。因此你必須不斷地學習,學習雖然會給我們帶來樂趣,卻也會給我們帶來很大的壓力。也許二十多歲你還能有精力、有能力去學習去接受新的事物,那麼三十歲、四十歲、五十歲呢?面對中年壓力,頭腦退化的你是否又有今天的精力、體力與勇氣呢? ![](https://hunter-image.oss-cn-beijing.aliyuncs.com/%E5%8F%88%E6%98%AF%E4%B8%80%E5%B9%B4%E6%AF%95%E4%B8%9A%E5%AD%A3/%E5%AD%A6%E4%B9%A0%E4%BD%BF%E6%88%91%E5%BF%AB%E4%B9%90.jpg) #### 前期職業的悲哀 與教師、醫生等越老越吃香的後期發力的職業不同,程式設計師無疑是一個前期發力的職業。也許有很多人羨慕程式設計師行業略高的薪資。卻不知這是用時間、用青春、用頭髮、用身體換來的。越來越多的人的湧入,使得這個行業的競爭壓力越來越大,也助長了一些不正之風,無償的加班,無底線的壓榨勞動力......,二十多歲的年紀尚可敢打能拼,而三十歲以後頭腦,身體,時間,精力都已無與年輕人競爭之力。越來越多的人面臨失業,也正是因為前期透支了過多的時間與精力,沒有時間去學習發展別的技能。面對失業的人生只能一無所措。 《人月神話》一書,把這個行業比作一個焦油坑,無論你是誰,無論你是否強大,只要陷入其中,就難以自拔,束縛到底。這就是程式設計師,一種樂趣和苦惱共存的創造性活動。於有些人而言其中的樂趣大於苦惱,而對有些人而言其中的苦惱大於樂趣. 這就是程式設計師,一個許多人苦苦掙扎,卻痛並快樂著的職業!