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