<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 44  文章 - 78  trackbacks - 0
    <2009年2月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    1234567

     Happy 牛 Year
    一、一周至少寫一篇博文;
    二、每天至少學(xué)習(xí)半個小時。
    三、奔向小牛!

    常用鏈接

    留言簿(6)

    我參與的團隊

    隨筆分類

    隨筆檔案

    文章檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    題記:最近看了《 java 夜未眠》這本書,感覺很不錯,里面將當(dāng)時(包括現(xiàn)在)的一些現(xiàn)狀,以及一些知識點分析的很清楚、很透徹,而且淺顯易懂,寫作風(fēng)格幽默風(fēng)趣,讀起來也不費力;雖然有些地方比較偏激,但那是不可否認(rèn)的事實,確實感同身受啊,如果大家沒有看過,推薦大家有時間也看一下;下面是書中一些不錯的片段,當(dāng)然,整本書都是不錯的,這些只不過是我更感興趣的。

    ?

    培養(yǎng)興趣
    把程序設(shè)計當(dāng)成興趣可以讓你學(xué)得更快樂,學(xué)習(xí)效果自然會更好。在我到一個單位面試時,主管看了我的履歷之后問我:「你怎么有這么多時間學(xué)會這么多東西、做這么多事?」 我的回答是:「把工作、學(xué)習(xí)、和娛樂結(jié)合在一起,時間就會是別人的三倍。」
    ???
    我承認(rèn)我很幸運,可以把程序設(shè)計當(dāng)作賺錢的工作,學(xué)習(xí)的題材,以及茶余飯后的休閑活動。不是每個人都像我這般幸運,但是我相信至少大家都可以把它當(dāng)成興趣。相信我, 調(diào)整你的心境,把它當(dāng)成是興趣,而非苦差事,你非發(fā)現(xiàn)你的「程序功力」與日俱增。

    慎選程序語言
    ???
    慎選程序語言很重要,一開始就學(xué)太難的程序語言很容易讓你遭遇到挫折而放棄。你可以挑比較容易且有趣的語言下手,建議您可以從下面的語言中擇一:
    ??? VB
    :簡單,好用,書籍多。
    ??? Java
    :比 VB 稍難,比 C/C++ 簡單,書籍多,用途非常廣,相當(dāng)有前途。可以當(dāng)作學(xué)習(xí) C++ 的跳板。
    ??? Python
    :簡單,好用,各個平臺都支持(包括 Windows Linux MacOS BeOS ... )。國外很紅,國內(nèi)較少人用。原文書不少, 但中文書目前只有一本(歐萊禮出版)。我預(yù)期 Python 會是下一個熱門的程序語言。
    ???
    這三個語言只是我給各位的建議,你也可以多聽聽別人的意見。在選定一個程序語言之后,就要執(zhí)著,不可以很快放棄,又改學(xué)另一個程序語言,否則永遠都只懂皮毛。有句諺語是 這么說的:「 A jack of all trades is master of none 」。如果你號稱會 C++ Java 等十種程序語言,只不過每種程序語言都停留在 Say Hello 的階段,相信面談主管很快就會 對你 Say Goodbye
    ???
    當(dāng)你學(xué)精某程序語言,然后想再學(xué)另一個程序語言,你會發(fā)現(xiàn)有了前一個程序語言札實的根基,學(xué)任何新的程序語言都很快。

    ?

    程序與香雞排片段

    在臺灣的軟件公司內(nèi)部,有許多非科班出身的程序員,他們的薪資低廉,通常又很努力。軟件公司就算聘到了這種便宜又努力的程序員,也不要太高興,因為這樣的程序員,通常都只是把目前的公司當(dāng)一個學(xué)習(xí)的過渡階段,等到學(xué)得差不多,拍拍屁股就走人了,才沒打算一輩子接受這樣的低薪。但可悲的是,大部分的公司都沒有良好的程序員生涯規(guī)劃制度,反正大家互相利用。所以這些程序員很可能在做計畫的過程中,學(xué)不到東西又磨得身心俱疲。 所以,何苦來哉!不如我們通通去賣香雞排吧!但是你們只能到通化街夜市和士林夜市賣,不可以到我屬意的饒河街夜市和我搶生意(我打聽過,饒河街的攤位租金是三者中最便宜的)。我的攤位名稱要取做什么呢? ... 嗯!就叫做 “Java 雞排 好了,以紀(jì)念我曾有過的 Java 程序員身份。我打算把雞排分成三種大小,最大到最小分別叫做 J2EE J2SE 以及 J2ME 。哪天你到饒河街夜市,發(fā)現(xiàn)了一個乾乾瘦瘦、看起來營養(yǎng)不良的少年頭家用著生硬的臺語在吆喝著: 來呦!來呦!好呷的香雞排, J2EE 一塊 50 J2SE 一塊 40 J2ME 一塊 30......” 請你也來光顧一下吧! ... 看在 Java 的份上。

    ?

    關(guān)于職業(yè)生涯

    生涯規(guī)劃會隨著年紀(jì)增長和生活經(jīng)驗的累積,以及人生觀的改變而有階段性的差異,所以生涯規(guī)劃不宜過于長期。生涯規(guī)劃應(yīng)該以漸進的、多樣的方式來進行。漸進的,才不會好高鶩遠;多樣的,才可以分散風(fēng)險。而且,生涯規(guī)劃要及早,因為有越充分的時間準(zhǔn)備,越有可能實現(xiàn)。即使你想瀟灑地背著吉他到異鄉(xiāng)旅行彈唱,你也得好好地練吉他吧!

    把握時間朝著你所規(guī)劃的生涯邁進!時間過得很快的,浪費不得。你不會希望有一天你在床上醒來,睜開眼后盯著天花板,你發(fā)現(xiàn)你已經(jīng)五十歲了,昨晚五十大壽 birthday party 的宿醉使得你現(xiàn)在頭痛欲裂。你發(fā)現(xiàn)這些年來你依舊是渾渾噩噩的度過,生涯規(guī)劃依舊只是「規(guī)劃」,沒一個實現(xiàn)。你在床上抱頭痛哭,就在你五十歲生日當(dāng)天。

    信息應(yīng)用領(lǐng)域變動快速,許多軟件人員欠缺判斷能力,不能及早學(xué)習(xí)妥相關(guān)的技術(shù)以為因應(yīng)。特別是在這幾年的光景,許多新應(yīng)用領(lǐng)域的竄起,相當(dāng)程度地撼動了原有的軟件霸主,以往那些唯唯諾諾、以微軟技術(shù)馬首是瞻的人難得壓錯了寶,這次也算是讓他們學(xué)到了教訓(xùn),這何嘗不是一種領(lǐng)悟。啊!多么痛的領(lǐng)悟,你(微軟)曾是我的全部。

    許多軟件人員缺乏自我學(xué)習(xí)的能力。軟件人員應(yīng)該問問自己:這半年來技術(shù)能力精進了多少?技術(shù)飛快地在進步,如果你沒跟著進步,在相對坐標(biāo)看來就是退步。我以前很變態(tài),只要一天沒看技術(shù)書籍就會覺得今天真是白活了,然后有一股沖動想要「做傻事」;現(xiàn)在我雖然比較沒這么逼迫自己了,但看書還是看得很勤快。

    軟件人才培養(yǎng)不易,折損率高。一些我認(rèn)識的優(yōu)秀軟件人才,最近常 forward 一些「過勞死」、「人生的意義」之類的文章給我,顯示了他們工作上的厭倦感。他們在電話中告訴我,他們忙得沒時間接觸新技術(shù),技術(shù)已經(jīng)跟不上別人了。這廂大嘆人才難尋,那廂努力折損人才。

    ?

    關(guān)于知識的等級

    專業(yè)知識是一種無形的資產(chǎn),不容易評估其價值。但是大致上,專業(yè)知識可以分成四個層次,價值由低而高分述如下。

    Know-What

    受過訓(xùn)練,通過認(rèn)證,而精通某領(lǐng)域的基本知識,這類的知識就稱為 know-what ,也稱為認(rèn)知性的知識( cognitive knowledge )。 know-what 是一切知識的根基,但是有了 know-what ,并不表示有能力可以活用這些知識。許多軟件人員在通過專業(yè)認(rèn)證之后,就開始學(xué)會獅子大開口了,其實他們的知識可能還停留在 know-what 的階段,而 know-what 階段的知識對公司來說是沒有太多生產(chǎn)力的。此階段的軟件人員應(yīng)該努力地提升自己,以進入下一個階段,也就是 know-how

    Know-How

    know-how 階段的知識也稱為進階技能( advanced skills ),指的是可以活用書本上學(xué)來的知識、理論,以解決實際的問題。 know-what 的知識或許可以透過「填鴨」方式生硬地吞下去,但是 know-how 的培養(yǎng)一定要透過實務(wù)經(jīng)驗的累積與體會。如果有一個好老師或 leader 的引導(dǎo), know-what 可以很快地提升成 know-how ,靠自我的培養(yǎng)則通常會比較辛苦。不過,當(dāng)我要引導(dǎo)學(xué)生由 know-what know-how 時,往往會有許多「不識貨」的學(xué)生嫌我啰唆。

    Know-Why

    know-why 階段的知識指的是對整個系統(tǒng)的掌握度( system understanding ),也就是了解各種知識背后復(fù)雜交錯的因果關(guān)系。有了 know-why 的知識,軟件人員除了能順利地進行軟件計劃之外,還能進一步解決更大、更復(fù)雜的問題,因為一切的知識都是有條理的。具有 know-why 的軟件人員對整個計劃具有強烈的「第六感」,可以直覺地做出正確的判斷,預(yù)先知道可能會遇到的問題。計劃的 leader 必須具備 know-why ,才能全盤掌握計劃。

    Care-Why

    care-why 指的是自發(fā)性的創(chuàng)意( self-motivated creativity )。有了源源不絕的創(chuàng)意,才能保持高度的競爭力。軟件產(chǎn)品相當(dāng)需要創(chuàng)意和洞燭先機的能力,在大家一窩蜂搶做某軟件或某服務(wù)之前,就已經(jīng)先完成深度的耕耘,技術(shù)自然比別人來得扎實,也能迅速地迎合市場需求,為公司創(chuàng)造最大的利益。

    ?

    關(guān)于買書讀書

    如果你最近是個大忙人,有一堆事情要做,就先別急著買計算機書籍。計算機書籍更新的速度很快,可不比四書五經(jīng),可以祖?zhèn)鞲浮⒏競髯樱?/span> 代代受用不盡。以前我也常沖動之下買了好書回家,然后忙得沒空讀它,等到空閑下來時,新版本也已經(jīng)出現(xiàn)了,懊悔不已!如果不急著用的書, 千萬別急著買,不然可能還沒來得及看這本書,新版本又出來了,信息界不流行考古的。

    ?

    Java 學(xué)習(xí)之道

    認(rèn)識 Java 的原理
    *
    學(xué)會 Java 語言
    *
    對象導(dǎo)向的思維
    * API
    *
    開發(fā)工具的用法

    下面分別就這幾點詳細闡述。
    學(xué)習(xí) Java 的原理
    了解 Java 的原理,才有可能真正體會 Java 的一切,學(xué)習(xí)任何事情,只要能掌握原理,就會比較順利。我發(fā)現(xiàn)許多人使用 Java 已經(jīng)逾年,卻連 Java 最基本的特質(zhì)都不清楚。

    一般來說,信息系畢業(yè)的學(xué)生,對于信息的新事物學(xué)習(xí)的速度,會比其它科系來得快,就是因為四年的教育為他們奠定了學(xué)習(xí)新事物的基礎(chǔ),這也是信息系課程的價值所在。

    除非你受過的基礎(chǔ)訓(xùn)練夠扎實,否則在學(xué)習(xí)或使用 Java 的過程中,你一定會需要參考到這些信息系學(xué)科的知識。我建議各位可以在閑暇之余,把信息系課本的書拿來讀一讀。這是治本之道,絕非立竿見影的特效藥,必須要有耐心。

    學(xué)習(xí) Java 語言
    學(xué)習(xí) Java 語言很簡單,畢竟 Java 語言也只包含五十多個關(guān)鍵詞( keyword )與幾十個算符( operator ),再加上 Java 語法( syntax )也很簡單,所以一般人可以很快就學(xué)會 Java 語言。危險的是,很多人認(rèn)為已經(jīng)完全掌控 Java 語言,但其實對于內(nèi)部的運作機制仍不能掌握,這些盲點有時候會讓你無法完全掌控 Java 語言。克服這些盲點的方式是看「 The Java Language Specification, 2nd Ed. 」(沒有中文版)來徹底弄懂 Java 程序語言,并看「 Inside the Java Virtual Machine, 2nd Ed. 」(有中文版,但翻譯得@#%$)來徹底掌握 Java 虛擬機器的運作方式。

    學(xué)習(xí)對象導(dǎo)向的思維
    學(xué)會了語言,并不代表就可以設(shè)計出好的對象導(dǎo)向系統(tǒng)架構(gòu)。想要成為對象導(dǎo)向的專家,往往需要:

    *
    多看相關(guān)的書,特別是 Design Pattern Refactoring 的書。
    *
    多觀摩別人的程序(例如 Java API design implementation
    *
    多寫程序

    學(xué)習(xí) API
    學(xué)會 Java 語言之后,還需要學(xué)會一些 API 才能寫出有用的程序。 Java API 非常多,必須規(guī)劃好一個學(xué)習(xí)路徑,才不會在浩瀚的 API 大海中迷失。必備的 API 包括了: IO New IO Collection Framework Network RMI JAXP... 等。至于其它的 API ,就看你的需求而定,大致上分成:

    * GUI
    類: JavaBean -> Swing -> JavaHelp -> Java2D -> Image IO -> JAI -> Java 3D ...
    * Enterprise
    類: JDBC -> JDO -> Servlet -> JSP -> EJB -> JMS -> JTA/JTS...
    * J2ME
    類(這一類不是我的專長,無法提供學(xué)習(xí)順序建議)

    學(xué)習(xí)開發(fā)工具的用法
    只用 JDK ,是很難寫出大型程序的,所以通常程序員會使用 JBuilder/VisualAge/ VisualCafe 等工具,這些軟件賣這么貴,一定有它的價值,值得花一些時間好好學(xué)習(xí)這些開發(fā)工具的使用方式,你將會發(fā)現(xiàn)開發(fā)工具所提供的許多功能,可以讓你在開發(fā)過程中生產(chǎn)力大增。

    ?

    Static 的意義與實作方式

    ?

    Class(static) field :共用一塊記憶體
    class(static) method
    :共用一塊記憶體
    instance(
    static) field :隨著每個 instance 各有一塊記憶體
    instance (
    static) method :共用一塊記憶體
    ??? instance method
    為什么不是隨著每個 instance 占有一塊記憶體,反倒是共用一塊記憶體?其實,讓每個 instance method 如同 instance field 一樣,隨著每個 instance 占有一塊記憶體,這么做當(dāng)然是可以的,只是 Java 編譯器和 JVM 都不這么做,因為太浪費記憶體空間了。一個 field 少則占用一個 byte ,多則占用數(shù)百 Byte ,但是 method 少則數(shù)個 byte ,多則數(shù)百 Kilo Byte Mehtod 耗費的記憶體是 field 的數(shù)百倍,甚至數(shù)千倍,當(dāng)然是能共用就盡量共用,比較不會消耗記憶體。既然 JVM 讓一個 class 的所有 instance 共用相同的 instance method ,下面兩行程式碼在 instanceMethod() 內(nèi)部時,如何區(qū)分是 instance1 instance2
    instance1.instanceMethod();
    instance2.instanceMethod();
    因為編譯器會幫我們在把 instance1 instance2 個別傳入 instanceMethod() 中當(dāng)作第一個參數(shù)。也就是說,任何 instance method 參數(shù)的實際個數(shù)都會比表面上多一個,這個多出來的參數(shù)是由 Java 編譯器幫我們加上去的,用來代表對應(yīng)的 instance 。此參數(shù)的變數(shù)名稱為 this ,也是 Java 的一個關(guān)鍵字( keyword )。
    ???
    當(dāng)調(diào)用某個 instance method 或使用某個 instance field 時,你必須在前面加上該 instance 的名稱,如果該 instance method/field 相關(guān)的 instance 和當(dāng)時程式碼所在的 instance method instance 指的是同一個 instance 時,該 instance 的名稱就是 this ,這種情況下,你也可以選擇不在前面加上「 this. 」。
    ???
    然而,在某些狀況下,非得在前面加上「 this. 」不可。例如,當(dāng) method 中的參數(shù)或區(qū)域變數(shù)和 instance field 名稱完全相同時,如果不在前面冠上「 this. 」,那么指的是參數(shù)或區(qū)域變數(shù);如果在前面冠上「 this. 」,那么指的才是 instance field

    posted on 2009-02-06 15:29 Tiger1102 閱讀(5240) 評論(4)  編輯  收藏 所屬分類: 每日進階

    FeedBack:
    # re: 關(guān)于蔡學(xué)鏞前輩《Java夜未眠》的一些摘要 2009-02-06 16:03 徐堯
    不錯,很好  回復(fù)  更多評論
      
    # re: 關(guān)于蔡學(xué)鏞前輩《Java夜未眠》的一些摘要 2009-02-17 18:47 belltoy
    程序語言建議從C學(xué)起(同時了解匯編,以及其它基礎(chǔ)知識)
    編程工具從純文本編輯器開始,不要一開始就用IDE
    《程序員修煉之道》值得一看  回復(fù)  更多評論
      
    # re: 關(guān)于蔡學(xué)鏞前輩《Java夜未眠》的一些摘要 2011-02-06 00:24 朱少軍
    如果倒過來,先學(xué)C++,再學(xué)JAVA,是不是可以這么說,如果C++吃透了,JAVA一看就會?  回復(fù)  更多評論
      
    # re: 關(guān)于蔡學(xué)鏞前輩《Java夜未眠》的一些摘要 2014-06-19 17:39 古今
    @朱少軍
    @朱少軍
    我是一名大四通信工程畢業(yè)生,跟著學(xué)校課程學(xué)習(xí)了C和C++的基礎(chǔ)部分,然后自己寒假去看了JAVA語言(JDK的基礎(chǔ)),至少我感覺要看懂很容易。但是到了提高和運用部分,光是看書不夠,程序語言還是需要大量的項目經(jīng)驗來促進自己邊用邊學(xué),而不是學(xué)完了去用。但在打基礎(chǔ)階段還是建議從C和C++入手(開發(fā)工具推薦VS2012)  回復(fù)  更多評論
      
    主站蜘蛛池模板: 4399影视免费观看高清直播| 国产高清免费的视频| 亚洲欧洲春色校园另类小说| 在线免费观看污网站| 一区二区三区在线免费观看视频| 国产亚洲综合网曝门系列| 91成年人免费视频| 久久亚洲AV成人无码国产最大| 77777亚洲午夜久久多人| 99久久久精品免费观看国产| 成年网在线观看免费观看网址| 亚洲宅男永久在线| 亚洲国产专区一区| 曰批视频免费30分钟成人| 四虎永久在线精品免费一区二区| 久久精品国产亚洲AV无码娇色| 四虎永久在线精品免费观看地址| 一级成人a毛片免费播放| 黄色一级视频免费| 67194在线午夜亚洲| 亚洲精品你懂的在线观看| 精品剧情v国产在免费线观看 | 美女视频黄a视频全免费网站色| 亚洲av无码专区在线播放| 国产午夜免费秋霞影院| 五月婷婷在线免费观看| 亚洲精品视频免费| 亚洲狠狠婷婷综合久久蜜芽| 亚洲国产人成在线观看69网站 | 99视频在线观看免费| 亚洲成a∧人片在线观看无码| 亚洲免费视频在线观看| 免费A级毛片在线播放不收费| 久久久高清免费视频 | 亚洲精品WWW久久久久久| 免费观看成人毛片a片2008| 久久精品无码精品免费专区| 人体大胆做受免费视频| 亚洲国产精品网站在线播放| 亚洲人成综合在线播放 | eeuss影院免费直达入口|