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

本文翻譯自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"

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

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

做編程挑戰(zhàn)是一個很好的智力練習胳嘲,但是卻很難幫助一個人學習如何開始一個項目厂僧。對一個開源項目貢獻代碼是一種方法。你也許能夠?qū)W習到一個真正的項目的結(jié)構(gòu)了牛,并且能夠提升你的語言能力颜屠,但是學不到一個項目的完整周期。有些項目對新手來說過于復雜鹰祸,甚至可以說是恐怖甫窟。做一個游戲是另一種方法。游戲是很有趣的蛙婴!我就是通過用QBASIC語言編寫游戲來開始的粗井。但是又會出現(xiàn)同一個問題."我想要編寫一個游戲,但是不知道寫一個什么游戲"街图。

作為教授音樂同時也教授編程的人浇衬,我發(fā)現(xiàn)音樂學生有同樣的問題〔图茫“我知道所有的和弦耘擂,我十指靈活,但是不知道寫什么樂曲”絮姆。對于音樂醉冤,其實我們有一個很好的答案秩霍。學習如何創(chuàng)造是有套路的。音樂家通常來說并不是一開始就寫自己的樂曲蚁阳。有些音樂家一種都沒有編寫過自己的樂曲铃绒,而是演奏他人的樂曲。在編程領(lǐng)域螺捐,看法稍稍有些不同颠悬。

在編程社區(qū)中,通常的看法是:“不要重復發(fā)明輪子”归粉。一想到要重寫現(xiàn)有的一個成熟穩(wěn)定的庫椿疗,任何人都會皺眉頭。通常來說這是一個很好的規(guī)則糠悼,但是對新手來說届榄,不應該抗拒重新發(fā)明輪子。為了學習或者練習倔喂,重新造一個輪子是完全OK的铝条!這是學習的一個重要組成部分。例如席噩,編寫你自己的ls班缰,mv,wget悼枢,或者cowsay命令埠忘。如果你想要向游戲領(lǐng)域發(fā)展,那么嘗試做自己版本的Pong馒索,Tetris或者Space Invaders莹妒。他們不需要擁有和原版的完全相同的特性或者一定要完全相同,但是你從零開始實現(xiàn)你的目標绰上,并且你做到了旨怠。

不要認為你在開始寫程序之前必須要有世界上最好的創(chuàng)意。我在音樂家身上看到過相同的心態(tài)蜈块。嘗試第一次就寫出一曲杰作鉴腻,把所有精力都投入到一首曲子,結(jié)果沒有站在更遠的角度看待問題百揭。更遠的角度就是你將會寫出很多很多樂曲爽哎,并不是只有這一首。你寫出的第一首樂曲可能會很爛器一,你有可能直接把它揉成一團课锌。這是OK的!不要嘗試第一次就寫出碉堡炸裂震驚全世界的10分鐘的史詩篇章盹舞。你需要學習寫樂曲的過程产镐,從你自己的經(jīng)歷中學習,每周投入時間來練習踢步。在寫出優(yōu)秀的程序之前癣亚,你首先會寫出糟糕的程序』裼。克服它述雾,經(jīng)歷它,獲取經(jīng)驗兼丰,你就可以在任何部分隨需創(chuàng)造玻孟。(Get over it, get through it, and get the experience so you can start to improvise on demand in any key.)

我們讓人們以“Hello,World”開始是有原因的鳍征,因為在他們旅程的這一點黍翎,實現(xiàn)這個目標意味著他們掌握了必要的基礎(chǔ)。你理解了如何編譯艳丛,如何運行匣掸,如何調(diào)用一個方法,如何傳遞一個參數(shù)氮双。能夠獨立實現(xiàn)另一個已存在的程序碰酝,在你學習編程的路上也是一個巨大的進步,甚至可以說和“Hello戴差,World”一樣重要送爸。當你完成了這個目標時,說明你又克服了一些困難暖释。你需要搞明白從哪里開始袭厂,如何做好計劃,如何組織你的程序饭入,如何處理bug嵌器,自己親自使用,最終打包你的程序谐丢,讓它變成一個可用的東西爽航。即使實現(xiàn)一個很小的程序,你也能學習到這個完整的過程乾忱。

