中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > 程序員技術(shù)練級(jí)攻略
谷歌是如何做代碼審查的 回到列表 清除代碼異味
 程序員技術(shù)練級(jí)攻略

作者:陳皓 時(shí)間: 2011-07-26 文檔類型:轉(zhuǎn)載 來自:酷殼

第 1 頁 前言
第 2 頁 啟蒙入門
第 3 頁 進(jìn)階加深
第 4 頁 高級(jí)深入

高級(jí)深入

1、C++ / Java 和面向?qū)ο?/strong>

我個(gè)人以為學(xué)好C++,Java也就是舉手之勞。但是C++的學(xué)習(xí)曲線相當(dāng)?shù)亩浮2贿^,我覺得C++是最需要學(xué)好的語言了。參看兩篇趣文“C++學(xué)習(xí)信心圖” 和“21天學(xué)好C++

  • 學(xué)習(xí)(麻省理工免費(fèi)課程)C++面向?qū)ο缶幊?/a>
  • 讀我的 “如何學(xué)好C++”中所推薦的那些書至少兩遍以上(如果你對(duì)C++的理解能夠深入到像我所寫的《C++虛函數(shù)表解析》或是《C++對(duì)象內(nèi)存存局)()》,或是《C/C++返回內(nèi)部靜態(tài)成員的陷阱》那就非常不錯(cuò)了)
  • 然后反思為什么C++要干成這樣,Java則不是?你一定要學(xué)會(huì)對(duì)比C++和Java的不同。比如,Java中的初始化,垃圾回收,接口,異常,虛函數(shù),等等。
  • 實(shí)踐任務(wù):
    • 用C++實(shí)現(xiàn)一個(gè)BigInt,支持128位的整形的加減乘除的操作。
    • 用C++封裝一個(gè)數(shù)據(jù)結(jié)構(gòu)的容量,比如hash table。
    • 用C++封裝并實(shí)現(xiàn)一個(gè)智能指針(一定要使用模板)。
  • 設(shè)計(jì)模式》必需一讀,兩遍以上,思考一下,這23個(gè)模式的應(yīng)用場(chǎng)景。主要是兩點(diǎn):1)鐘愛組合而不是繼承,2)鐘愛接口而不是實(shí)現(xiàn)。(也推薦《深入淺出設(shè)計(jì)模式》)
  • 實(shí)踐任務(wù):
    • 使用工廠模式實(shí)現(xiàn)一個(gè)內(nèi)存池。
    • 使用策略模式制做一個(gè)類其可以把文本文件進(jìn)行左對(duì)齊,右對(duì)齊和中對(duì)齊。
    • 使用命令模式實(shí)現(xiàn)一個(gè)命令行計(jì)算器,并支持undo和redo。
    • 使用修飾模式實(shí)現(xiàn)一個(gè)酒店的房間價(jià)格訂價(jià)策略——旺季,服務(wù),VIP、旅行團(tuán)、等影響價(jià)格的因素。
  • 學(xué)習(xí)STL的用法和其設(shè)計(jì)概念  - 容器,算法,迭代器,函數(shù)子。如果可能,請(qǐng)讀一下其源碼。
  • 實(shí)踐任務(wù):嘗試使用面向?qū)ο、STL,設(shè)計(jì)模式、和WindowsSDK圖形編程的各種技能
    • 做一個(gè)貪吃蛇或是俄羅斯方塊的游戲。支持不同的級(jí)別和難度。
    • 做一個(gè)文件瀏覽器,可以瀏覽目錄下的文件,并可以對(duì)不同的文件有不同的操作,文本文件可以打開編輯,執(zhí)行文件則執(zhí)行之,mp3或avi文件可以播放,圖片文件可以展示圖片。
  • 學(xué)習(xí)C++的一些類庫的設(shè)計(jì),如: MFC(看看候捷老師的《深入淺出MFC》) ,Boost, ACE,  CPPUnit,STL (STL可能會(huì)太難了,但是如果你能了解其中的設(shè)計(jì)模式和設(shè)計(jì)那就太好了,如果你能深入到我寫的《STL string類的寫時(shí)拷貝技術(shù)》那就非常不錯(cuò)了,ACE需要很強(qiáng)在的系統(tǒng)知識(shí),參見后面的“加強(qiáng)對(duì)系統(tǒng)的了解”)
  • Java是真正的面向?qū)ο蟮恼Z言,Java的設(shè)計(jì)模式多得不能再多,也是用來學(xué)習(xí)面向?qū)ο蟮脑O(shè)計(jì)模式的最佳語言了(參看Java中的設(shè)計(jì)模式)。
  • 推薦閱讀《Effective Java》 and 《Java解惑
  • 學(xué)習(xí)Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是學(xué)習(xí)Java的設(shè)計(jì),如IoC等。
  • Java的技術(shù)也是爛多,重點(diǎn)學(xué)習(xí)J2EE架構(gòu)以及JMS, RMI, 等消息傳遞和遠(yuǎn)程調(diào)用的技術(shù)。
  • 學(xué)習(xí)使用Java做Web Service (官方教程在這里
  • 實(shí)踐任務(wù): 嘗試在Spring或Hibernate框架下構(gòu)建一個(gè)有網(wǎng)絡(luò)的Web Service的遠(yuǎn)程調(diào)用程序,并可以在兩個(gè)Service中通過JMS傳遞消息。

C++和Java都不是能在短時(shí)間內(nèi)能學(xué)好的,C++玩是的深,Java玩的是廣,我建議兩者選一個(gè)。我個(gè)人的學(xué)習(xí)經(jīng)歷是:

  • 深究C++(我深究C/C++了十來年了)
  • 學(xué)習(xí)Java的各種設(shè)計(jì)模式。

2、加強(qiáng)系統(tǒng)了解

重要閱讀下面的幾本書:

  • Unix編程藝術(shù)》了解Unix系統(tǒng)領(lǐng)域中的設(shè)計(jì)和開發(fā)哲學(xué)、思想文化體系、原則與經(jīng)驗(yàn)。你一定會(huì)有一種醍醐灌頂?shù)母杏X。
  • Unix網(wǎng)絡(luò)編程卷1,套接字》這是一本看完你就明白網(wǎng)絡(luò)編程的書。重要注意TCP、UDP,以及多路復(fù)用的系統(tǒng)調(diào)用select/poll/epoll的差別。
  • TCP/IP詳解 卷1:協(xié)議》- 這是一本看完后你就可以當(dāng)網(wǎng)絡(luò)黑客的書。了解以太網(wǎng)的的運(yùn)作原理,了解TCP/IP的協(xié)議,運(yùn)作原理以及如何TCP的調(diào)優(yōu)。
  • 實(shí)踐任務(wù):
    • 理解什么是阻塞(同步IO),非阻塞(異步IO),多路復(fù)用(select, poll, epoll)的IO技術(shù)。
    • 寫一個(gè)網(wǎng)絡(luò)聊天程序,有聊天服務(wù)器和多個(gè)聊天客戶端(服務(wù)端用UDP對(duì)部分或所有的的聊天客戶端進(jìn)Multicast或Broadcast)。
    • 寫一個(gè)簡(jiǎn)易的HTTP服務(wù)器。
  • Unix網(wǎng)絡(luò)編程卷2,進(jìn)程間通信》信號(hào)量,管道,共享內(nèi)存,消息等各種IPC…… 這些技術(shù)好像有點(diǎn)老掉牙了,不過還是值得了解。
  • 實(shí)踐任務(wù):
    • 主要實(shí)踐各種IPC進(jìn)程序通信的方法。
    • 嘗試寫一個(gè)管道程序,父子進(jìn)程通過管道交換數(shù)據(jù)。
    • 嘗試寫一個(gè)共享內(nèi)存的程序,兩個(gè)進(jìn)程通過共享內(nèi)存交換一個(gè)C的結(jié)構(gòu)體數(shù)組。
  • 學(xué)習(xí)《Windows核心編程》一書。把CreateProcess,Windows線程、線程調(diào)度、線程同步(Event,  信號(hào)量,互斥量)、異步I/O,內(nèi)存管理,DLL,這幾大塊搞精通。
  • 實(shí)踐任務(wù):使用CreateProcess啟動(dòng)一個(gè)記事本或IE,并監(jiān)控該程序的運(yùn)行。把前面寫過的那個(gè)簡(jiǎn)易的HTTP服務(wù)用線程池實(shí)現(xiàn)一下。寫一個(gè)DLL的鉤子程序監(jiān)控指定窗口的關(guān)閉事件,或是記錄某個(gè)窗口的按鍵。
  • 有了多線程、多進(jìn)程通信,TCP/IP,套接字,C++和設(shè)計(jì)模式的基本,你可以研究一下ACE了。使用ACE重寫上述的聊天程序和HTTP服務(wù)器(帶線程池)
  • 實(shí)踐任務(wù):通過以上的所有知識(shí),嘗試
    • 寫一個(gè)服務(wù)端給客戶端傳大文件,要求把100M的帶寬用到80%以上。(注意,磁盤I/O和網(wǎng)絡(luò)I/O可能會(huì)很有問題,想一想怎么解決,另外,請(qǐng)注意網(wǎng)絡(luò)傳輸最大單元MTU)
    • 了解BT下載的工作原理,用多進(jìn)程的方式模擬BT下載的原理。

