
文章來自:知加-工程師文化社區(qū)
不知你有沒有注意到蟀悦,編程并沒有非常好的自學(xué)書籍媚朦。當(dāng)然,有很多片段的解釋能從理論上指導(dǎo)各種編程語言熬芜。但是程序員們的實際行為方式呢莲镣?如果你追 Silicon Valley 這個(美國)電視節(jié)目,你就會知道涎拉,程序員也會像作家一樣在工作中受到阻礙:理查德不再睡覺,穿著衣服走進(jìn)一個游泳池的圆。但一定會有更好的辦法鼓拧。
其實,作家知道程序員遇到障礙的秘密越妈。如果你是一個程序員(無論新手還是專家)季俩,這十個寫作提示將幫助你成為一個更有效率、更具創(chuàng)造性和更自信的程序員梅掠。
這些提示來自哪里酌住?為了在教師訪談期間緩解我去年關(guān)于博士學(xué)位的內(nèi)疚感,我讀了很多關(guān)于飛機(jī)寫作的書(參見末尾的閱讀清單)阎抒。我發(fā)現(xiàn)許多書中酪我,都有適用于編程的見解和方法。
當(dāng)然且叁,這個清單是從零開始的都哭。
Tip 0:程序優(yōu)先
把編程安排在重點位置,畢竟人們整天都很忙。具體該怎么做呢欺矫?我們早上時是最有創(chuàng)意的纱新,所以讓你每天早晨的第一個小時變得神圣不可侵犯。不安排會議穆趴,不要檢查你的電子郵件或社交平臺脸爱。如果你早晨在家,甚至不要刷牙未妹。對我來說阅羹,喝杯咖啡很有必要。但此后教寂,只需要讓你自己坐在椅子上(有人說捏鱼,作家最有用的工具是膠水)。
把這段時間像一個會議一樣安排進(jìn)你的日程表酪耕,并防止這段時間免受其他任何事件的影響导梆。
Tip 1:不要害怕使用紙張
在打開電腦之前,先在腦海中勾畫出你的想法迂烁,列一個列表并在記事本上注釋看尼。《在十五分鐘內(nèi)撰寫論文》強(qiáng)調(diào)了達(dá)到零草稿的重要性盟步,而概念模板早于初稿藏斩,你已經(jīng)花了所有傍晚和晚上的時間去思考、產(chǎn)生想法却盘,現(xiàn)在只需要將它們表現(xiàn)出來狰域。
< Artist’s Way > 主張,自由的寫作能幫你成為一個更好的程序員(或者雕塑家黄橘、投資銀行家)兆览。所以什么方式對你編程有效,就用什么方式塞关。
Tip 2:建立編程計劃
人類是具有“習(xí)慣性”的生物抬探。因此,使編程成為你計劃的一部分帆赢,為它設(shè)定合理的目標(biāo)小压。這個理念來自于< Writing Down the Bones >。一段時間后當(dāng)你形成習(xí)慣椰于,如果某天沒有編程怠益,你就會覺得好像忘了什么事。
Tip 3:跟蹤想法以及bug
建立一個記錄想法和問題的日志廉羔,當(dāng)你受到阻礙或想要尋找其他事的解決方法溉痢,可以返回查找僻造。建立編程計劃(Tip 2)是第一步。但創(chuàng)造力并不總是遵循著計劃走孩饼,或者你可能正在忙于其他事情髓削。所以,盡可能地記住你的靈光乍現(xiàn)镀娶。
有人說寫作會鼓勵人更多的去寫作立膛。所以編程越多,你就會對編程產(chǎn)生越多的想法梯码。我平時總是隨身攜帶一本筆記本宝泵,以隨時記錄自己的想法。
Tip 4:交朋友
保持責(zé)任心會讓我們做得更好轩娶。在你設(shè)定目標(biāo)的周期內(nèi)保持每周自查儿奶,與大家討論編程中遇到的問題,共享資源和策略鳄抒。
例如闯捎,我在CMU做計算機(jī)視覺的朋友每個星期一早上都會在校園咖啡廳做15分鐘的常規(guī)會議。這樣的交流能親自去現(xiàn)場參加最好许溅,如果不能去瓤鼻,還可以用在線論壇。當(dāng)你向人們請教代碼問題贤重,他們可能會迫不及待的和你分享茬祷。
Tip 5:借鑒他人
就像把事情分開一般往往是把事情放在一起,程序員可以通過閱讀和修改他人代碼來為代碼開發(fā)一個“耳朵”并蝗。在< The Sense of Style >中祭犯,Stephen Pinker強(qiáng)調(diào)“好的作家是狂熱的讀者”。
與寫作(借鑒被認(rèn)為是抄襲)不同借卧,程序員將已有的庫和樣本用來支撐自己的項目是非常被鼓勵的盹憎。你可以參考這些代碼的來源,但是當(dāng)已有人弄清楚一個問題時铐刘,沒有必要重新發(fā)明輪子。
Tip 6:認(rèn)真沉思
創(chuàng)造的過程影晓,就是將你腦海中的代碼進(jìn)行結(jié)構(gòu)化镰吵,體現(xiàn)到實際中并用它們解決某個問題。想象一下挂签,在辦公室里有兩個書桌疤祭,一個用于寫作(此Tip),一個用于編輯(Tip 7)饵婆。從書桌能望向窗外勺馆,你可以異想天開、開放思考,像追逐蝴蝶一樣追逐你腦海中的想法草穆。
不要害怕散步灌灾,或者害怕嘗試可能是,也可能不是最好的最終解決方案悲柱。我最有生產(chǎn)能力的實習(xí)生之一锋喜,當(dāng)想弄清楚她代碼下一步該怎樣寫,她喜歡在CMU的走廊上走路豌鸡。編程就像寫作一樣嘿般,不僅僅是在屏幕上打字,更重要的是你腦中想的東西涯冠。就像在種植前炉奴,先為土壤施肥而慶祝,然后再澆水蛇更。
Tip 7:無情(但非卑鄙)
如果你處于編輯階段瞻赶,你經(jīng)常會“殺死你的親愛的”。這句話已經(jīng)被許多作家械荷,包括史蒂芬·金所推崇共耍。這是關(guān)于消除多余的代碼。
例如吨瞎,你可能花了很多時間讓一個代碼塊工作痹兜,但現(xiàn)在你有更好的方式來取代它。如果你真的不能忍受它颤诀,那就消除它字旭。 Google 為員工提供了失敗獎金,用于一些永遠(yuǎn)無法解決的項目(引自< How Google Works >)崖叫。所以遗淳,從你的代碼存在的根本價值出發(fā),而不是從自己的感情出發(fā)心傀。
Tip 8:對知識局限性保持警惕
我們通常不會用匯編語言編程的原因之一是它不容易被人讀取屈暗。較高級別的編程語言讓我們覺得抽象,所以我們應(yīng)該選擇有意義的抽象語言脂男。調(diào)用一些變量1和變量2對于任何其他使用你的代碼的人(特別是你自己)會事倍功半养叛,尤其是這些代碼之后還會被刪改。
寫作最大的挑戰(zhàn)之一是確保讀者能順利跟上宰翅。使用空格弃甥、評論你的代碼、花時間去創(chuàng)造能被理解的抽象和結(jié)構(gòu)汁讼。如果人們不能理解的話淆攻,你的文章(或者代碼)有多么優(yōu)秀并不重要阔墩。
Tip 9:停在一個向下的滑坡
每天早上應(yīng)該從前一天開始,每天將最后10%的時間用于準(zhǔn)備第二天的工作瓶珊。你可以為下一個代碼塊的結(jié)構(gòu)做注釋啸箫,也可以做一個事項列表。
我曾駕駛一輛換乘車艰毒,通過并停在一個向下的斜坡上筐高,我知道即使車的電池一夜之間耗完,我也能利用山的潛力來啟動引擎丑瞧。這就像在前一天晚上放好你的運動服柑土。第二天,你只要直接走就好绊汹。
將以上10點視為程序員的自學(xué)列表稽屏。編程是一個創(chuàng)造性的過程,就像寫作一樣西乖,我相信這10個提示可以讓你更有創(chuàng)意狐榔、更有成就、更不容易陷入困境获雕。
閱讀清單:
- Writing Your Dissertation in Fifteen Minutes a Day. Joan Bolker.
- The Artist’s Way. Julia Cameron.
- Writing Down the Bones. Natalie Goldberg.
- On Writing: A Memoir of the Craft. Stephen King.
- The Sense of Style. Steven Pinker.
- How to Write a Lot: A Practical Guide to Productive Academic Writing. Paul J. Silvia.
- If You Want to Write. Brenda Ueland.
- On Writing Well: The Classic Guide to Writing Nonfiction. William Zinsser.
文章來自:知加-工程師文化社區(qū)