你也許好奇為什么自己實現(xiàn)一個程序的克隆版本怎么會幫助你產(chǎn)生新的想法讥珍。和音樂類似,它需要創(chuàng)造力窄瘟。在音樂領(lǐng)域衷佃,為什么演奏別人的音樂能幫助你學習如何寫自己的音樂呢?首先蹄葱,你要了解別人是怎么做的氏义。你需要理解別人如何組織樂曲锄列,別人使用了什么音樂范式。當你學習過很多次別人的樂曲之后惯悠,你就能以一個更廣闊的視角來看待問題邻邮,隨后你就有更多的知識可以利用。你把從不同地方學到的小范式組合在一起克婶,并且使用一些你見到過的其他范式筒严。你也許會調(diào)整這些范式,組合它們情萤,或者完全打亂它們鸭蛙。就像人們說的,如果你要打破規(guī)則筋岛,首先要學會規(guī)則娶视。在編程領(lǐng)域,我們有類似的規(guī)則睁宰,例如MVC歇万。這是一個穩(wěn)定并且被廣泛接受的編程范式。在音樂中勋陪,我們有類似的東西贪磺。例如 I-V-vi-IV。當然這不是唯一的一個诅愚,但是是一個很好的例子寒锚。

簡單來說,練習和創(chuàng)造是連接在一起的违孝。創(chuàng)造力這個概念在編程領(lǐng)域常常被人們忽視刹前,實際上它很重要。你注意過多少個程序員同時又是音樂家呢雌桑?音樂涉及很多技術(shù)分析喇喉,結(jié)構(gòu)組織,以及范式校坑,但是人們通常認為音樂是純粹的創(chuàng)意努力的結(jié)果拣技。編程經(jīng)常被視為是純粹的技術(shù)行為,但實際上它常常伴隨著創(chuàng)意的功勞耍目。你可以通過復寫其他的程序來培養(yǎng)你的創(chuàng)造力膏斤。在你重寫的時候,你會發(fā)現(xiàn)你以一個新的方式來調(diào)整這個程序邪驮,或者自己添加一個新的功能莫辨。它同樣會啟發(fā)你關(guān)于全新項目的想法。創(chuàng)造力會在這個過程中顯現(xiàn),但是你首先要學著把前面的音樂彈奏出來沮榜。

經(jīng)過一段時間盘榨,你會發(fā)現(xiàn)你可以以編程的想法看待幾乎任何事物。你可以自動執(zhí)行任務蟆融、解決實際的問題较曼。你將會有一個長長的想法清單,只是苦于沒時間去實現(xiàn)振愿。你將有能力即時解決問題〕诜梗“哦冕末,這里有個電子表格,有100張表的數(shù)據(jù)需要格式化侣颂,可以把他們分隔到不同的文件中档桃,轉(zhuǎn)化為一個csv文件。就這么做憔晒!” 不要因為想要一下子做出一個最好的項目而束手不前藻肄。寫出你能寫出的程序。關(guān)于其他新程序的想法會隨之產(chǎn)生拒担。

你們有多少人曾經(jīng)處于“我不知道編寫什么程序”的狀態(tài)中嘹屯?你怎么解決這個問題的?你對其他處于這種狀況的人有什么建議呢从撼?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末州弟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子低零,更是在濱河造成了極大的恐慌婆翔,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掏婶,死亡現(xiàn)場離奇詭異啃奴,居然都是意外死亡,警方通過查閱死者的電腦和手機雄妥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門最蕾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人老厌,你說我怎么就攤上這事揖膜。” “怎么了梅桩?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵壹粟,是天一觀的道長。 經(jīng)常有香客問我,道長趁仙,這世上最難降的妖魔是什么洪添? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮雀费,結(jié)果婚禮上干奢,老公的妹妹穿的比我還像新娘。我一直安慰自己盏袄,他們只是感情好忿峻,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辕羽,像睡著了一般逛尚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刁愿,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天绰寞,我揣著相機與錄音,去河邊找鬼铣口。 笑死滤钱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的脑题。 我是一名探鬼主播件缸,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼叔遂!你這毒婦竟也來了停团?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤掏熬,失蹤者是張志新(化名)和其女友劉穎佑稠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旗芬,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡舌胶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了疮丛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幔嫂。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖誊薄,靈堂內(nèi)的尸體忽然破棺而出履恩,到底是詐尸還是另有隱情,我是刑警寧澤呢蔫,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布切心,位于F島的核電站飒筑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绽昏。R本人自食惡果不足惜协屡,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望全谤。 院中可真熱鬧肤晓,春花似錦、人聲如沸认然。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卷员。三九已至盈匾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間子刮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工窑睁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挺峡,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓担钮,卻偏偏與公主長得像橱赠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子箫津,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容