3、系統(tǒng)架構(gòu)

  • 負(fù)載均衡。HASH式的,純動(dòng)態(tài)式的。(可以到Google學(xué)術(shù)里搜一些關(guān)于負(fù)載均衡的文章讀讀)
  • 多層分布式系統(tǒng) – 客戶端服務(wù)結(jié)點(diǎn)層、計(jì)算結(jié)點(diǎn)層、數(shù)據(jù)cache層,數(shù)據(jù)層。J2EE是經(jīng)典的多層結(jié)構(gòu)。
  • CDN系統(tǒng) – 就近訪問,內(nèi)容邊緣化。
  • P2P式系統(tǒng),研究一下BT和電驢的算法。比如:DHT算法。
  • 服務(wù)器備份,雙機(jī)備份系統(tǒng)(Live-Standby和Live-Live系統(tǒng)),兩臺(tái)機(jī)器如何通過心跳監(jiān)測(cè)對(duì)方?集群主結(jié)點(diǎn)備份。
  • 虛擬化技術(shù),使用這個(gè)技術(shù),可以把操作系統(tǒng)當(dāng)應(yīng)用程序一下切換或重新配置和部署。
  • 學(xué)習(xí)Thrift,二進(jìn)制的高性能的通訊中間件,支持?jǐn)?shù)據(jù)(對(duì)象)序列化和多種類型的RPC服務(wù)。
  • 學(xué)習(xí)Hadoop。Hadoop框架中最核心的設(shè)計(jì)就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的,簡(jiǎn)單的一句話解釋MapReduce就是“任務(wù)的分解與結(jié)果的匯總”。HDFS是Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System)的縮寫,為分布式計(jì)算存儲(chǔ)提供了底層支持。
  • 了解NoSQL數(shù)據(jù)庫(有人說可能是一個(gè)過渡炒作的技術(shù)),不過因?yàn)槌笠?guī)模以及高并發(fā)的純動(dòng)態(tài)型網(wǎng)站日漸成為主流,而SNS類網(wǎng)站在數(shù)據(jù)存取過程中有著實(shí)時(shí)性等剛性需求,這使得目前NoSQL數(shù)據(jù)庫慢慢成了人們所關(guān)注的焦點(diǎn),并大有成為取代關(guān)系型數(shù)據(jù)庫而成為未來主流數(shù)據(jù)存儲(chǔ)模式的趨勢(shì)。當(dāng)前NoSQL數(shù)據(jù)庫很多,大部分都是開源的,其中比較知名的有:MemcacheDB、Redis、Tokyo Cabinet(升級(jí)版為Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。

寫了那么多,回顧一下,覺得自己相當(dāng)?shù)挠谐删透小OM蠹也灰獓樦,我自己這十來年也在不斷地學(xué)習(xí),今天我也在學(xué)習(xí)中,人生本來就是一個(gè)不斷學(xué)習(xí)和練級(jí)的過程。不過,一定有漏的,也有不對(duì)的,還希望大家補(bǔ)充和更正。(我會(huì)根據(jù)大家的反饋隨時(shí)更新此文)歡迎大家通過我的微博(@左耳朵耗子)和twitter(@haoel)和我交流。

