快速掌握一個語言最常用的50%

現(xiàn)在的開發(fā)工作要求我們能夠快速掌握一門語言承二。一般來說應(yīng)對這種挑戰(zhàn)有兩種態(tài)度:其一凹蜂,粗粗看看語法,就擼起袖子開干吩抓,邊查Google邊學(xué)習(xí);其二是花很多時間完整地把整個語言學(xué)習(xí)一遍赴恨,做到胸有成竹疹娶,然后再開始做實際工作。然而這兩種方法都有弊病伦连。第二種方法的問題當(dāng)然很明顯雨饺,不僅浪費了時間,偏離了目標(biāo)除师,而且學(xué)習(xí)效率不高沛膳。因為沒有實際問題驅(qū)動的語言學(xué)習(xí)通常是不牢固不深入的。有的人學(xué)著學(xué)著成了語言專家汛聚,反而忘了自己原本是要解決問題來的锹安。第一種路子也有問題,在對于這種語言的脾氣秉性還沒有了解的情況下大刀闊斧地拼湊代碼倚舀,寫出來的東西肯定不入流叹哭。說穿新鞋走老路,新瓶裝舊酒痕貌,那都是小問題风罩,真正嚴(yán)重的是這樣的程序員可以在短時間內(nèi)堆積大量充滿缺陷的垃圾代碼。由于通常開發(fā)階段的測試完備程度有限舵稠,這些垃圾代碼往往能通過這個階段超升,從而潛伏下來,在后期成為整個項目的毒瘤哺徊,反反復(fù)復(fù)讓后來的維護者陷入西西弗斯困境室琢。

實際上語言學(xué)習(xí)有一定規(guī)律可循,對于已經(jīng)掌握一門語言的開發(fā)者來說落追,對于一般的語言盈滴,完全可以以最快的速度,在幾天至一周之內(nèi)掌握其最常用的50%轿钠,而且保證路子基本正宗巢钓,沒有出偏的弊病。其實真正寫程序不怕完全不會疗垛,最怕一知半解的去攢解決方案症汹。因為你完全不會,就自然會去認(rèn)真查書學(xué)習(xí)继谚,如果學(xué)習(xí)能力好的話烈菌,寫出來的代碼質(zhì)量不會差阵幸。而一知半解,自己動手土法煉鋼芽世,那搞出來的基本上都是廢銅爛鐵挚赊。比如錯誤處理和序列化,很多人不去了解“正路子”济瓢,而是憑借自己的一知半解去攢野路子荠割,這是最危險的。因此旺矾,即使時間再緊張蔑鹦,這些內(nèi)容也是必須首先完整了解一遍的。掌握這些內(nèi)容之后進入實際開發(fā)箕宙,即使有問題嚎朽,也基本不會傷及項目大體。而開發(fā)者本人則可以安步當(dāng)車柬帕,慢慢在實踐中提高自己哟忍。

以下列出一個學(xué)習(xí)提綱,主要針對的是有經(jīng)驗的人陷寝,初學(xué)者不合適锅很。這個提綱只能用于一般的庸俗編程語言學(xué)習(xí),目前在流行編程語言排行榜上排前20的基本上都是庸俗語言凤跑。如果你要學(xué)的是LISP之類非庸俗語言爆安,或是某個軟件中的二次開發(fā)語言,這里的建議未必合適仔引。還是那句話扔仓,僅供參考。

1.?首先了解該語言的基本數(shù)據(jù)類型咖耘,基本語法和主要語言構(gòu)造当辐,主要數(shù)學(xué)運算符和print函數(shù)的使用,達到能夠?qū)懽T浩強程序設(shè)計書課后數(shù)學(xué)習(xí)題的程度鲤看;

2.?其次掌握數(shù)組和其他集合類的使用,有基礎(chǔ)的話可以理解一下泛型耍群,如果理解不了也問題不大义桂,后面可以補;

3.?簡單字符串處理蹈垢。所謂簡單慷吊,就是Regex和Parser以下的內(nèi)容,什么查找替換曹抬,截斷去字串之類的溉瓶。不過這個階段有一個難點,就是字符編碼問題。如果理解不了堰酿,可以先跳過疾宏,否則的話最好在這時候把這個問題搞定,免留后患触创;

4.?基本面向?qū)ο蠡蛘吆瘮?shù)式編程的特征坎藐,無非是什么繼承、多態(tài)哼绑、Lambda函數(shù)之類的岩馍,如果有經(jīng)驗的話很快就明白了;

5.?異常抖韩、錯誤處理蛀恩、斷言、日志和調(diào)試支持茂浮,對單元測試的支持双谆。你不一定要用TDD,但是在這個時候應(yīng)該掌握在這個語言里做TDD的基本技能励稳;

6.?程序代碼和可執(zhí)行代碼的組織機制佃乘,運行時模塊加載、符號查找機制驹尼,這是初學(xué)時的一個難點趣避,因為大部分書都不太注意介紹這個極為重要的內(nèi)容;

7.?基本輸入輸出和文件處理新翎,輸入輸出流類的組織程帕,這通常是比較繁瑣的一部分,可以提綱挈領(lǐng)學(xué)一下地啰,搞清楚概念愁拭,用到的時候查就是了。到這個階段可以寫大部分控制臺應(yīng)用了亏吝;

