如何快速掌握一門語言去開發(fā)

現(xiàn)在的開發(fā)工作要求我們能夠快速掌握一門語言。一般來說應對這種挑戰(zhàn)有兩種態(tài)度:其一爷狈,粗粗看看語法奢人,就擼起袖子開干,邊查Google邊學習淆院;其二是花很多時間完整地把整個語言學習一遍,做到胸有成竹句惯,然后再開始做實際工作土辩。然而這兩種方法都有弊病。第二種方法的問題當然很明顯抢野,不僅浪費了時間拷淘,偏離了目標,而且學習效率不高指孤。因為沒有實際問題驅動的語言學習通常是不牢固不深入的启涯。有的人學著學著成了語言專家贬堵,反而忘了自己原本是要解決問題來的。第一種路子也有問題结洼,在對于這種語言的脾氣秉性還沒有了解的情況下大刀闊斧地拼湊代碼黎做,寫出來的東西肯定不入流。說穿新鞋走老路松忍,新瓶裝舊酒蒸殿,那都是小問題,真正嚴重的是這樣的程序員可以在短時間內堆積大量充滿缺陷的垃圾代碼鸣峭。由于通常開發(fā)階段的測試完備程度有限宏所,這些垃圾代碼往往能通過這個階段,從而潛伏下來摊溶,在后期成為整個項目的毒瘤爬骤,反反復復讓后來的維護者陷入西西弗斯困境。

實際上語言學習有一定規(guī)律可循莫换,對于已經(jīng)掌握一門語言的開發(fā)者來說霞玄,對于一般的語言,完全可以以最快的速度浓镜,在幾天至一周之內掌握其最常用的50%溃列,而且保證路子基本正宗,沒有出偏的弊病膛薛。其實真正寫程序不怕完全不會听隐,最怕一知半解的去攢解決方案。因為你完全不會哄啄,就自然會去認真查書學習雅任,如果學習能力好的話,寫出來的代碼質量不會差咨跌。而一知半解沪么,自己動手土法煉鋼,那搞出來的基本上都是廢銅爛鐵锌半。比如錯誤處理和序列化禽车,很多人不去了解“正路子”,而是憑借自己的一知半解去攢野路子刊殉,這是最危險的殉摔。因此,即使時間再緊張记焊,這些內容也是必須首先完整了解一遍的逸月。掌握這些內容之后進入實際開發(fā),即使有問題遍膜,也基本不會傷及項目大體碗硬。而開發(fā)者本人則可以安步當車瓤湘,慢慢在實踐中提高自己。

以下列出一個學習提綱恩尾,主要針對的是有經(jīng)驗的人弛说,初學者不合適。這個提綱只能用于一般的庸俗編程語言學習特笋,目前在流行編程語言排行榜上排前20的基本上都是庸俗語言剃浇。如果你要學的是LISP之類非庸俗語言,或是某個軟件中的二次開發(fā)語言猎物,這里的建議未必合適虎囚。還是那句話,僅供參考蔫磨。

1. 首先了解該語言的基本數(shù)據(jù)類型淘讥,基本語法和主要語言構造,主要數(shù)學運算符和print函數(shù)的使用堤如,達到能夠寫譚浩強程序設計書課后數(shù)學習題的程度蒲列;

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

3. 簡單字符串處理榔至。所謂簡單抵赢,就是Regex和Parser以下的內容,什么查找替換唧取,截斷去字串之類的铅鲤。不過這個階段有一個難點,就是字符編碼問題枫弟。如果理解不了邢享,可以先跳過,否則的話最好在這時候把這個問題搞定淡诗,免留后患骇塘;

4.基本面向對象或者函數(shù)式編程的特征,無非是什么繼承韩容、多態(tài)绪爸、Lambda函數(shù)之類的,如果有經(jīng)驗的話很快就明白了宙攻;

5.異常、錯誤處理介褥、斷言座掘、日志和調試支持递惋,對單元測試的支持。你不一定要用TDD溢陪,但是在這個時候應該掌握在這個語言里做TDD的基本技能萍虽;

6.程序代碼和可執(zhí)行代碼的組織機制,運行時模塊加載形真、符號查找機制杉编,這是初學時的一個難點,因為大部分書都不太注意介紹這個極為重要的內容咆霜;

7.基本輸入輸出和文件處理邓馒,輸入輸出流類的組織,這通常是比較繁瑣的一部分蛾坯,可以提綱挈領學一下光酣,搞清楚概念,用到的時候查就是了脉课。到這個階段可以寫大部分控制臺應用了救军;

8.該語言如何進行callback方法調用,如何支持事件驅動編程模型倘零。在現(xiàn)代編程環(huán)境下唱遭,這個問題是涉及開發(fā)思想的一個核心問題,幾乎每種語言在這里都會用足功夫呈驶,.NET的delegate拷泽,Java的anonymous inner class,Java 7的closure俐东,C++OX的 tr1::function/bind跌穗,五花八門。如果能徹底理解這個問題虏辫,不但程序就不至于寫得太走樣蚌吸,而且對該語言的設計思路也能有比較好的認識;

9. 如果有必要砌庄,可在這時研究regex和XML處理問題羹唠,如無必要可跳過;

10.序列化和反序列化娄昆,掌握一下缺省的機制就可以了佩微;

