我熟悉編程語言,但是不知道寫什么程序

本文翻譯自http://www.devdungeon.com/content/i-know-how-program-i-dont-know-what-program?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=social

原文標題:"I know how to program, but I don't know what to program"

我熟悉編程語言,但是不知道寫什么程序

我看到新手開發者總伴隨這一個問題。他們花費了一些時間學習了一兩門編程語言的基礎,做練習題也很順利,但是他們不知道如何運用自己學到的東西。這個問題通常描述為:“我熟悉編程語言,但是不知道寫什么程序”。通常的回復是:“做編程挑戰”、“參加一個開源項目并貢獻代碼”、或者“做一個游戲”。

做編程挑戰是一個很好的智力練習,但是卻很難幫助一個人學習如何開始一個項目。對一個開源項目貢獻代碼是一種方法。你也許能夠學習到一個真正的項目的結構,并且能夠提升你的語言能力,但是學不到一個項目的完整周期。有些項目對新手來說過于復雜,甚至可以說是恐怖。做一個游戲是另一種方法。游戲是很有趣的!我就是通過用QBASIC語言編寫游戲來開始的。但是又會出現同一個問題."我想要編寫一個游戲,但是不知道寫一個什么游戲"。

作為教授音樂同時也教授編程的人,我發現音樂學生有同樣的問題。“我知道所有的和弦,我十指靈活,但是不知道寫什么樂曲”。對于音樂,其實我們有一個很好的答案。學習如何創造是有套路的。音樂家通常來說并不是一開始就寫自己的樂曲。有些音樂家一種都沒有編寫過自己的樂曲,而是演奏他人的樂曲。在編程領域,看法稍稍有些不同。

在編程社區中,通常的看法是:“不要重復發明輪子”。一想到要重寫現有的一個成熟穩定的庫,任何人都會皺眉頭。通常來說這是一個很好的規則,但是對新手來說,不應該抗拒重新發明輪子。為了學習或者練習,重新造一個輪子是完全OK的!這是學習的一個重要組成部分。例如,編寫你自己的ls,mv,wget,或者cowsay命令。如果你想要向游戲領域發展,那么嘗試做自己版本的Pong,Tetris或者Space Invaders。他們不需要擁有和原版的完全相同的特性或者一定要完全相同,但是你從零開始實現你的目標,并且你做到了。

不要認為你在開始寫程序之前必須要有世界上最好的創意。我在音樂家身上看到過相同的心態。嘗試第一次就寫出一曲杰作,把所有精力都投入到一首曲子,結果沒有站在更遠的角度看待問題。更遠的角度就是你將會寫出很多很多樂曲,并不是只有這一首。你寫出的第一首樂曲可能會很爛,你有可能直接把它揉成一團。這是OK的!不要嘗試第一次就寫出碉堡炸裂震驚全世界的10分鐘的史詩篇章。你需要學習寫樂曲的過程,從你自己的經歷中學習,每周投入時間來練習。在寫出優秀的程序之前,你首先會寫出糟糕的程序。克服它,經歷它,獲取經驗,你就可以在任何部分隨需創造。(Get over it, get through it, and get the experience so you can start to improvise on demand in any key.)

我們讓人們以“Hello,World”開始是有原因的,因為在他們旅程的這一點,實現這個目標意味著他們掌握了必要的基礎。你理解了如何編譯,如何運行,如何調用一個方法,如何傳遞一個參數。能夠獨立實現另一個已存在的程序,在你學習編程的路上也是一個巨大的進步,甚至可以說和“Hello,World”一樣重要。當你完成了這個目標時,說明你又克服了一些困難。你需要搞明白從哪里開始,如何做好計劃,如何組織你的程序,如何處理bug,自己親自使用,最終打包你的程序,讓它變成一個可用的東西。即使實現一個很小的程序,你也能學習到這個完整的過程。

你也許好奇為什么自己實現一個程序的克隆版本怎么會幫助你產生新的想法。和音樂類似,它需要創造力。在音樂領域,為什么演奏別人的音樂能幫助你學習如何寫自己的音樂呢?首先,你要了解別人是怎么做的。你需要理解別人如何組織樂曲,別人使用了什么音樂范式。當你學習過很多次別人的樂曲之后,你就能以一個更廣闊的視角來看待問題,隨后你就有更多的知識可以利用。你把從不同地方學到的小范式組合在一起,并且使用一些你見到過的其他范式。你也許會調整這些范式,組合它們,或者完全打亂它們。就像人們說的,如果你要打破規則,首先要學會規則。在編程領域,我們有類似的規則,例如MVC。這是一個穩定并且被廣泛接受的編程范式。在音樂中,我們有類似的東西。例如 I-V-vi-IV。當然這不是唯一的一個,但是是一個很好的例子。

簡單來說,練習和創造是連接在一起的。創造力這個概念在編程領域常常被人們忽視,實際上它很重要。你注意過多少個程序員同時又是音樂家呢?音樂涉及很多技術分析,結構組織,以及范式,但是人們通常認為音樂是純粹的創意努力的結果。編程經常被視為是純粹的技術行為,但實際上它常常伴隨著創意的功勞。你可以通過復寫其他的程序來培養你的創造力。在你重寫的時候,你會發現你以一個新的方式來調整這個程序,或者自己添加一個新的功能。它同樣會啟發你關于全新項目的想法。創造力會在這個過程中顯現,但是你首先要學著把前面的音樂彈奏出來。

經過一段時間,你會發現你可以以編程的想法看待幾乎任何事物。你可以自動執行任務、解決實際的問題。你將會有一個長長的想法清單,只是苦于沒時間去實現。你將有能力即時解決問題。“哦,這里有個電子表格,有100張表的數據需要格式化,可以把他們分隔到不同的文件中,轉化為一個csv文件。就這么做!” 不要因為想要一下子做出一個最好的項目而束手不前。寫出你能寫出的程序。關于其他新程序的想法會隨之產生。

你們有多少人曾經處于“我不知道編寫什么程序”的狀態中?你怎么解決這個問題的?你對其他處于這種狀況的人有什么建議呢?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,185評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,656評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,647評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,446評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,951評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,189評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,718評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,800評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,419評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,420評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,755評論 2 371

推薦閱讀更多精彩內容