同時(shí)學(xué)習(xí)多種編程語(yǔ)言其實(shí)很容易
大概是兩年前吧,我做了個(gè)決定,要去學(xué)習(xí)編程。我買了本PHP書,開始一邊閱讀一邊做里面的練習(xí)題。我把主要精力都放到PHP上,不理會(huì)任何其它的語(yǔ)言,因?yàn)槲矣袀€(gè)習(xí)慣,一旦開始做一個(gè)事情,我們會(huì)集中所有的注意力,先把這個(gè)事情做完,然后才去做其它的事情。于是,我嘗試這開發(fā)一個(gè)Web應(yīng)用程序 (一個(gè)絕妙的創(chuàng)意,一個(gè)能使我成為另外一個(gè)Facebook創(chuàng)始人那樣的應(yīng)用)。一點(diǎn)一點(diǎn)的,進(jìn)度很慢,我的應(yīng)用(這個(gè)即將讓我成為百萬(wàn)富翁的應(yīng)用)慢慢的成型。最終,它跑起來(lái)了。自然了,沒有人來(lái)用它,做的太爛了,到處是bug。之后我又有了一個(gè)(絕妙的)創(chuàng)意。我想這次就不用不停的在書本里翻來(lái)翻去了,不用整夜整夜的在google上搜索拷貝代碼,修改它們,讓它們能在我的應(yīng)用程序里運(yùn)行了。我以為我坐下來(lái)就能寫出我的PHP應(yīng)用。但我終于明白,實(shí)際上我什么都沒學(xué)會(huì),盡管我讀了很多關(guān)于PHP的資料,盡管我已經(jīng)開發(fā)出了一個(gè)應(yīng)用程序(很爛,但也是一個(gè))。我認(rèn)識(shí)到,整個(gè)的這段時(shí)間我所做的事只是學(xué)習(xí)了一點(diǎn)PHP語(yǔ)法,使用幾段代碼解決一個(gè)難題,而這些拼湊的代碼最終讓我的應(yīng)用面目全非。
我十分的生氣,停止了所有的開發(fā)。我把我的Web應(yīng)用的創(chuàng)意完全丟到了腦后,開始四處瀏覽所有我覺得有趣的開發(fā)知識(shí)。我發(fā)現(xiàn)了Ruby On Rails,這個(gè)東西看起來(lái)很酷,但我不知道它為什么很酷,我對(duì)ruby毫不了解,但卻花了不少時(shí)間學(xué)習(xí)Ruby On Rails,然后我學(xué)著開發(fā)Android應(yīng)用,讀跟它相關(guān)的資料,這把我引向了學(xué)習(xí)Java,但我沒有停止學(xué)習(xí)Rails,我在iTunesU上報(bào)了一個(gè)Java的課程,之后在我工作的時(shí)候我又開始閱讀PDF版的Python教材,因?yàn)镻ython里的一些東西引起了我的興趣….(也許是它的這個(gè)名稱)。噢!我還有一本C++書,我把它找了出來(lái),在睡覺前我開始讀一些C++的知識(shí)。因?yàn)槲胰匀徊恢繰uby這種語(yǔ)言,所以我也開始學(xué)習(xí)Ruby。當(dāng)我研究Java有些厭煩時(shí),我還試了試Objective-C,而JavaScript看起來(lái)也不錯(cuò),我也試圖要掌握它。這些全是在同時(shí)進(jìn)行的。
如果是之前有人問(wèn)我,我肯定會(huì)說(shuō)這是最糟糕的一種學(xué)習(xí)編程的方法。但事實(shí)證明,這是最有效的一種學(xué)習(xí)方法。這種學(xué)習(xí)方法的結(jié)果是,我終于不再關(guān)注PHP的語(yǔ)法,開始把不同語(yǔ)言間的相似之處關(guān)聯(lián)起來(lái)。我現(xiàn)在是在真正的學(xué)習(xí)原理,而不是為了做什么而在google上搜索正確的語(yǔ)法。我開始領(lǐng)悟相似的東西在各種不同的語(yǔ)言、不同的平臺(tái)上的不同之處。這些認(rèn)識(shí)對(duì)我來(lái)說(shuō)很重要。我的關(guān)注不再是PHP,我的關(guān)注現(xiàn)在是編程。
我希望這些經(jīng)驗(yàn)對(duì)于那些跟我兩年前一樣處境的人有些幫助,那些跟我當(dāng)年有相同想法的人應(yīng)該通過(guò)不同的視角來(lái)看那些相同的東西,這樣才能真正的領(lǐng)會(huì)它們!
英文原文:It was easier to learn to program in several languages than in one.
譯文鏈接:http://www.aqee.net/it-was-easier-to-learn-to-program-in-several-languages-than-in-one/