談?wù)劧嚅T程序語言的學(xué)習(xí)策略之一
導(dǎo)言
作為一名程序首先要選好一門程序語言,這重要性好比找對一個老婆重要,可是,程序語言畢竟只是一門工具,不像老婆那樣選了就很難換了(當(dāng)然不合適離了不也一樣..呵呵),有時候,在實際需求中我們需要,一定程度的"外遇"才能滿足各種需求,但是,"外遇"不是每個屌絲都能碰到的好運,還好我們程序員要碰"外遇"太簡單了,直接上官網(wǎng),下文檔,接下來,就是開個房間...苦讀文檔...補充一下尋找"外遇"之前先把"老婆"找到,不然就不叫外遇了...
當(dāng)年的"老婆"現(xiàn)在的"小三"
如果,我們都把美女的渴望,放到對程序語言的學(xué)習(xí)上面的話,估計沒啥是學(xué)不好的...
竟然,我們是有"家室之人",不是當(dāng)年一樣啥都不懂的"年輕少年".作為有著一定經(jīng)驗的男人而已,竟然,開房了我們就要一看到底...
"老婆" | "小三" |
---|---|
java | lua |
在經(jīng)歷一段比較漫長的事情后,我們終于有了一個"老婆"其中的艱辛,當(dāng)然只有我們心里清楚,我們?yōu)榱艘院竽芨奖愕恼业?quot;外遇",作為一個立志于建立"后宮"的程序員,我們要好好思考,我們是怎么把"老婆"搞到手的.
作為一門程序語言,我是這么想的:
文件后綴 -> 關(guān)鍵字 -> 程序輸入輸出 -> 高級數(shù)據(jù)類型(即數(shù)據(jù)結(jié)構(gòu)) -> api
說得挺抽象的,當(dāng)年,我是這樣追現(xiàn)在的"老婆"
程序文件后綴
java的文件需要以.java文件保存,然后通過對.java文件進行編譯,生成最終用來運行的.class文件
例如有如下一段代碼
- public class Hello{
- public static void main(String[] args){ System.out.println("Hello world!"); } }
將這段代碼保存為.java文件!
接著我們編譯代碼
- javac Hello.java //編譯代碼
- Java Hello //運行代碼
從這里我們可以知道,一個程序代碼一般而言是需要通過一次編譯(手動(編譯語言),或者自動(腳本語言))才能執(zhí)行,簡單來說就是需要一個"玩意"(編譯器)把我們寫的類似于自然語言的東西,通過這么一個"玩意"(編譯器)編譯成機器代碼以后,我們寫的程序才能真正運行起來!
接下來,我們面對"小三"的時候,還需要搞清楚這點嗎?我們直接開敲就好!
- print("Hello world !")
這樣,我們就開始了我們的"外遇"之旅,額,應(yīng)該是lua學(xué)習(xí)之旅,現(xiàn)在,我們還需要搞清楚lua的文件后綴是多少,怎么編譯的嗎?"女人"不都一樣嗎!
關(guān)鍵字
當(dāng)年,我們追我們"老婆"的時候,需要知道"老婆"的脾氣,愛好,等等東西,總結(jié)起來就是,找"小三"的時候,我們也需要這么做,例如,
- lua and break do else elseif end false for function if in local nil not or repeat return then true until while
從這個lua小三愛好表里面看到,我們可以看出,有些"愛好"跟我們追"老婆"的時候不也一樣,if,else..那么,我們只要針對一些我們"老婆"沒有的愛好進行調(diào)查,例如
- function,nil,local 等
當(dāng)然有些"愛好"是相同的,例如,我的"老婆"喜歡善良的男人,"小三"也喜歡善良的男人,但是這個善良的男人該善良到何種程度才算得上是,"老婆"或者"小三"喜歡的類型,這個就需要我們自行琢磨了...就好比java的else if跟lua elseif 是一樣的嗎(注意關(guān)鍵字!)?雖然,做的事情都是一樣的.當(dāng)然,這些不應(yīng)該成為我們需要花時間的地方,我們應(yīng)該把更多的時間放在"小三"跟老婆不一樣的地方.
所以,最后,我們只要學(xué)習(xí)一下,一些新增的關(guān)鍵字就足矣!
程序輸入輸出
我們把以上幾點搞清楚以后,我們就可以更"小三"進行一些papa(打鍵盤的聲音)的事情了,我們一個程序的運行其實,干的就是這么一件事情。
接收我們輸入的參數(shù) -> 處理我們的參數(shù) -> 輸出我們期望的參數(shù)
那么,根據(jù),我們當(dāng)年追"老婆"的時候,經(jīng)過,一番通過的學(xué)習(xí)以后,我們可以搞清楚輸入無非有如下情況
輸入
- 控制臺輸入
- 文件輸入
- 變量輸入
輸出
- 控制臺輸出
- 文件輸出
- 變量輸出
這個過程,應(yīng)該在我們當(dāng)年搞"老婆"的時候已經(jīng)爛熟與心,現(xiàn)在搞"小三"的時候,只不過是變了一點而已,例如,以前"老婆"的是B杯,現(xiàn)在的"小三"變成了F杯而已... 例如當(dāng)年我們控制臺輸出的時候是這樣寫的
- Scanner s = new Scanner(System.in);
- String s2 = s.next();
- System.out.println(s2);
現(xiàn)在Lua變成了這樣而已
- a = io.read("*number")
- print(a)
只是一些語法的改變的,"胸"(IO流)還是那樣的"胸"("IO流")所以,男人們改變一下手法即可!當(dāng)然,要摸熟則需要一定的時間
高級數(shù)據(jù)類型(即數(shù)據(jù)結(jié)構(gòu))
對于,基本數(shù)據(jù)類型,其實,是門程序一樣都不會有太大的改變,不過,對于高級數(shù)據(jù)類型就可能有些變化,例如,java的數(shù)組,就肯定沒有php的數(shù)組強大, 例如,java有專門的泛型,php則是萬物皆是泛型就好比一些女人是M屬性一些女人是S屬性,一些女人則是SM屬性...還是拿java說事,在C語言的年代,我們需要深刻理解什么是list,stack,map才能寫出相應(yīng)的代碼不過在java 已經(jīng)打包好實現(xiàn),我們自己使用就好!
無論語言如何變化,對于我們知道list,stack,map 是怎么一回事有影響嗎?我們知道list,stack,map該怎么用就好,語言本身實現(xiàn)了,我們直接就調(diào)用,沒有的google一下找實現(xiàn),還沒有的自己寫一套..不過,一般google一下都有實現(xiàn)了吧...還沒有的話,莫非是你自己自創(chuàng)的語言?
- List arraryList = new ArrayList();
- arrayList.add("oh yeah"); 剩下的自己領(lǐng)會吧...
一切的基礎(chǔ)API
到最后,最激動人心的一部分了!當(dāng)我們,基本把一個"小三"搞到手以后,就是開始細(xì)致了解她的時候了,至于怎么了解,當(dāng)然就是在日常生活中慢慢深入,對于一門程序語言而已,API是必須學(xué)習(xí)的一部分,基本上,要算的上熟悉一門語言,API是必須爛熟于心,這樣才不會把時間浪費在一些重復(fù)制作輪子上,也可以在這個基礎(chǔ)上,把輪子做得更好!例如,學(xué)習(xí)C語言的,你沒把C99標(biāo)準(zhǔn)庫里面所有庫函數(shù)搞明白,都不好意思說自己是學(xué)C語言的(印象中C99標(biāo)準(zhǔn)庫沒幾個函數(shù),當(dāng)然這個是跟java的api比較)
API這種東西,我們不需要專門去學(xué)習(xí)!只不過是當(dāng)我們遇到某件事的時候,第一時間是找API 文檔,而不是GOOGLE一下!這樣,一門語言在不斷使用過程中就掌握了,至于以后可能很長一段時間不用,也可以從API文檔中迅速回到狀態(tài),因為API 是一門語言的基本所在,掌握了API基本一門語言也就掌握了.
當(dāng)然,你對API不屑一顧的話,那就證明你已經(jīng)達到了一種更高的層次,看破紅塵,世事如煙...
貌似都說完了,還會有之二嗎?
原文鏈接:http://www.cnblogs.com/youxilua/archive/2012/06/24/2559684.html