商業內幕最近發表了一篇文章說做程式設計師壓力山大,很多人都快瘋了。文中陳述了幾個典型的罪狀:騙子綜合症,加班加點,精疲力竭等。作者指出,程式設計師的工作壓力的根源通常是源自混亂的管理,但越來越多的壓力開始來自程式設計師社群自身,社群中開始形成一種文化,將加班加點當成判斷一個程式設計師是否具有奉獻精神的石蕊試劑,強加到程式設計師身上。換句話說,如果你不在下班時間繼續寫程式碼,你就不可能成為一名合格的程式設計師。跟這些壓力相呼應的是急速革新的各種新技術、新框架、新語言、新平臺、新程式包、新 SDK 等的不斷出現,就如火上澆油。
可事實上問題不在於此。程式設計,就跟寫作、繪畫、作曲一樣,首先是一種創造性的活動,而不是一個種技術工作。當然,對一種技術或程式語言的不斷練習和保持熟悉很重要,這其實就是在學習使用工具和技法,但它並不會讓你本質上變成一名更優秀的程式設計師。它只是讓你能更熟練的使用工具。而能讓你成為更優秀的程式設計師的是學會如何思考問題,因為最終你是把腦子裡思考出的邏輯轉換成了一系列操作計算機的指令,讓計算機遵照指令解決問題。而學習如何正確的思考——如何抽象歸納,如何組合,如何分析資訊,如何自我反省——可以通過各種方式,遠非只有程式設計一種。Paul Graham 在他的精彩著作《黑客與畫家》一書中說:
我發現那些最有價值的靈感的源泉都不是那些跟“計算機”這個詞相關的領域,而是那些跟動手創造相關的領域。繪畫就是一個比計算機理論能提供更豐富靈感的思想源泉。
擴充其它領域的技術,培養除程式設計之外的其它愛好,這會給你的日常工作帶來巨大的幫助。程式設計師根本不需要沒日沒夜的寫程式碼。你應該把這些時間用於和他人交流,和大家一起邊喝咖啡(或你喜愛的東西)邊編碼、閱讀、討論。你應該把這些時間用於跑步或舉重。身體鍛鍊給大腦補充氧氣,滋養這個最神奇的器官,這才是你需要的。我三年前開始跑步。呼吸新鮮的空氣、沐浴清新的陽光讓我變得更加快樂,跑出幾公里遠離繁雜的瑣事,我的腦子有了更多的時間來激發靈感。
關鍵是,關注心靈,關注自己,這能讓你成為一個更好的程式設計師。你可以無止境的學習新語法,新工具,或新什麼東西,但是,如果所有你做的只是程式設計,你實際上在跟自己背道而馳。有時候你需要全力以赴,但那是當程式中有問題需要救火時,是特殊情況,而不是日常。如果你的駐地總是有火災,那你應該換個地方。有時候你需要埋頭苦幹,幹上幾周甚至幾個月,為了讓你的理想變成現實。然後是休息。相反,一味的玩命苦幹只能換來越來越少的回報,是完全與成為一名更好的程式設計師的願望背道而馳。去年 11 月,我參加了 NaNoWriMo (National Novel Writers Month),這是一個非正式的比賽,參賽者要求在 30 天裡寫出一本 5 萬字左右的書。我每天早起,花幾個小時寫作,然後上 8 個多小時的班,然而晚上繼續寫作。每天如此。堅持了 30 天。月末的時候我的身體開始透支,我病了。但這對我是有必要的,我一直有個願望要寫一本小說。之後我幾個月沒有寫任何東西。我需要休息,要恢復平常態,要以此進步。軟體開發與此無二。
商業內幕的這篇文章同時還饒有興趣的發現“女性程式設計師經常坦白說在遭受騙子綜合徵的折磨…但越來越多的男性程式設計師也開始表示深有同感。”20 世紀和 21 世紀工作中的性別問題峰迴路轉,最終男性也遇到類似的問題。女性第一次看到了競爭的問題侵擾男性,尤其是在那些傳統的以男性為中心的行業。我相信這是生存競爭必然導致的現象,但不應出現在一個富足而且靈活的社會中。男人們看到女性對工作上非人性的現狀的反應,也加入了她們的行列一起表達對現狀的不滿情緒。隨著更多的女性進入到程式設計行業,她們給這些男性程式設計師帶來了一種新的旁觀者的視角。女性需要去理解她們發現的這些不幸的行業現狀是男性程式設計師以前必須每天面對的、接受的。但事實上程式設計師們完全不必如此,這是一種具有強大力量的認識。
不要再讓自己精疲力竭,這樣不會讓你成為更好的程式設計師。做你愛做的事,愛上更多的興趣。你將會變的更優秀。
英文原文:How to be a sane programmer