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

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

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

    小菜毛毛技術分享

    與大家共同成長

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      164 Posts :: 141 Stories :: 94 Comments :: 0 Trackbacks

    每隔一段時間,就會收到些類似的消息:
    怎么學好軟件開發? 我已經學完了A,我接下來該學B還是C?

    其實這樣的問題,真的是一言難復。如何學習,是一個很復雜的話題,尤其是眼下業內的技術名詞日新月異,亂花迷人眼,使得新人更加看不清。所以才激發了我關于“技術族譜”的設想,本意就是想通過一個機制來理順知識之間的關系,分享每個人的學習經驗,新人借鑒老人的學習路徑,從而減少走彎路的現象。

    記得2007年的時候,一次團隊內部開總結會,我在白板上隨手畫過一個開發相關知識的結構圖,當時還有團隊成員拿相機拍下來,現在想想,也許對某些人有一定的指導意義,于是今天整理了一下發出來,如下圖所示:


    一些相關的解釋:

    學校里的課程沒用嗎?
    答:肯定有用。
    計算機專業的經典理論課,意義非凡:計算機組成原理、計算機體系結構、操作系統、編譯原理、數據結構。操作系統中的內存管理算法、進程調度算法、并發控制算法,都是非常經典的,你會在很多其它地方發現這些算法的應用或者變體。編譯原理有助于我們理解編程語言是如何工作的,如何用范式來表達復雜的語法,編譯原理中的狀態機相關知識,也是開發者手中的強大武器。數據結構就更不用說了,List,Map,Tree,是編程中廣泛使用的。

    快餐式軟件開發培訓的問題何在?
    一個典型的快餐式培訓班,先教java語言,然后教SSH,然后給個千篇一律的虛擬項目做一下,最后號稱培養出來一批“WEB開發”程序員。我覺得,如果之前沒有任何基礎,僅靠這樣的培訓,那么出來真的只能做非常程式化的工作。我一直提倡穩扎穩打,從下向上學起這樣的方式,缺點是不如容易出效果。所以從兩個方向入手,一邊學基礎,一邊學應用,互相印證,也是不錯的學習路徑。

    軟件開發的門檻在提高嗎?
    我覺得是的,當然,我說的不包括hello world這樣的示例程序的開發。雖然現在程序語言比十年前強大很多,工具要好用很多,但要想寫出一個有點意義的軟件,需要了解的知識多了很多,需要配置的環境復雜了很多。看看有多少初學者被java的ClassPath所困擾,您就明白我說的意思了。

    開發不僅僅是學一門語言!
    開發的本質是用程序控制計算機做一件事。基本上,任何有價值的程序都有內政和外交。內政就是程序的處理流程、數據加工算法、并發控制。外交就是網絡通信、IO、數據庫訪問,以及通過各種協議和其它系統進行交互。很多知識,尤其是外交相關的知識,僅僅學習一門語言是不夠的。

    誤區:很多人花大量精力關注最上層,比如:新的框架、新的工具、各種處理問題的技巧等等。但偏偏這一部分的變化最快,您在這上面投入的精力保值能力最差。技術有很強的相似性,比如,如果您真正掌握了javascript,那么掌握Ext或者JQuery只是熟悉對方的編程習慣和API而已,沒必要為了這些新名詞而疲于奔命。

    一家之言,歡迎拍磚或者交流。

    ----

    答問:

    sun_blackh 發表于2009年9月30日 8:18:27
    不好。不知道各種通信協議在什么地方。為什么要把tcp/ip單獨拿出來?質量意識顯得很突兀,和整體沒有關系。雖然它很重要。什么是框架?它應該在哪里?我想LZ沒有仔細推敲過。

    答:
    知識體系中,越是向上,則越是偏向應用層的東西。“各類協議”,只是一個泛指,協議太多了,在一個人的知識結構中,只學習跟自己工作和興趣需要的即可,比如,如果你做網管,可以關心SNMP,JMX;如果你做WEB開發,可以關心SOAP,AJAX;如果你做SP,可以關注各類短信網關的協議等等。TCP/IP之所以要單拿出來,那絕對是有道理的,TCP/IP是一個協議棧,我覺得只要你想做網絡方面的開發,那是必須要學習的,TCP/IP已經是一種不可替代的標準了。
    “框架”和剛才對“各類協議”的解釋是一樣的,并不特指哪種框架,而是一個統稱,是根據需要去學習的,比如:SSH,比如:JQUERY,比如:EXT,比如:Reason等等。
     質量意識你覺得突兀嗎?我覺得它就應該貫穿軟件開發的方方面面,它并不是一項具體的技術,但卻要時時刻刻掛在心中。

    chgaowei 發表于2009年10月2日 星期五 11:08:53  IP:舉報
    這個模型很不錯。我想在補充幾個: 1、領域知識。 2、軟件工程。 3、算法,數據庫,網絡基礎應該放在下面。 4、質量意識換成軟件工程。
    答:
    您補充的挺好,領域知識,或者說業務知識,的確很重要。
    關于“軟件工程”,如果代替“質量意識”,這個我覺得值得商榷,因為我覺得軟件工程并不能代表高質量軟件的全部,你覺得呢。
    算法,我個人的意見認為,并不能作為一個底層的東西,對于多數人來說,應該算是可選項,對于某些特殊軟件開發,比如視頻編解碼、搜索引擎等等,可能算法是必須的基礎,可能連數學都要算上。
    而 網絡 和 數據庫,按我的原意,應該是程序語言、數據庫、網絡作為三個并列的知識領域,為了圖的緊湊型,所以把數據庫和網絡豎起來了,但我覺得數據庫和網絡并不是構成軟件開發的必要基礎,可以選修。

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jinxfei/archive/2009/09/27/4602449.aspx


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲六月丁香婷婷综合| 亚洲精品福利网站| 色偷偷亚洲男人天堂| 精品免费国产一区二区| 亚洲爆乳大丰满无码专区| 在线免费观看中文字幕| 亚洲成av人无码亚洲成av人| 永久免费bbbbbb视频| 亚洲AV无码一区二区一二区| 国产99视频精品免费视频7| 苍井空亚洲精品AA片在线播放| 亚洲Aⅴ无码一区二区二三区软件| 欧洲亚洲综合一区二区三区| 亚洲日韩人妻第一页| 丝袜足液精子免费视频| 精品亚洲A∨无码一区二区三区| 久草视频在线免费| 亚洲精品无码一区二区| 亚洲av片一区二区三区| 最近更新免费中文字幕大全| 久久精品国产亚洲av麻豆色欲| 日本在线高清免费爱做网站| 国产成人综合亚洲绿色| 中文字幕在亚洲第一在线| 色猫咪免费人成网站在线观看 | 亚洲精品无码99在线观看| 皇色在线免费视频| 亚洲国产成人无码av在线播放| 免费无码肉片在线观看| 四虎国产精品成人免费久久| 久久久久亚洲AV无码专区首| 毛片免费观看网站| 中文字幕免费在线播放| 亚洲va在线va天堂va手机| 亚洲精品人成无码中文毛片| 人妻无码久久一区二区三区免费| 亚洲色偷精品一区二区三区| 狠狠亚洲婷婷综合色香五月排名| 精品国产免费人成电影在线观看| 国产精品亚洲一区二区无码| 日韩亚洲AV无码一区二区不卡 |