—– 更新  2011/07/19 —–

1)有朋友奇怪為什么我在這篇文章開頭說了web+移動(dòng),卻沒有在后面提到iOS/Android的前端開發(fā)。因?yàn)槲倚睦镉幸环N感覺,移動(dòng)設(shè)備上的UI最終也會(huì)被Javascript取代。大家可以用iPhone或Android看看google+,你就會(huì)明白了。

2)有朋友說我這里的東西太多了,不能為了學(xué)習(xí)而學(xué)習(xí),我非常同意。我在文章的前面也說了要思考。另外,千萬不要以為我說的這些東西是一些新的技術(shù),這份攻略里95%以上的全是基礎(chǔ)。而且都是久經(jīng)考驗(yàn)的基礎(chǔ)技術(shù)。即是可以讓你一通百通的技術(shù),也是可以讓你找到一份不錯(cuò)工作的技術(shù)。

3)有朋友說學(xué)這些東西學(xué)完都40了,還不如想想怎么去掙錢。我想告訴大家,一是我今年還沒有40歲,二是學(xué)無止境啊,三是我不覺得掙錢有多難,難的是怎么讓你值那么多錢?無論是打工還是創(chuàng)業(yè),是什么東西讓你自己的價(jià)值,讓你公司的價(jià)值更值錢?別的地方我不敢說,對(duì)于互聯(lián)網(wǎng)或IT公司來說,技術(shù)實(shí)力絕對(duì)是其中之一。

