不知你有沒有注意到,程式設計並沒有非常好的自學書籍。當然,有很多片段的解釋能從理論上指導各種程式語言。但是程式設計師們的實際行為方式呢?如果你追 silicon valley 這個(美國)電視節目,你就會知道,程式設計師也會像作家一樣在工作中受到阻礙:理查德不再睡覺,穿著衣服走進乙個游泳池。但一定會有更好的辦法。
其實,作家知道程式設計師遇到障礙的秘密。如果你是乙個程式設計師(無論新手還是專家),這十個寫作提示將幫助你成為乙個更有效率、更具創造性和更自信的程式設計師。
這些提示來自**?為了在教師訪談期間緩解我去年關於博士學位的內疚感,我讀了很多關於飛機寫作的書(參見末尾的閱讀清單)。我發現許多書中,都有適用於程式設計的見解和方法。
當然,這個清單是從零開始的。
tip 0:程式優先
把程式設計安排在重點位置,畢竟人們整天都很忙。具體該怎麼做呢?我們早上時是最有創意的,所以讓你每天早晨的第乙個小時變得神聖不可侵犯。不安排會議,不要檢查你的電子郵件或社交平台。如果你早晨在家,甚至不要刷牙。對我來說,喝杯咖啡很有必要。但此後,只需要讓你自己坐在椅子上(有人說,作家最有用的工具是膠水)。
把這段時間像乙個會議一樣安排進你的日程表,並防止這段時間免受其他任何事件的影響。
tip 1:不要害怕使用紙張
在開啟電腦之前,先在腦海中勾畫出你的想法,列乙個列表並在記事本上注釋。《在十五分鐘內撰寫**》強調了達到零草稿的重要性,而概念模板早於初稿,你已經花了所有傍晚和晚上的時間去思考、產生想法,現在只需要將它們表現出來。
< artist』s way > 主張,自由的寫作能幫你成為乙個更好的程式設計師(或者雕塑家、投資銀行家)。所以什麼方式對你程式設計有效,就用什麼方式。
tip 2:建立程式設計計畫
人類是具有「習慣性」的生物。因此,使程式設計成為你計畫的一部分,為它設定合理的目標。這個理念來自於< writing down the bones >。一段時間後當你形成習慣,如果某天沒有程式設計,你就會覺得好像忘了什麼事。
tip 3:跟蹤想法以及bug
建立乙個記錄想法和問題的日誌,當你受到阻礙或想要尋找其他事的解決方法,可以返回查詢。建立程式設計計畫(tip 2)是第一步。但創造力並不總是遵循著計畫走,或者你可能正在忙於其他事情。所以,盡可能地記住你的靈光乍現。
tip 4:交朋友
保持責任心會讓我們做得更好。在你設定目標的週期內保持每週自查,與大家討論程式設計中遇到的問題,共享資源和策略。
tip 5:借鑑他人
就像把事情分開一般往往是把事情放在一起,程式設計師可以通過閱讀和修改他人**來為**開發乙個「耳朵」。在< the sense of style >中,stephen pinker強調「好的作家是狂熱的讀者」。
tip 6:認真沉思
創造的過程,就是將你腦海中的**進行結構化,體現到實際中並用它們解決某個問題。想象一下,在辦公室裡有兩個書桌,乙個用於寫作(此tip),乙個用於編輯(tip 7)。從書桌能望向窗外,你可以異想天開、開放思考,像追逐蝴蝶一樣追逐你腦海中的想法。
不要害怕散步,或者害怕嘗試可能是,也可能不是最好的最終解決方案。我最有生產能力的實習生之一,當想弄清楚她**下一步該怎樣寫,她喜歡在cmu的走廊上走路。程式設計就像寫作一樣,不僅僅是在螢幕上打字,更重要的是你腦中想的東西。所以在種植前,先為土壤施肥而慶祝,然後再澆水。
tip 7:無情(但非卑鄙)
如果你處於編輯階段,你經常會「殺死你的親愛的」。這句話已經被許多作家,包括史蒂芬·金所推崇。這是關於消除多餘的**。
例如,你可能花了很多時間讓乙個**塊工作,但現在你有更好的方式來取代它。如果你真的不能忍受它,那就消除它。 google 為員工提供了失敗獎金,用於一些永遠無法解決的專案(引自< how google works >)。所以,從你的**存在的根本價值出發,而不是從自己的感情出發。
tip 8:對知識侷限性保持警惕
我們通常不會用組合語言程式設計的原因之一是它不容易被人讀取。較高階別的程式語言讓我們覺得抽象,所以我們應該選擇有意義的抽象語言。呼叫一些變數1和變數2對於任何其他使用你的**的人(特別是你自己)會事倍功半,尤其是這些**之後還會被刪改。
另外還有一點可以通過自身的學習來獲取一大進步。
究竟有哪些乾貨呢?先給你們乙個目錄:
獲取方式:
免費獲取資料途徑:共眾平台 「程式設計師程式設計」。(***)
shell 指令碼程式設計的10 個最佳實踐
每乙個在unix linux上工作的程式設計師可能都擅長shell指令碼程式設計。但大家解決問題的方式卻不盡相同,這要取決於對專業知識的掌握程度 使用命令的種類 看待問題的方式等等。對於那些處在shell指令碼程式設計初級階段的程式設計師來說,遵循一些恰當的做法可以幫助你更快 更好的學習這些程式設計...
關於 shell 指令碼程式設計的10 個最佳實踐
每乙個在unix linux上工作的程式設計師可能都擅長shell指令碼程式設計。但大家解決問題的方式卻不盡相同,這要取決於對專業知識的掌握程度 使用命令的種類 看待問題的方式等等。對於那些處在shell指令碼程式設計初級階段的程式設計師來說,遵循一些恰當的做法可以幫助你更快 更好的學習這些程式設計...
關於 shell 指令碼程式設計的10 個最佳實踐
每乙個在unix linux上工作的程式設計師可能都擅長shell指令碼程式設計。但大家解決問題的方式卻不盡相同,這要取決於對專業知識的掌握程度 使用命令的種類 看待問題的方式等等。對於那些處在shell指令碼程式設計初級階段的程式設計師來說,遵循一些恰當的做法可以幫助你更快 更好的學習這些程式設計...