Ⅰ 計算機軟考初級程序員的考試內容有哪些
初級程序員考試:考試科目1:計算機硬軟體基礎知識
1. 計算機科學基礎
1.1 數制及其轉換
二進制、十進制和十六進制等常用數制及其相互轉換
1.2 數據的表示
數的表示(原碼、反碼、補碼表示,整數和實數的機內表示方法,精度和溢出)
非數值表示(字元和漢字的機內表示、聲音和圖像的機內表示)
校驗方法和校驗碼(奇偶校驗碼、海明校驗碼)
1.3 算術運算和邏輯運算
計算機中二進制數的運算方法
邏輯代數的基本運算和邏輯表達式的化簡
1.4 數學應用
常用數值計算(矩陣、方程的近似求解、插值)
排列組合、應用統計(數據的統計分析)
1.5 常用數據結構
數組(表態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹)、圖的定義、存儲和操作
1.6 常用演算法
常用的排序演算法、查找演算法、數值計算、字元串處理、數據壓縮演算法、遞歸演算法、圖的相關演算法
演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表)
2. 計算機系統基礎知識
2.1 硬體基礎知識
2.1.1 計算機系統的組成,硬體系統、軟體系統及層次結構
2.1.2 計算機類型和特點
微機、工作站、伺服器、大型計算機、巨型計算機
2.1.3 中央處理器CPU
運算器和控制器的組成,常用的寄存器、指令系統、定址方式、指令執行控制、處理機性能
2.1.4 主存和輔存
存儲器系統
存儲介質(半導體、硬碟、光碟、快閃記憶體、軟盤、磁帶等)
主存儲器的組成、性能及基本原理
Cache的概念、虛擬存儲的概念
輔存設備的類型、特性、性能和容量計算
2.1.5 I/O介面、I/O設備和通信設備
I/O介面(匯流排、DMA、通道、SCSI、並行口、RS232C、USB、IEEE1394)
I/O設備的類型和特性(鍵盤、滑鼠、顯示器、列印機、掃描儀、攝像頭,以及各種輔存設備)
I/O設備控制方式(中斷控制、DMA)
通信設備的類型和特性(Modem、集線器、交換機、中繼器、路由器、網橋、網關)及其連接方法和連接介質(串列連接、並行連接,傳輸介質的類型和特性)
2.2 軟體基礎知識
2.2.1 操作系統基礎知識
操作系統的類型和功能
操作系統的內核(中斷控制)和進程概念
處理機管理、存儲管理、設備管理、文件管理、作業管理
漢字處理
圖形用戶界面及其操作方法
2.2.2 程序設計語言和語言處理程序基礎知識
匯編、編譯、解釋系統的基礎知識
程序設計語言的基本成分(數據、運算、控制和傳輸)
過程(函數)調用
2.3 網路基礎知識
網路的功能、分類、組成和拓撲結構
網路體系結構與協議(OSI/RM,TCP/IP)
常用網路設備與網路通信設備,網路操作系統基礎知識和使用
Client/Server結構、Browser/Server結構
LAN基礎知識
Internet基礎知識
2.4 資料庫基礎知識
資料庫管理系統的主要功能和特徵
資料庫模型(概念模式、外模式、內模式)
數據模型,ER圖
數據操作(關系運算)
資料庫語言(SQL)
資料庫的主要控制功能
2.5 多媒體基礎知識
多媒體基礎概念,常用多媒體設備性能特徵,常用多媒體文件格式類型
簡單圖形的繪制,圖像文件的基本處理方法
音頻和視頻信息的應用
簡單多媒體應用製作方法
2.6 系統性能指標
響應時間、吞吐量、周轉時間等概念
可靠性、可維護性、可擴充性、可移植性、可用性、可重用性、安全性等概念
2.7 計算機應用基礎知識和常用辦公軟體的操作方法
信息管理、數據處理、輔助設計、自動控制、科學計算、人工智慧等概念
文字處理基礎知識和常用操作方法
電子表格處理基礎知識和常用操作方法
演示文稿製作方法
電子郵件處理操作方法
網頁製作方法
3. 軟體開發和運行維護基礎知識
3.1 軟體工程和項目管理基礎知識
軟體工程基本概念
軟體開發各階段的目標和任務
軟體過程基本知識
軟體工程項目管理基本知識
面向對象開發方法基礎知識
軟體開發工具與環境基礎知識(CASE)
軟體質量管理基礎知識
3.2 軟體需求分析、需求定義及軟體基礎知識
結構化分析概念(數據流圖(DFD)、實體關系圖(ER))
面向對象設計、結構化設計基礎知識
模擬設計、代碼設計、人機界面設計要點
3.3 程序設計基礎知識
結構設計程序設計,程序流程圖,NS圖,PAD圖
程序設計風格
面向對象設計基礎知識、可視化程序設計基礎知識
3.4 程序測試基礎知識
黑盒測試、白盒測試、灰盒測試基礎知識
測試工作流程
3.5 軟體開發文檔基礎知識
3.6 軟體運行和維護基礎知識
軟體運行基礎知識
軟體維護基礎知識
4. 安全性基礎知識
安全性基本概念
計算機病毒的防治,計算機犯罪的防範
訪問控制
加密與解密基礎知識
5. 標准化基礎知識
標准化基本概念
國際標准、國家標准、行業標准、企業標准基礎知識
代碼標准、文件格式標准、安全標准、軟體開發規范和文檔標准基礎知識
標准化機構
6. 信息化基本知識
信息化基本概念
全球信息化趨勢,國家信息化戰略,企業信息化戰略和策略常識
有關的法律、法規要點
過程教育、電子商務、電子政務等常識
企業信息資源管理常識
7. 計算機專業英語
掌握計算機技術的基本詞彙
能正確閱讀和理解本領域的簡單英文資料
考試科目2:程序設計
1. 內部設計
1.1 理解外部設計
1.2 功能劃分和確定結構
數據流圖、結構圖
1.3 物理數據設計
確定數據組織方式、存儲介質,設計記錄格式和處理方式
1.4 詳細輸入輸出設計
界面設計、報表設計
1.5 內部設計文檔
對程序介面、程序功能、人機界面、輸入輸出、測試計劃的描述
1.6 內部設計文檔
2. 程序設計
2.1 模擬劃分(原則、方法、標准)
2.2 編寫程序設計文檔
模塊規格說明書(程序處理邏輯的描述、輸入輸出數據格式的描述)
測試要求說明書(測試類型和目標、測試用例、測試方法)
2.3 程序設計評審
3. 程序實現
3.1 編程
編程方法和標准
程序設計語言的使用
人工檢查
程序文檔化
3.2 程序測試
准備測試環境和測試工具
准備測試數據
寫出測試報告
4.程序設計語言(C語言為必選,其他語言可以任選一種)
4.1 C程序設計語言(ANSI C標准)
程序結構,語法,數據類型說明,可執行語句,函數調用,標准庫函數,指針
4.2 C++程序設計語言(ANSI C++標准)
C++和面向對象程序設計,語法和程序結構,類、成員、構造函數、析構函數、模板、繼承、多態
4.3 Java程序設計(Java 2)
Java和面向對象程序設計
語言機制(程序結構和語法,類、成員、構造函數、析構函數、繼承、介面)
4.4 Visual Basic程序設計(Visual Basic 6.0)
用戶界面設計
程序結構和語法
文件系統對象
訪問資料庫
復習材料(均為清華大學出版社):
978-7-302-20585-2,程序員教程(第三版),張淑平主編
7-302-12895-2,程序員教程(第2版),沈林興主編
Ⅱ 程序員考試都考試些什麼
1.程序員考試大綱
一、考試說明
1.考試要求:
(1)掌握數制及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
(2)理解計算機的組成以及各主要部件的性能指標;
(3)掌握操作系統、程序設計語言的基礎知識;
(4)熟練掌握計算機常用軟體的基本操作;
(5)熟練掌握基本數據結構和常用演算法;
(6)熟練掌握C程序設計語言,以及C++、Java、Visual Basic其中一種程序設計語言;
(7)熟悉資料庫、網路和多媒體的基礎知識;
(8)掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
(9)了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
(10)了解信息化、計算機應用的基礎知識;
(11)正確閱讀和理解計算機領域的簡單英文資料。
2.通過本考試的合格人員能根據軟體開發項目管理和軟體工程的要求,按照程序設計規格說明書編制並調試程序,寫出程序的相應文檔,產生符合標准規范的、實現設計要求的、能正確可靠運行的程序,具有助理工程師(或技術員)的實際工作能力和業務水平。
3.本考試設置的科目包括:
(1)計算機硬軟體基礎知識,考試時間為150分鍾,筆試;
(2)程序設計,考試時間為150分鍾,筆試。
二、考試范圍
考試科目1:計算機硬軟體基礎知識
1. 計算機科學基礎
1.1 數制及其轉換
二進制、十進制和十六進制等常用數制及其相互轉換
1.2 數據的表示
數的表示(原碼、反碼、補碼表示,整數和實數的機內表示方法,精度和溢出)
非數值表示(字元和漢字的機內表示、聲音和圖像的機內表示)
校驗方法和校驗碼(奇偶校驗碼、海明校驗碼)
1.3 算術運算和邏輯運算
計算機中二進制數的運算方法
邏輯代數的基本運算和邏輯表達式的化簡
1.4 數學應用
常用數值計算(矩陣、方程的近似求解、插值)
排列組合、應用統計(數據的統計分析)
1.5 常用數據結構
數組(表態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹)、圖的定義、存儲和操作
1.6 常用演算法
常用的排序演算法、查找演算法、數值計算、字元串處理、數據壓縮演算法、遞歸演算法、圖的相關演算法
演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表)
2. 計算機系統基礎知識
2.1 硬體基礎知識
2.1.1 計算機系統的組成,硬體系統、軟體系統及層次結構
2.1.2 計算機類型和特點
微機、工作站、伺服器、大型計算機、巨型計算機
2.1.3 中央處理器CPU
運算器和控制器的組成,常用的寄存器、指令系統、定址方式、指令執行控制、處理機性能
2.1.4 主存和輔存
存儲器系統
存儲介質(半導體、硬碟、光碟、快閃記憶體、軟盤、磁帶等)
主存儲器的組成、性能及基本原理
Cache的概念、虛擬存儲的概念
輔存設備的類型、特性、性能和容量計算
2.1.5 I/O介面、I/O設備和通信設備
I/O介面(匯流排、DMA、通道、SCSI、並行口、RS232C、USB、IEEE1394)
I/O設備的類型和特性(鍵盤、滑鼠、顯示器、列印機、掃描儀、攝像頭,以及各種輔存設備)
I/O設備控制方式(中斷控制、DMA)
通信設備的類型和特性(Modem、集線器、交換機、中繼器、路由器、網橋、網關)及其連接方法和連接介質(串列連接、並行連接,傳輸介質的類型和特性)
2.2 軟體基礎知識
2.2.1 操作系統基礎知識
操作系統的類型和功能
操作系統的內核(中斷控制)和進程概念
處理機管理、存儲管理、設備管理、文件管理、作業管理
漢字處理
圖形用戶界面及其操作方法
2.2.2 程序設計語言和語言處理程序基礎知識
匯編、編譯、解釋系統的基礎知識
程序設計語言的基本成分(數據、運算、控制和傳輸)
過程(函數)調用
2.3 網路基礎知識
網路的功能、分類、組成和拓撲結構
網路體系結構與協議(OSI/RM,TCP/IP)
常用網路設備與網路通信設備,網路操作系統基礎知識和使用
Client/Server結構、Browser/Server結構
LAN基礎知識
Internet基礎知識
2.4 資料庫基礎知識
資料庫管理系統的主要功能和特徵
資料庫模型(概念模式、外模式、內模式)
數據模型,ER圖
數據操作(關系運算)
資料庫語言(SQL)
資料庫的主要控制功能
2.5 多媒體基礎知識
多媒體基礎概念,常用多媒體設備性能特徵,常用多媒體文件格式類型
簡單圖形的繪制,圖像文件的基本處理方法
音頻和視頻信息的應用
簡單多媒體應用製作方法
2.6 系統性能指標
響應時間、吞吐量、周轉時間等概念
可靠性、可維護性、可擴充性、可移植性、可用性、可重用性、安全性等概念
2.7 計算機應用基礎知識和常用辦公軟體的操作方法
信息管理、數據處理、輔助設計、自動控制、科學計算、人工智慧等概念
文字處理基礎知識和常用操作方法
電子表格處理基礎知識和常用操作方法
演示文稿製作方法
電子郵件處理操作方法
網頁製作方法
3. 軟體開發和運行維護基礎知識
3.1 軟體工程和項目管理基礎知識
軟體工程基本概念
軟體開發各階段的目標和任務
軟體過程基本知識
軟體工程項目管理基本知識
面向對象開發方法基礎知識
軟體開發工具與環境基礎知識(CASE)
軟體質量管理基礎知識
3.2 軟體需求分析、需求定義及軟體基礎知識
結構化分析概念(數據流圖(DFD)、實體關系圖(ER))
面向對象設計、結構化設計基礎知識
模擬設計、代碼設計、人機界面設計要點
3.3 程序設計基礎知識
結構設計程序設計,程序流程圖,NS圖,PAD圖
程序設計風格
面向對象設計基礎知識、可視化程序設計基礎知識
3.4 程序測試基礎知識
黑盒測試、白盒測試、灰盒測試基礎知識
測試工作流程
3.5 軟體開發文檔基礎知識
3.6 軟體運行和維護基礎知識
軟體運行基礎知識
軟體維護基礎知識
4. 安全性基礎知識
安全性基本概念
計算機病毒的防治,計算機犯罪的防範
訪問控制
加密與解密基礎知識
5. 標准化基礎知識
標准化基本概念
國際標准、國家標准、行業標准、企業標准基礎知識
代碼標准、文件格式標准、安全標准、軟體開發規范和文檔標准基礎知識
標准化機構
6. 信息化基本知識
信息化基本概念
全球信息化趨勢,國家信息化戰略,企業信息化戰略和策略常識
有關的法律、法規要點
過程教育、電子商務、電子政務等常識
企業信息資源管理常識
7. 計算機專業英語
掌握計算機技術的基本詞彙
能正確閱讀和理解本領域的簡單英文資料
考試科目2:程序設計
1. 內部設計
1.1 理解外部設計
1.2 功能劃分和確定結構
數據流圖、結構圖
1.3 物理數據設計
確定數據組織方式、存儲介質,設計記錄格式和處理方式
1.4 詳細輸入輸出設計
界面設計、報表設計
1.5 內部設計文檔
對程序介面、程序功能、人機界面、輸入輸出、測試計劃的描述
1.6 內部設計文檔
2. 程序設計
2.1 模擬劃分(原則、方法、標准)
2.2 編寫程序設計文檔
模塊規格說明書(程序處理邏輯的描述、輸入輸出數據格式的描述)
測試要求說明書(測試類型和目標、測試用例、測試方法)
2.3 程序設計評審
3. 程序實現
3.1 編程
編程方法和標准
程序設計語言的使用
人工檢查
程序文檔化
3.2 程序測試
准備測試環境和測試工具
准備測試數據
寫出測試報告
4.程序設計語言(C語言為必選,其他語言可以任選一種)
4.1 C程序設計語言(ANSI C標准)
程序結構,語法,數據類型說明,可執行語句,函數調用,標准庫函數,指針
4.2 C++程序設計語言(ANSI C++標准)
C++和面向對象程序設計,語法和程序結構,類、成員、構造函數、析構函數、模板、繼承、多態
4.3 Java程序設計(Java 2)
Java和面向對象程序設計
語言機制(程序結構和語法,類、成員、構造函數、析構函數、繼承、介面)
4.4 Visual Basic程序設計(Visual Basic 6.0)
用戶界面設計
程序結構和語法
文件系統對象
訪問資料庫
Ⅲ 程序員必須掌握哪些演算法
一.基本演算法:
枚舉. (poj1753,poj2965)
貪心(poj1328,poj2109,poj2586)
遞歸和分治法.
遞推.
構造法.(poj3295)
模擬法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.圖演算法:
圖的深度優先遍歷和廣度優先遍歷.
最短路徑演算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
最小生成樹演算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
拓撲排序 (poj1094)
二分圖的最大匹配 (匈牙利演算法) (poj3041,poj3020)
最大流的增廣路演算法(KM演算法). (poj1459,poj3436)
三.數據結構.
串 (poj1035,poj3080,poj1936)
排序(快排、歸並排(與逆序數有關)、堆排) (poj2388,poj2299)
簡單並查集的應用.
哈希表和二分查找等高效查找法(數的Hash,串的Hash)
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
哈夫曼樹(poj3253)
堆
trie樹(靜態建樹、動態建樹) (poj2513)
四.簡單搜索
深度優先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)
廣度優先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
簡單搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.動態規劃
背包問題. (poj1837,poj1276)
型如下表的簡單DP(可參考lrj的書 page149):
E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最長公共子序列) (poj3176,poj1080,poj1159)
C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最優二分檢索樹問題)
六.數學
組合數學:
1.加法原理和乘法原理.
2.排列組合.
3.遞推關系.
(POJ3252,poj1850,poj1019,poj1942)
數論.
1.素數與整除問題
2.進制位.
3.同餘模運算.
(poj2635, poj3292,poj1845,poj2115)
計算方法.
1.二分法求解單調函數相關知識.(poj3273,poj3258,poj1905,poj3122)
七.計算幾何學.
幾何公式.
叉積和點積的運用(如線段相交的判定,點到線段的距離等). (poj2031,poj1039)
多邊型的簡單演算法(求面積)和相關判定(點在多邊型內,多邊型是否相交)
(poj1408,poj1584)
凸包. (poj2187,poj1113)
中級(校賽壓軸及省賽中等難度):
一.基本演算法:
C++的標准模版庫的應用. (poj3096,poj3007)
較為復雜的模擬題的訓練(poj3393,poj1472,poj3371,poj1027,poj2706)
二.圖演算法:
差分約束系統的建立和求解. (poj1201,poj2983)
最小費用最大流(poj2516,poj2516,poj2195)
雙連通分量(poj2942)
強連通分支及其縮點.(poj2186)
圖的割邊和割點(poj3352)
最小割模型、網路流規約(poj3308)
三.數據結構.
線段樹. (poj2528,poj2828,poj2777,poj2886,poj2750)
靜態二叉檢索樹. (poj2482,poj2352)
樹狀樹組(poj1195,poj3321)
RMQ. (poj3264,poj3368)
並查集的高級應用. (poj1703,2492)
KMP演算法. (poj1961,poj2406)
四.搜索
最優化剪枝和可行性剪枝
搜索的技巧和優化 (poj3411,poj1724)
記憶化搜索(poj3373,poj1691)
五.動態規劃
較為復雜的動態規劃(如動態規劃解特別的旅行商TSP問題等)
(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
記錄狀態的動態規劃. (POJ3254,poj2411,poj1185)
樹型動態規劃(poj2057,poj1947,poj2486,poj3140)
六.數學
組合數學:
1.容斥原理.
2.抽屜原理.
3.置換群與Polya定理(poj1286,poj2409,poj3270,poj1026).
4.遞推關系和母函數.
數學.
1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)
2.概率問題. (poj3071,poj3440)
3.GCD、擴展的歐幾里德(中國剩餘定理) (poj3101)
計算方法.
1.0/1分數規劃. (poj2976)
2.三分法求解單峰(單谷)的極值.
3.矩陣法(poj3150,poj3422,poj3070)
4.迭代逼近(poj3301)
隨機化演算法(poj3318,poj2454)
雜題(poj1870,poj3296,poj3286,poj1095)
七.計算幾何學.
坐標離散化.
掃描線演算法(例如求矩形的面積和周長並,常和線段樹或堆一起使用)
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
多邊形的內核(半平面交)(poj3130,poj3335)
幾何工具的綜合應用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
高級(regional中等難度):
一.基本演算法要求:
代碼快速寫成,精簡但不失風格
(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
保證正確性和高效性. poj3434
二.圖演算法:
度限制最小生成樹和第K最短路. (poj1639)
最短路,最小生成樹,二分圖,最大流問題的相關理論(主要是模型建立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
最優比率生成樹. (poj2728)
最小樹形圖(poj3164)
次小生成樹.
無向圖、有向圖的最小環
三.數據結構.
trie圖的建立和應用. (poj2778)
LCA和RMQ問題(LCA(最近公共祖先問題) 有離線演算法(並查集+dfs) 和 在線演算法(RMQ+dfs)).(poj1330)
雙端隊列和它的應用(維護一個單調的隊列,常常在動態規劃中起到優化狀態轉移的目的). (poj2823)
左偏樹(可合並堆).
後綴樹(非常有用的數據結構,也是賽區考題的熱點).(poj3415,poj3294)
四.搜索
較麻煩的搜索題目訓練(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
廣搜的狀態優化:利用M進制數存儲狀態、轉化為串用hash表判重、按位壓縮存儲狀態、雙向廣搜、A*演算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
深搜的優化:盡量用位運算、一定要加剪枝、函數參數盡可能少、層數不易過大、可以考慮雙向搜索或者是輪換搜索、IDA*演算法. (poj3131,poj2870,poj2286)
五.動態規劃
需要用數據結構優化的動態規劃.(poj2754,poj3378,poj3017)
四邊形不等式理論.
較難的狀態DP(poj3133)
六.數學
組合數學.
1.MoBius反演(poj2888,poj2154)
2.偏序關系理論.
博奕論.
1.極大極小過程(poj3317,poj1085)
2.Nim問題.
七.計算幾何學.
半平面求交(poj3384,poj2540)
可視圖的建立(poj2966)
點集最小圓覆蓋.
對踵點(poj2079)
Ⅳ 程序員考試的科目內容
1. 計算機科學基礎
1.1 數制及其轉換
二進制、十進制和十六進制等常用數制及其相互轉換
1.2 數據的表示
數的表示(原碼、反碼、補碼表示,整數和實數的機內表示方法,精度和溢出)
非數值表示(字元和漢字的機內表示、聲音和圖像的機內表示)
校驗方法和校驗碼(奇偶校驗碼、海明校驗碼)
1.3 算術運算和邏輯運算
計算機中二進制數的運算方法
邏輯代數的基本運算和邏輯表達式的化簡
1.4 數學應用
常用數值計算(矩陣、方程的近似求解、插值)
排列組合、應用統計(數據的統計分析)
1.5 常用數據結構
數組(表態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧
、樹(二叉樹、查找樹)、圖的定義、存儲和操作
1.6 常用演算法
常用的排序演算法、查找演算法、數值計算、字元串處理、數據壓縮演算法、遞歸演算法、圖的相關算
法
演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表)
2.計算機系統基礎知識
2.1 硬體基礎知識
2.1.1計算機系統的組成,硬體系統、軟體系統及層次結構
2.1.2計算機類型和特點
微機、工作站、伺服器、大型計算機、巨型計算機
2.1.3中央處理器CPU
運算器和控制器的組成,常用的寄存器、指令系統、定址方式、指令執行控制、處理機性能
2.1.4 主存和輔存
存儲器系統
存儲介質(半導體、硬碟、光碟、快閃記憶體、軟盤、磁帶等)
主存儲器的組成、性能及基本原理
Cache的概念、虛擬存儲的概念
輔存設備的類型、特性、性能和容量計算
2.1.5 I/O介面、I/O設備和通信設備
I/O介面(匯流排、DMA、通道、SCSI、並行口、RS232C、USB、IEEE1394)
I/O設備的類型和特性(鍵盤、滑鼠、顯示器、列印機、掃描儀、攝像頭,以及各種輔存設備
I/O設備控制方式(中斷控制、DMA)
通信設備的類型和特性(Modem、集線器、交換機、中繼器、路由器、網橋、網關)及其連接
方法和連接介質(串列連接、並行連接,傳輸介質的類型和特性)
2.2軟體基礎知識
2.2.1操作系統基礎知識
操作系統的類型和功能
操作系統的內核(中斷控制)和進程概念
處理機管理、存儲管理、設備管理、文件管理、作業管理
漢字處理
圖形用戶界面及其操作方法
2.3 網路基礎知識
網路的功能、分類、組成和拓撲結構
網路體系結構與協議(OSI/RM,TCP/IP)
常用網路設備與網路通信設備,網路操作系統基礎知識和使用
Client/Server結構、Browser/Server結構
LAN基礎知識
Internet基礎知識
2.4 資料庫基礎知識
資料庫管理系統的主要功能和特徵
資料庫模型(概念模式、外模式、內模式)
數據模型,ER圖
數據操作(關系運算)
資料庫語言(SQL)
資料庫的主要控制功能
2.5 多媒體基礎知識
多媒體基礎概念,常用多媒體設備性能特徵,常用多媒體文件格式類型
簡單圖形的繪制,圖像文件的基本處理方法
音頻和視頻信息的應用
簡單多媒體應用製作方法
2.6 系統性能指標
響應時間、吞吐量、周轉時間等概念
可靠性、可維護性、可擴充性、可移植性、可用性、可重用性、安全性等概念
2.7 計算機應用基礎知識和常用辦公軟體的操作方法
信息管理、數據處理、輔助設計、自動控制、科學計算、人工智慧等概念
文字處理基礎知識和常用操作方法
電子表格處理基礎知識和常用操作方法
演示文稿製作方法
電子郵件處理操作方法
網頁製作方法
3.軟體開發和運行維護基礎知識
3.1軟體工程和項目管理基礎知識
軟體工程基本概念
軟體開發各階段的目標和任務
軟體過程基本知識
軟體工程項目管理基本知識
面向對象開發方法基礎知識
軟體開發工具與環境基礎知識(CASE)
軟體質量管理基礎知識
3.2軟體需求分析、需求定義及軟體基礎知識
結構化分析概念(數據流圖(DFD)、實體關系圖(ER))
面向對象設計、結構化設計基礎知識
模擬設計、代碼設計、人機界面設計要點
3.3程序設計基礎知識
結構設計程序設計,程序流程圖,NS圖,PAD圖
程序設計風格
面向對象設計基礎知識、可視化程序設計基礎知識
3.4程序測試基礎知識
黑盒測試、白盒測試、灰盒測試基礎知識
測試工作流程
3.5軟體開發文檔基礎知識
3.6軟體運行和維護基礎知識
軟體運行基礎知識
軟體維護基礎知識
4. 安全性基礎知識
安全性基本概念
計算機病毒的防治,計算機犯罪的防範
訪問控制
加密與解密基礎知識
5. 標准化基礎知識
標准化基本概念
國際標准、國家標准、行業標准、企業標准基礎知識
代碼標准、文件格式標准、安全標准、軟體開發規范和文檔標准基礎知識
標准化機構
6. 信息化基本知識
信息化基本概念
全球信息化趨勢,國家信息化戰略,企業信息化戰略和策略常識
有關的法律、法規要點
過程教育、電子商務、電子政務等常識
企業信息資源管理常識
7.計算機專業英語
掌握計算機技術的基本詞彙
能正確閱讀和理解本領域的簡單英文資料 1.內部設計
1.1理解外部設計
1.2軟體功能劃分和結構確定
l數據流圖(DFD)、結構圖。
1.3 物理數據設計
l 確定數據組織方式、存儲介質、設計記錄格式,處理方式。
1.4 詳細輸入輸出設計
l界面設計、報表設計等。
1.5 內部設計文檔
l程序介面、程序功能、人機界面、輸入輸出、測試計劃。
1.6 內部設計評審
2.程序設計
2.1 模塊劃分(原則、方法、標准)
2.2 編寫程序設計文檔
l 模塊規格說明書(程序處理邏輯、輸入輸出數據格式)。
l 測試要求說明書(測試類型和目標、測試用例、測試方法)。
2.3.程序設計評審
3.程序實現
3.1編程
l 編程方法和規范。
l程序設計語言的選擇和使用。
l 人工走查。
l 程序文檔化。
3.2程序測試
l測試環境和測試工具的選擇和使用。
l 測試數據的設計。
l測試報告的編寫。
4.程序設計語言(C語言為必選,再在VB、C++、Java語言中任選一種)
4.1C程序設計語言(C99標准)
4.2C++程序設計語言(ANSI C++標准)
4.3 Java程序設計語言(Java2)
Ⅳ 程序員如何學好演算法
一.基本演算法:
枚舉. (poj1753,poj2965)
貪心(poj1328,poj2109,poj2586)
遞歸和分治法.
遞推.
構造法.(poj3295)
模擬法.(poj1068,poj2632,poj1573,poj2993,poj2996)
二.圖演算法:
圖的深度優先遍歷和廣度優先遍歷.
最短路徑演算法(dijkstra,bellman-ford,floyd,heap+dijkstra)
(poj1860,poj3259,poj1062,poj2253,poj1125,poj2240)
最小生成樹演算法(prim,kruskal)
(poj1789,poj2485,poj1258,poj3026)
拓撲排序 (poj1094)
二分圖的最大匹配 (匈牙利演算法) (poj3041,poj3020)
最大流的增廣路演算法(KM演算法). (poj1459,poj3436)
三.數據結構.
串 (poj1035,poj3080,poj1936)
排序(快排、歸並排(與逆序數有關)、堆排) (poj2388,poj2299)
簡單並查集的應用.
哈希表和二分查找等高效查找法(數的Hash,串的Hash)
(poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503)
哈夫曼樹(poj3253)
堆
trie樹(靜態建樹、動態建樹) (poj2513)
四.簡單搜索
深度優先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251)
廣度優先搜索(poj3278,poj1426,poj3126,poj3087.poj3414)
簡單搜索技巧和剪枝(poj2531,poj1416,poj2676,1129)
五.動態規劃
背包問題. (poj1837,poj1276)
型如下表的簡單DP(可參考lrj的書 page149):
E[j]=opt{D+w(i,j)} (poj3267,poj1836,poj1260,poj2533)
E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最長公共子序列) (poj3176,poj1080,poj1159)
C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最優二分檢索樹問題)
六.數學
組合數學:
1.加法原理和乘法原理.
2.排列組合.
3.遞推關系.
(POJ3252,poj1850,poj1019,poj1942)
數論.
1.素數與整除問題
2.進制位.
3.同餘模運算.
(poj2635, poj3292,poj1845,poj2115)
計算方法.
1.二分法求解單調函數相關知識.(poj3273,poj3258,poj1905,poj3122)
七.計算幾何學.
幾何公式.
叉積和點積的運用(如線段相交的判定,點到線段的距離等). (poj2031,poj1039)
多邊型的簡單演算法(求面積)和相關判定(點在多邊型內,多邊型是否相交)
(poj1408,poj1584)
凸包. (poj2187,poj1113)
中級(校賽壓軸及省賽中等難度):
一.基本演算法:
C++的標准模版庫的應用. (poj3096,poj3007)
較為復雜的模擬題的訓練(poj3393,poj1472,poj3371,poj1027,poj2706)
二.圖演算法:
差分約束系統的建立和求解. (poj1201,poj2983)
最小費用最大流(poj2516,poj2516,poj2195)
雙連通分量(poj2942)
強連通分支及其縮點.(poj2186)
圖的割邊和割點(poj3352)
最小割模型、網路流規約(poj3308)
三.數據結構.
線段樹. (poj2528,poj2828,poj2777,poj2886,poj2750)
靜態二叉檢索樹. (poj2482,poj2352)
樹狀樹組(poj1195,poj3321)
RMQ. (poj3264,poj3368)
並查集的高級應用. (poj1703,2492)
KMP演算法. (poj1961,poj2406)
四.搜索
最優化剪枝和可行性剪枝
搜索的技巧和優化 (poj3411,poj1724)
記憶化搜索(poj3373,poj1691)
五.動態規劃
較為復雜的動態規劃(如動態規劃解特別的旅行商TSP問題等)
(poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034)
記錄狀態的動態規劃. (POJ3254,poj2411,poj1185)
樹型動態規劃(poj2057,poj1947,poj2486,poj3140)
六.數學
組合數學:
1.容斥原理.
2.抽屜原理.
3.置換群與Polya定理(poj1286,poj2409,poj3270,poj1026).
4.遞推關系和母函數.
數學.
1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)
2.概率問題. (poj3071,poj3440)
3.GCD、擴展的歐幾里德(中國剩餘定理) (poj3101)
計算方法.
1.0/1分數規劃. (poj2976)
2.三分法求解單峰(單谷)的極值.
3.矩陣法(poj3150,poj3422,poj3070)
4.迭代逼近(poj3301)
隨機化演算法(poj3318,poj2454)
雜題(poj1870,poj3296,poj3286,poj1095)
七.計算幾何學.
坐標離散化.
掃描線演算法(例如求矩形的面積和周長並,常和線段樹或堆一起使用)
(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)
多邊形的內核(半平面交)(poj3130,poj3335)
幾何工具的綜合應用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)
高級(regional中等難度):
一.基本演算法要求:
代碼快速寫成,精簡但不失風格
(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)
保證正確性和高效性. poj3434
二.圖演算法:
度限制最小生成樹和第K最短路. (poj1639)
最短路,最小生成樹,二分圖,最大流問題的相關理論(主要是模型建立和求解)
(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446
最優比率生成樹. (poj2728)
最小樹形圖(poj3164)
次小生成樹.
無向圖、有向圖的最小環
三.數據結構.
trie圖的建立和應用. (poj2778)
LCA和RMQ問題(LCA(最近公共祖先問題) 有離線演算法(並查集+dfs) 和 在線演算法(RMQ+dfs)).(poj1330)
雙端隊列和它的應用(維護一個單調的隊列,常常在動態規劃中起到優化狀態轉移的目的). (poj2823)
左偏樹(可合並堆).
後綴樹(非常有用的數據結構,也是賽區考題的熱點).(poj3415,poj3294)
四.搜索
較麻煩的搜索題目訓練(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)
廣搜的狀態優化:利用M進制數存儲狀態、轉化為串用hash表判重、按位壓縮存儲狀態、雙向廣搜、A*演算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)
深搜的優化:盡量用位運算、一定要加剪枝、函數參數盡可能少、層數不易過大、可以考慮雙向搜索或者是輪換搜索、IDA*演算法. (poj3131,poj2870,poj2286)
五.動態規劃
需要用數據結構優化的動態規劃.(poj2754,poj3378,poj3017)
四邊形不等式理論.
較難的狀態DP(poj3133)
六.數學
組合數學.
1.MoBius反演(poj2888,poj2154)
2.偏序關系理論.
博奕論.
1.極大極小過程(poj3317,poj1085)
2.Nim問題.
七.計算幾何學.
半平面求交(poj3384,poj2540)
可視圖的建立(poj2966)
點集最小圓覆蓋.
對踵點(poj2079)
Ⅵ 程序員實用演算法的介紹
《程序員實用演算法》重點關注的是實用、立即可用的代碼,並且廣泛討論了可移植性和特定於實現的細節。《程序員實用演算法》作者介紹了一些有用但很少被討論的演算法,它們可用於語音查找、日期和時間常式(直到公元1年)、B樹和索引文件、數據壓縮、任意精度的算術、校驗和與數據驗證,並且還最全面地介紹了查找常式、排序演算法和數據結構。
Ⅶ 自考程序員需要考哪些科目和相關書籍
程序員級考試大綱 一、考試說明 1.考試要求: (1)掌握數據及其轉換、數據的機內表示、算術和邏輯運算, 以及相關的應用數學基礎知識; (2)理解計算機的組成以及各主要部件的性能指標; (3)掌握操作系統、程序設計語言的基礎知識; (4)熟練掌握計算機常用辦公軟體的基本操作方法; (5)熟練掌握基本數據結構和常用演算法; (6)熟練掌握C程序設計語言,以及C++、Java、 Visual Basic中的一種程序設計語言; (7)熟悉資料庫、網路和多媒體的基礎知識; (8)掌握軟體工程的基礎知識,了解軟體過程基本知識、 軟體開發項目管理的常識; (9)了解常用信息技術標准、安全性,以及有關法律、 法規的基本知識; (10)了解信息化、計算機應用的基礎知識; (11)正確閱讀和理解計算機領域的簡單英文資料。 2. 通過本考試的合格人員能根據軟體開發項目管理和軟體工程的要求, 按照程序設計規格說明書編制並調試程序,寫出程序的相應文檔, 產生符合標准規范的、實現設計要求的、能正確可靠運行的程序; 具有助理工程師(或技術員)的實際工作能力和業務水平。 3.本考試設置的科目包括: (1)計算機硬軟體基礎知識,考試時間為150分鍾,筆試; (2)程序設計,考試時間為150分鍾,筆試。 二、考試范圍 考試科目1:計算機硬軟體基礎知識 1. 計算機科學基礎 1.1 數制及其轉換 二進制、十進制和十六進制等常用數制及其相互轉換 1.2 數據的表示 數的表示(原碼、反碼、補碼表示,整數和實數的機內表示方法, 精度和溢出) 非數值表示(字元和漢字的機內表示、聲音和圖像的機內表示) 校驗方法和校驗碼(奇偶校驗碼、海明校驗碼) 1.3 算術運算和邏輯運算 計算機中二進制數的運算方法 邏輯代數的基本運算和邏輯表達式的化簡 1.4 數學應用 常用數值計算(矩陣、方程的近似求解、插值) 排列組合、應用統計(數據的統計分析) 1.5 常用數據結構 數組(表態數組、動態數組)、線性表、鏈表(單向鏈表、 雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹)、 圖的定義、存儲和操作 1.6 常用演算法 常用的排序演算法、查找演算法、數值計算、字元串處理、 數據壓縮演算法、遞歸演算法、圖的相關演算法 演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、 偽代碼、決策表) 2. 計算機系統基礎知識 2.1 硬體基礎知識 2.1.1 計算機系統的組成,硬體系統、軟體系統及層次結構 2.1.2 計算機類型和特點 微機、工作站、伺服器、大型計算機、巨型計算機 2.1.3 中央處理器CPU 算器和控制器的組成,常用的寄存器、指令系統、定址方式、 指令執行控制、處理機性能 2.1.4 主存和輔存 存儲器系統 存儲介質(半導體、硬碟、光碟、快閃記憶體、軟盤、磁帶等) 主存儲器的組成、性能及基本原理 Cache的概念、虛擬存儲的概念 輔存設備的類型、特性、性能和容量計算 2.1.5 I/O介面、I/O設備和通信設備 I/O介面(匯流排、DMA、通道、SCSI、並行口、 RS232C、USB、IEEE1394) I/O設備的類型和特性(鍵盤、滑鼠、顯示器、列印機、掃描儀、 攝像頭,以及各種輔存設備) I/O設備控制方式(中斷控制、DMA) 通信設備的類型和特性(Modem、集線器、交換機、中繼器、 路由器、網橋、網關)及其連接方法和連接介質(串列連接、 並行連接,傳輸介質的類型和特性) 2.2 軟體基礎知識 2.2.1 操作系統基礎知識 操作系統的類型和功能 操作系統的內核(中斷控制)和進程概念 處理機管理、存儲管理、設備管理、文件管理、作業管理 漢字處理 圖形用戶界面及其操作方法 2.2.2 程序設計語言和語言處理程序基礎知識 匯編、編譯、解釋系統的基礎知識 程序設計語言的基本成分(數據、運算、控制和傳輸) 過程(函數)調用 2.3 網路基礎知識 網路的功能、分類、組成和拓撲結構 網路體系結構與協議(OSI/RM,TCP/IP) 常用網路設備與網路通信設備,網路操作系統基礎知識和使用 Client/Server結構、Browser/ Server結構 LAN基礎知識 Internet基礎知識 2.4 資料庫基礎知識 資料庫管理系統的主要功能和特徵 資料庫模型(概念模式、外模式、內模式) 數據模型,ER圖 數據操作(關系運算) 資料庫語言(SQL) 資料庫的主要控制功能 2.5 多媒體基礎知識 多媒體基礎概念,常用多媒體設備性能特徵, 常用多媒體文件格式類型 簡單圖形的繪制,圖像文件的基本處理方法 音頻和視頻信息的應用 簡單多媒體應用製作方法 2.6 系統性能指標 響應時間、吞吐量、周轉時間等概念 可靠性、可維護性、可擴充性、可移植性、可用性、可重用性、 安全性等概念 2.7 計算機應用基礎知識和常用辦公軟體的操作方法 信息管理、數據處理、輔助設計、自動控制、科學計算、 人工智慧等概念 文字處理基礎知識和常用操作方法 電子表格處理基礎知識和常用操作方法 演示文稿製作方法 電子郵件處理操作方法 網頁製作方法 3. 軟體開發和運行維護基礎知識 3.1 軟體工程和項目管理基礎知識 軟體工程基本概念 軟體開發各階段的目標和任務 軟體過程基本知識 軟體工程項目管理基本知識 面向對象開發方法基礎知識 軟體開發工具與環境基礎知識(CASE) 軟體質量管理基礎知識 3.2 軟體需求分析、需求定義及軟體基礎知識 結構化分析概念(數據流圖(DFD)、實體關系圖(ER)) 面向對象設計、結構化設計基礎知識 模擬設計、代碼設計、人機界面設計要點 3.3 程序設計基礎知識 結構設計程序設計,程序流程圖,NS圖,PAD圖 程序設計風格 面向對象設計基礎知識、可視化程序設計基礎知識 3.4 程序測試基礎知識 黑盒測試、白盒測試、灰盒測試基礎知識 測試工作流程 3.5 軟體開發文檔基礎知識 3.6 軟體運行和維護基礎知識 軟體運行基礎知識 軟體維護基礎知識 4. 安全性基礎知識 安全性基本概念 計算機病毒的防治,計算機犯罪的防範 訪問控制 加密與解密基礎知識 5. 標准化基礎知識 標准化基本概念 國際標准、國家標准、行業標准、企業標准基礎知識 代碼標准、文件格式標准、安全標准、 軟體開發規范和文檔標准基礎知識 標准化機構 6. 信息化基本知識 信息化基本概念 全球信息化趨勢,國家信息化戰略,企業信息化戰略和策略常識 有關的法律、法規要點 過程教育、電子商務、電子政務等常識 企業信息資源管理常識 7. 計算機專業英語 掌握計算機技術的基本詞彙 能正確閱讀和理解本領域的簡單英文資料 考試科目2:程序設計 1. 內部設計 1.1 理解外部設計 1.2 功能劃分和確定結構 數據流圖、結構圖 1.3 物理數據設計 確定數據組織方式、存儲介質,設計記錄格式和處理方式 1.4 詳細輸入輸出設計 界面設計、報表設計 1.5 內部設計文檔 對程序介面、程序功能、人機界面、輸入輸出、測試計劃的描述 1.6 內部設計文檔 2. 程序設計 2.1 模擬劃分(原則、方法、標准) 2.2 編寫程序設計文檔 模塊規格說明書(程序處理邏輯的描述、輸入輸出數據格式的描述) 測試要求說明書(測試類型和目標、測試用例、測試方法) 2.3 程序設計評審 3. 程序實現 3.1 編程 編程方法和標准 程序設計語言的使用 人工走查 程序文檔化 3.2 程序測試 准備測試環境和測試工具 准備測試數據 寫出測試報告 4.程序設計語言(C語言為必選,其他語言可以任選一種) 4.1 C程序設計語言(ANSI C標准) 程序結構,語法,數據類型說明,可執行語句,函數調用, 標准庫函數,指針 4.2 C++程序設計語言(ANSI C++標准) C++和面向對象程序設計,語法和程序結構,類、成員、 構造函數、析構函數、模板、繼承、多態 4.3 Java程序設計(Java 2) Java和面向對象程序設計 語言機制(程序結構和語法,類、成員、構造函數、析構函數、 繼承、介面) 4.4 Visual Basic程序設計(Visual Basic 6.0) 用戶界面設計 程序結構和語法 文件系統對象 訪問資料庫 你看了大綱後應該知道哪些知識點是要考的吧, 程序員考試分上下午,採用筆試,下午的考試比較難的!要好好准備
記得採納啊
Ⅷ 什麼是壓縮為什麼要壓縮
為什麼要壓縮?
我們可以從壓縮的歷史談起。
早期的電腦無論是硬碟空間還是磁碟空間都小得可憐。比如93年的時候,一台0.5GB空間的硬碟的個人電腦在國內就已經算是海量空間了。
那個時候,普遍使用磁碟(如3寸盤,就是現在仍常見磁碟,對應電腦上的A驅驅動器;5寸盤,現在已經被淘汰,對應電腦上的B區驅動器。現在的電腦為什麼只有A盤,沒有B盤,接著就到了C盤就是這個原因)作為外部存儲介質。
眾所周知,一張軟盤的存儲量只有1.44MB,容量非常小。在光碟還沒有誕生的時候,一些游戲、軟體要安裝的話往往需要很多軟盤。我至今還有一套那時候的軒轅劍2的游戲,共有20餘張磁碟,安裝時要挨個磁碟安裝,非常麻煩。
因為容量的限制,促使各程序員開始開發各種壓縮軟體對軟體進行壓縮。其實與壓縮相關的有兩道程序,第一道程序是壓縮,第二道程序則是解壓縮。
軟體壓縮的原理:在電腦中,一切東西都是數字的,聲音也好、圖像也好,軟體也好,實際上通通都只是一些二進制代碼,所謂數碼數碼,數碼相片、數碼音頻,也是這個道理。
所謂壓縮,以數碼圖片為例,就是將把要壓縮的圖像的二進制代碼中冗長的、重復的代碼遵循一定的演算法用簡短的代碼來代替。比如00002可能代表的是「黑色」,那麼我們可以將軟體中凡是涉及「黑色」的代碼的00002通過02來替換,這樣02比起00002是不是占的空間要小?省了好幾個字元空間呢。這里僅是一個例子,軟體中的冗長的、重復的代碼如果都按一定的演算法用簡短的代碼來替換的話,最後重新生成的軟體一定會小得多。這個重新生成圖片,就是壓縮後的圖片。這個過程,就叫做壓縮。
圖片如此,軟體、音頻、視頻亦是如此。
至於演算法,則是固定的,壓縮軟體既包括演算法資料庫,又包括壓縮功能。所以,一台電腦只需要一個壓縮軟體就夠了,要壓縮其它資源就由這個壓縮軟體完成。
一般而言,被壓縮的文件是不能直接運行的,那是因為它的代碼都被簡化了,計算機是不能直接識別的。被壓縮了的文件只是變小了空間而已,是不能直接使用的。
要想再使用這些壓縮過的文件,你必須解壓縮。
解壓縮這些文件還是要用到對應的壓縮它們的壓縮軟體。解壓縮的過程正好和壓縮的過程相反。同樣是通過一定的演算法,將簡短的代碼還原回程序的真正的代碼,這樣程序的大小會恢復到壓縮前的大小,解壓後的文件也就可以正常使用。(很多朋友可能會說WINRAR壓縮的文件是可以直接使用的,不過如果你仔細觀察,運行一個程序會看到一個進度條,還要等一段時間才能運行,這個過程實際上就是一個解壓的過程,只不過它是把文件自動解壓到了一個不容易找到的臨時文件夾,你看不到這些解壓後的文件而已)。
文件經過壓縮後,所佔空間會大大減小,有的壓縮軟體可以讓軟體的大小減少一半,有的壓縮軟體甚至能將軟體壓縮至原先大小的六分之一。
壓縮技術另一個發展高潮是在互聯網剛剛興起和剛剛引進我國的時候。那個時候因為網速非常慢,所以人們自然希望在網上下載的軟體越小越好,因為越小花的時間就越少,花的上網費也就越少。
不僅如此,至今你都會發現各大網站提供的軟體多是壓縮過了的,壓縮過的文件大小變小,自然比原文件下載起來快。
文件下載下來後,你再通過你已經安裝過的壓縮軟體運行就OK了。
是的,沒有對應的壓縮軟體的話,你下載下來的被壓縮軟體也是沒有用的。
現在,隨著數碼技術的發展,壓縮技術也在不斷發展,因為硬碟和光碟的空間畢竟是有限的,而游戲、音頻、視頻、圖片遠遠非常占據空間,所以壓縮技術前景非常廣闊並且不斷在發展。
Ⅸ 軟考程序員要看哪些書
在學習程序之前,我想大家首先應該對程序員這個行業熟悉一下,更加要對編程的語言以及所涉及到的工具有所了解。因為如何了解這些是很難去給自己一個明確的目標的。
以下是書籍推薦:
《程序員教程》官方教材,建議一定要看,
《程序員考試考點突破、案例分析、實戰練習一本通》
內容緊扣考試大綱,通過對歷年試題進行科學分析、研究、總結、提煉而成。每章內容分為考點突破、典型試題分析、實戰練習、練習題解析四個部分。
《程序員考試考點分析與真題詳解(第4版)》
著重對新版的考試大綱內容有重點地進行了細化和深化,是此考試中程序員級別的考試輔導用書,內容涵蓋了最新的程序員考試大綱的所有知識點,准備參加考試的人員可通過閱讀本書掌握考試大綱規定的知識,把握考試重點和難點,熟悉考試方法、試題形式、試題的深度和廣度,以及解答問題的方法和技巧等。
以上三本書是考試要看的,在看書過程中注意梳理知識點,理清各個知識點中的聯系,多做真題,考試就沒什麼問題了,祝考試順利!
Ⅹ 大家都知道高級程序員很吃香,那麼高級程序員和黑客到底誰更厲害
非從業人員對於程序員和黑客的外在形象就存在著不一樣的認知,因為電視電影和網路上的段子,普通的程序員一般都是有才能卻一點不風趣的男性,常年一件格子襯衣,幾根稀疏的頭發,雖然賺的錢不少,卻不會花錢裝扮自己;而黑客的形象就完全是另一種,他們很神秘,可能我們身邊隨便一個人在暗地裡都可以是黑客,黑客還喜歡穿黑衣服,帶黑色的帽子,不喜歡以真面目示人。
相對的,普通程序員也不會關注黑客關注的很多點,比如CAPTCHA這種可能就直接引入個第三方的來防禦了,並不會自己去實現一遍。還有加密演算法這種,也幾乎只有黑客才會去研究。普通程序員可能研究的就是壓縮演算法。黑客的攻擊手段多種多樣,有的甚至不會寫代碼,比如《我是誰–沒有絕對安全的系統》里就有一位,根本不寫代碼,通過翻垃圾桶,開鎖偷看資料這類操作搜集很多有用的信息,從而發起攻擊。一般稱這種為手段『社工攻擊』。