8.?該語言如何進行callback方法調(diào)用岭埠,如何支持事件驅(qū)動編程模型。在現(xiàn)代編程環(huán)境下蔚鸥,這個問題是涉及開發(fā)思想的一個核心問題惜论,幾乎每種語言在這里都會用足功夫,.NET的delegate止喷,Java的anonymous?inner?class馆类,Java?7的closure,C++OX的?tr1::function/bind弹谁,五花八門乾巧。如果能徹底理解這個問題句喜,不但程序就不至于寫得太走樣,而且對該語言的設(shè)計思路也能有比較好的認(rèn)識沟于;

9.?如果有必要咳胃,可在這時研究regex和XML處理問題,如無必要可跳過社裆;

10.?序列化和反序列化拙绊,掌握一下缺省的機制就可以了;

11.?如果必要泳秀,可了解一下線程标沪、并發(fā)和異步調(diào)用機制,主要是為了讀懂別人的代碼嗜傅,如果自己要寫這類代碼金句,必須專門花時間嚴(yán)肅認(rèn)真系統(tǒng)地學(xué)習(xí),嚴(yán)禁半桶水上陣吕嘀;

12.?動態(tài)編程违寞,反射和元數(shù)據(jù)編程,數(shù)據(jù)和程序之間的相互轉(zhuǎn)化機制偶房,運行時編譯和執(zhí)行的機制趁曼,有抱負(fù)的開發(fā)者在這塊可以多下些功夫,能夠使你對語言的認(rèn)識高出一個層面棕洋;

13.?如果有必要挡闰,可研究一下該語言對于泛型的支持,不必花太多時間掰盘,只要能使用現(xiàn)成的泛型集合和泛型函數(shù)就可以了摄悯,可在以后閑暇時抽時間系統(tǒng)學(xué)習(xí)。需要注意的是愧捕,泛型技術(shù)跟多線程技術(shù)一樣奢驯,用不好就成為萬惡之源,必須系統(tǒng)學(xué)習(xí)次绘,謹(jǐn)慎使用瘪阁,否則不如不學(xué)不用;

14.?如果還有時間邮偎,最好咨詢一下有經(jīng)驗的人罗洗,看看這個語言較常用的特色features是什么,如果之前沒學(xué)過钢猛,應(yīng)當(dāng)補一下。比如Ruby的block?interator,?Java的dynamic?proxy轩缤,C#?3的LINQ和extension?method命迈。沒時間的話贩绕,我認(rèn)為也可以邊做邊學(xué),沒有大問題壶愤。

15.?有必要的話淑倾,在工作的閑暇時間,可以著重考察兩個問題征椒,第一娇哆,這個語言有哪些慣用法和模式,第二勃救,這個語言的編譯/解釋執(zhí)行機制碍讨。

至此語言的基本部分就可以說掌握了,之后是做數(shù)據(jù)庫蒙秒、網(wǎng)絡(luò)還是做圖形勃黍,可以根據(jù)具體需求去搞,找相應(yīng)的成熟框架或庫晕讲,邊做邊學(xué)覆获,加深理解。對于一個庸俗語言瓢省,我自己把上面的內(nèi)容走一遍大概要花2-3周時間弄息,不能算很快,但也耽誤不了太多事情勤婚,畢竟不是每個月都學(xué)新語言摹量。掌握了以上的內(nèi)容,就給練武術(shù)打好了基本功蛔六,雖然不見得有多優(yōu)秀荆永,但是肯定是根正苗紅,將來不必繞大彎子国章。就算是臨時使用的語言具钥,把上面這個提綱精簡一下,只看藍色重體字的部分液兽,大致能在幾天到一周內(nèi)搞定骂删,不算是太耗時,而且寫出來的代碼不會太不靠譜四啰。

以上提綱未設(shè)及內(nèi)存模型宁玫。對于C/C++,這個問題很重要柑晒,要放在顯著位置來考慮欧瘪,但對于其他語言,這個問題被透明化了匙赞,除非你要做hardcore項目佛掖,否則不必太關(guān)注妖碉。

江太公QQ:284053253,微信:JM20110222

地址:www.no1v.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芥被,一起剝皮案震驚了整個濱河市欧宜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拴魄,老刑警劉巖冗茸,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異匹中,居然都是意外死亡夏漱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門职员,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麻蹋,“玉大人,你說我怎么就攤上這事焊切“缡冢” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵专肪,是天一觀的道長刹勃。 經(jīng)常有香客問我,道長嚎尤,這世上最難降的妖魔是什么荔仁? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮芽死,結(jié)果婚禮上乏梁,老公的妹妹穿的比我還像新娘。我一直安慰自己关贵,他們只是感情好遇骑,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著揖曾,像睡著了一般落萎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上炭剪,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天练链,我揣著相機與錄音,去河邊找鬼奴拦。 笑死媒鼓,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绿鸣,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼瓷产,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枚驻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤株旷,失蹤者是張志新(化名)和其女友劉穎再登,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晾剖,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡锉矢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了齿尽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沽损。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖循头,靈堂內(nèi)的尸體忽然破棺而出绵估,到底是詐尸還是另有隱情,我是刑警寧澤卡骂,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布国裳,位于F島的核電站,受9級特大地震影響全跨,放射性物質(zhì)發(fā)生泄漏缝左。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一浓若、第九天 我趴在偏房一處隱蔽的房頂上張望渺杉。 院中可真熱鬧,春花似錦挪钓、人聲如沸是越。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽进泼。三九已至作彤,卻和暖如春坛善,著一層夾襖步出監(jiān)牢的瞬間趾痘,已是汗流浹背溃槐。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工羞反, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吗蚌,地道東北人腿倚。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像蚯妇,于是被迫代替她去往敵國和親敷燎。 傳聞我的和親對象是個殘疾皇子暂筝,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

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