11. 如果必要,可了解一下線程萌焰、并發(fā)和異步調用機制哺眯,主要是為了讀懂別人的代碼,如果自己要寫這類代碼扒俯,必須專門花時間嚴肅認真系統(tǒng)地學習奶卓,嚴禁半桶水上陣一疯;

12. 動態(tài)編程,反射和元數(shù)據(jù)編程夺姑,數(shù)據(jù)和程序之間的相互轉化機制墩邀,運行時編譯和執(zhí)行的機制,有抱負的開發(fā)者在這塊可以多下些功夫盏浙,能夠使你對語言的認識高出一個層面眉睹;

13. 如果有必要,可研究一下該語言對于泛型的支持废膘,不必花太多時間竹海,只要能使用現(xiàn)成的泛型集合和泛型函數(shù)就可以了,可在以后閑暇時抽時間系統(tǒng)學習殖卑。需要注意的是站削,泛型技術跟多線程技術一樣,用不好就成為萬惡之源孵稽,必須系統(tǒng)學習许起,謹慎使用,否則不如不學不用菩鲜;

14.

如果還有時間园细,最好咨詢一下有經(jīng)驗的人,看看這個語言較常用的特色features是什么接校,如果之前沒學過猛频,應當補一下。比如Ruby的block

interator, Java的dynamic proxy蛛勉,C# 3的LINQ和extension

method鹿寻。沒時間的話,我認為也可以邊做邊學诽凌,沒有大問題毡熏。

15. 有必要的話,在工作的閑暇時間侣诵,可以著重考察兩個問題痢法,第一,這個語言有哪些慣用法和模式杜顺,第二财搁,這個語言的編譯/解釋執(zhí)行機制。

至此語言的基本部分就可以說掌握了躬络,之后是做數(shù)據(jù)庫尖奔、網(wǎng)絡還是做圖形,可以根據(jù)具體需求去搞,找相應的成熟框架或庫提茁,邊做邊學仗嗦,加深理解。對于一個庸俗語言甘凭,我自己把上面的內容走一遍大概要花2-3周時間,不能算很快火邓,但也耽誤不了太多事情丹弱,畢竟不是每個月都學新語言。掌握了以上的內容铲咨,就給練武術打好了基本功躲胳,雖然不見得有多優(yōu)秀,但是肯定是根正苗紅纤勒,將來不必繞大彎子坯苹。就算是臨時使用的語言,把上面這個提綱精簡一下摇天,只看藍色重體字的部分粹湃,大致能在幾天到一周內搞定,不算是太耗時泉坐,而且寫出來的代碼不會太不靠譜为鳄。

以上提綱未設及內存模型。對于C/C++腕让,這個問題很重要孤钦,要放在顯著位置來考慮,但對于其他語言纯丸,這個問題被透明化了偏形,除非你要做hardcore項目,否則不必太關注觉鼻。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末俊扭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子滑凉,更是在濱河造成了極大的恐慌统扳,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件畅姊,死亡現(xiàn)場離奇詭異咒钟,居然都是意外死亡,警方通過查閱死者的電腦和手機若未,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門朱嘴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事萍嬉∥谖簦” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵壤追,是天一觀的道長磕道。 經(jīng)常有香客問我,道長行冰,這世上最難降的妖魔是什么溺蕉? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮悼做,結果婚禮上疯特,老公的妹妹穿的比我還像新娘。我一直安慰自己肛走,他們只是感情好漓雅,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著朽色,像睡著了一般邻吞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纵搁,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天吃衅,我揣著相機與錄音,去河邊找鬼腾誉。 笑死徘层,一個胖子當著我的面吹牛,可吹牛的內容都是我干的利职。 我是一名探鬼主播趣效,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼猪贪!你這毒婦竟也來了跷敬?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤热押,失蹤者是張志新(化名)和其女友劉穎西傀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桶癣,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡拥褂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了牙寞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饺鹃。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡莫秆,死狀恐怖,靈堂內的尸體忽然破棺而出悔详,到底是詐尸還是另有隱情镊屎,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布茄螃,位于F島的核電站缝驳,受9級特大地震影響,放射性物質發(fā)生泄漏归苍。R本人自食惡果不足惜党巾,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望霜医。 院中可真熱鬧,春花似錦驳规、人聲如沸肴敛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽医男。三九已至,卻和暖如春捻勉,著一層夾襖步出監(jiān)牢的瞬間镀梭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工踱启, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留报账,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓埠偿,卻偏偏與公主長得像透罢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冠蒋,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,112評論 25 707
  • 現(xiàn)在的開發(fā)工作要求我們能夠快速掌握一門語言羽圃。一般來說應對這種挑戰(zhàn)有兩種態(tài)度:其一,粗粗看看語法抖剿,就擼起袖子開干朽寞,邊...
    二毛_coder閱讀 312評論 0 1
  • 想了很久,我給你發(fā)了一句話斩郎,“祝我們此生不再相見脑融,我和你從此恩斷義絕∧蹩剑” 人們常說吨掌,酒不過六分醉,飯...
    祝我們此生不再見閱讀 941評論 5 2
  • 今天的文章大概的意思講投資,任何的投資都是有風險的膜宋,風險與機會并存窿侈。 表演反思 下午的效果比晚上的效果要好一點,但...
    帥氣的三侄子閱讀 174評論 0 0
  • 很快看完《小王子》這本書秋茫,這是一本賦有哲學的童話故事書史简,小孩和大人都可以看的故事書。每個人看都有不一樣的想法肛著。在這...
    小妞丫丫閱讀 264評論 0 0