進(jìn)階加深
1、 C語言和操作系統(tǒng)調(diào)用
- 重新學(xué)C語言,理解指針和內(nèi)存模型,用C語言實(shí)現(xiàn)一下各種經(jīng)典的算法和數(shù)據(jù)結(jié)構(gòu)。推薦《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》、《算法導(dǎo)論》和《編程珠璣》。
- 學(xué)習(xí)(麻省理工免費(fèi)課程)計(jì)算機(jī)科學(xué)和編程導(dǎo)論
- 學(xué)習(xí)(麻省理工免費(fèi)課程)C語言內(nèi)存管理
- 學(xué)習(xí)Unix/Linux系統(tǒng)調(diào)用(Unix高級(jí)環(huán)境編程),,了解系統(tǒng)層面的東西。
- 用這些系統(tǒng)知識(shí)操作一下文件系統(tǒng),用戶(實(shí)現(xiàn)一個(gè)可以拷貝目錄樹的小程序)
- 用fork/wait/waitpid寫一個(gè)多進(jìn)程的程序,用pthread寫一個(gè)多線程帶同步或互斥的程序。多進(jìn)程多進(jìn)程購票的程序。
- 用signal/kill/raise/alarm/pause/sigprocmask實(shí)現(xiàn)一個(gè)多進(jìn)程間的信號(hào)量通信的程序。
- 學(xué)會(huì)使用gcc和gdb來編程和調(diào)試程序(參看我的《用gdb調(diào)試程序》)
- 學(xué)會(huì)使用makefile來編譯程序。(參看我的《跟我一起寫makefile》)
- IPC和Socket的東西可以放到高級(jí)中來實(shí)踐。
- 學(xué)習(xí)Windows SDK編程(Windows 程序設(shè)計(jì) ,MFC程序設(shè)計(jì))
- 寫一個(gè)窗口,了解WinMain/WinProcedure,以及Windows的消息機(jī)制。
- 寫一些程序來操作Windows SDK中的資源文件或是各種圖形控件,以及作圖的編程。
- 學(xué)習(xí)如何使用MSDN查看相關(guān)的SDK函數(shù),各種WM_消息以及一些例程。
- 這本書中有很多例程,在實(shí)踐中請(qǐng)不要照抄,試著自己寫一個(gè)自己的例程。
- 不用太多于精通這些東西,因?yàn)镚UI正在被Web取代,主要是了解一下Windows 圖形界面的編程。@virushuo 說:“ 我覺得GUI確實(shí)不那么熱門了,但充分理解GUI工作原理是很重要的。包括移動(dòng)設(shè)備開發(fā),如果沒有基礎(chǔ)知識(shí)仍然很吃力;蛘哒f移動(dòng)設(shè)備開發(fā)必須理解GUI工作,或者在win那邊學(xué),或者在mac/iOS上學(xué)”。
2、學(xué)習(xí)Java
- Java 的學(xué)習(xí)主要是看經(jīng)典的Core Java 《Java 核心技術(shù)編程》和《Java編程思想》(有兩卷,我僅鏈了第一卷,足夠了,因?yàn)镴ava的圖形界面了解就可以了)
- 學(xué)習(xí)JDK,學(xué)會(huì)查閱Java API Doc http://download.oracle.com/javase/6/docs/api/
- 了解一下Java這種虛擬機(jī)語言和C和Python語言在編譯和執(zhí)行上的差別。從C、Java、Python思考一下“跨平臺(tái)”這種技術(shù)。
- 學(xué)會(huì)使用IDE Eclipse,使用Eclipse 編譯,調(diào)試和開發(fā)Java程序。
- 建一個(gè)Tomcat的網(wǎng)站,嘗試一下JSP/Servlet/JDBC/MySQL的Web開發(fā)。把前面所說的那個(gè)PHP的小項(xiàng)目試著用JSP和Servlet實(shí)現(xiàn)一下。
3、Web的安全與架構(gòu)
- 學(xué)習(xí)HTML5,網(wǎng)上有很多很多教程,以前酷殼也介紹過很多,我在這里就不羅列了。
- 學(xué)習(xí)Web開發(fā)的安全問題(參考新浪微博被攻擊的這個(gè)事,以及Ruby的這篇文章)
- 學(xué)習(xí)HTTP Server的rewrite機(jī)制,Nginx的反向代理機(jī)制,fast-cgi(如:PHP-FPM)
- 學(xué)習(xí)Web的靜態(tài)頁面緩存技術(shù)。
- 學(xué)習(xí)Web的異步工作流處理,數(shù)據(jù)Cache,數(shù)據(jù)分區(qū),負(fù)載均衡,水平擴(kuò)展的構(gòu)架。
- 實(shí)踐任務(wù):
- 使用HTML5的canvas 制作一些Web動(dòng)畫。
- 嘗試在前面開發(fā)過的那個(gè)Web應(yīng)用中進(jìn)行SQL注入,JS注入,以及XSS攻擊。
- 把前面開發(fā)過的那個(gè)Web應(yīng)用改成構(gòu)造在Nginx + PHP-FPM + 靜態(tài)頁面緩存的網(wǎng)站
4、學(xué)習(xí)關(guān)系型數(shù)據(jù)庫
- 你可以安裝MSSQLServer或MySQL來學(xué)習(xí)數(shù)據(jù)庫。
- 學(xué)習(xí)教科書里數(shù)據(jù)庫設(shè)計(jì)的那幾個(gè)范式,1NF,2NF,3NF,……
- 學(xué)習(xí)數(shù)據(jù)庫的存過,觸發(fā)器,視圖,建索引,游標(biāo)等。
- 學(xué)習(xí)SQL語句,明白表連接的各種概念(參看《SQL Join的圖示》)
- 學(xué)習(xí)如何優(yōu)化數(shù)據(jù)庫查詢(參看《MySQL的優(yōu)化》)
- 實(shí)踐任務(wù):設(shè)計(jì)一個(gè)論壇的數(shù)據(jù)庫,至少滿足3NF,使用SQL語句查詢本周,本月的最新文章,評(píng)論最多的文章,最活躍用戶。
5、一些開發(fā)工具
- 學(xué)會(huì)使用SVN或Git來管理程序版本。
- 學(xué)會(huì)使用JUnit來對(duì)Java進(jìn)行單元測(cè)試。
- 學(xué)習(xí)C語言和Java語言的coding standard 或 coding guideline。(我N年前寫過一篇關(guān)C語言非常簡單的文章——《編程修養(yǎng)》,這樣的東西你可以上網(wǎng)查一下,一大堆)。
- 推薦閱讀《代碼大全》《重構(gòu)》《代碼整潔之道》
出處:酷殼
責(zé)任編輯:bluehearts
上一頁 啟蒙入門 下一頁 高級(jí)深入
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|