4)有朋友說技術(shù)都是工具,不應(yīng)該如此癡迷這句話沒有錯(cuò),有時(shí)候我們需要更多的是抬起頭來看看技術(shù)以外的事情,或者是說我們?cè)谧骷夹g(shù)的時(shí)候不去思考為什么會(huì)有這個(gè)技術(shù),為什么不是別的,問題不在于技術(shù),問題在于我們死讀書,讀死書,成了技術(shù)的書呆子。

5) 對(duì)于NoSQL,最近比較火,但我對(duì)其有點(diǎn)保守,所以,我只是說了解就可以。對(duì)于Hadoop,我覺得其在分布式系統(tǒng)上有巨大的潛力,所以需要學(xué)習(xí)。 對(duì)于關(guān)系型數(shù)據(jù)庫,的確是很重要的東西,這點(diǎn)是我的疏忽,在原文里補(bǔ)充。

原文:http://coolshell.cn/articles/4990.html

本文鏈接:http://m.95time.cn/tech/program/2011/8523.asp 

出處:酷殼
責(zé)任編輯:bluehearts

上一頁 進(jìn)階加深 下一頁

◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
程序員年紀(jì)越大越出色越稀有
我是如何從煤礦工成為程序員的
兩個(gè)程序員的故事
用戶體驗(yàn)設(shè)計(jì)剖析
WEB移動(dòng)應(yīng)用框架構(gòu)想
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡(jiǎn)單繪制一個(gè)可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡(jiǎn)單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:4/41個(gè)記錄/頁 轉(zhuǎn)到 頁 共4個(gè)記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測(cè)試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2