① 初級程序員考試內容
考試科目1:計算機硬軟體基礎知識
一、計算機科學基礎
1.1 數搜臘制及其轉換。1.2 數據的表示。1.3 算術運算和邏輯運算。1.4 數學應用。1.5 常用數據結構。1.6 常用演算法
二、計算機系統基礎知識
2.1 硬體基礎知識。2.2 軟體基礎知識。2.3 網路基礎知識。2.4 資料庫基礎知識。2.5 多媒體基礎知識。2.6 系統性能指標。2.7 計算機應用基礎知識和常用辦公軟體的操作方法
三、 軟體開發和運行培彎維護基礎知識
3.1 軟體工程和項目管理基世中滑礎知識。3.2 軟體需求分析、需求定義及軟體基礎知識。3.3 程序設計基礎知識。3.4 程序測試基礎知識。3.5 軟體開發文檔基礎知識。3.6 軟體運行和維護基礎知識
四、安全性基礎知識
五、 標准化基礎知識
六、 信息化基本知識
七、 計算機專業英語
② 程序員必備知識有哪些
根據軟考程序員職稱的考試內容,我們可以得出,程序員需要具備以下的知識。但這些只是基礎,還要不斷擴展。
計算機硬體基礎知識。
1. 計算機科學基礎。
1.1數制及其轉換。
二進制、十進制和十六進制等常用數制及其相互轉換。
1.2數據的表示。
數的表示(原碼、反碼、補碼表示,整數和實數的機內表示方法,精度和溢出)。
校驗方法和校驗碼(奇偶校驗碼、海明校驗碼)。
1.3算術運算和邏輯運算。
計算機中二進制數的運算方法。
邏輯代數的基本運算和邏輯表達式的化簡。
1.5常用數據結構。
數組(表態數組、動態數組)、線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)、隊列、棧、樹(二叉樹、查找樹)、圖的定義、存儲和操作
1.6 常用演算法。
演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表)
2. 計算機系統基礎知識。
2.1計算機基礎知識。
2.1.1計算機系統的組成,硬體系統、軟體系統及層次結構。
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)。
2.4 資料庫基礎知識。
數據模型,ER圖。
數據操作(關系運算)。
資料庫語言(SQL)。
2.5 多媒體基礎知識。
多媒體基礎概念,常用多媒體設備性能特徵,常用多媒體文件格式類型。
3.軟體開發和運行維護基礎知識。
3.2 軟體需求分析、需求定義及軟體基礎知識。
結構化分析概念(數據流圖(DFD)、實體關系圖(ER))。
面向對象設計、結構化設計基礎知識。
模擬設計、代碼設計、人機界面設計要點。
3.3 程序設計基礎知識。
結構設計程序設計,程序流程圖,NS圖,PAD圖。
程序設計風格。
面向對象設計基礎知識、可視化程序設計基礎知識。
3.4 程序測試基礎知識。
黑盒測試、白盒測試、灰盒測試基礎知識。
4. 安全性基礎知識。
安全性基本概念。
加密與解密基礎知識。
5. 標准化基礎知識
標准化基本概念
6. 信息化基本知識。
有關的法律、法規要點。
7. 計算機專業英語。
考試科目2:程序設計。
1. 內部設計
1.1 理解外部設計。
1.3 物理數據設計。
確定數據組織方式、存儲介質,設計記錄格式和處理方式。
2. 程序設計。
2.1 模擬劃分(原則、方法、標准)。
3. 程序實現。
3.1 編程。
編程方法和標准。
程序設計語言的使用。
4.程序設計語言(C語言為必選,其他語言可以任選一種)。
4.1 C程序設計語言(ANSI C標准)。
程序結構,語法,數據類型說明,可執行語句,函數調用,標准庫函數,指針。
4.2C++程序設計語言(ANSI C++標准)。
C++和面向對象程序設計,語法和程序結構,類、成員、構造函數、析構函數、模板、繼承、多態。
4.3Java程序設計(Java 2)。
語言機制(程序結構和語法,類、成員、構造函數、析構函數、繼承、介面)。
4.4Visual Basic程序設計(Visual Basic 6.0)。
用戶界面設計。
③ 軟考初級程序員的相關知識有哪些
1. 考試要求:
(1) 熟練掌握DOS、WINDOWS95、WORD和上網軟體的使用方法,以及有關基礎知識;
(2) 掌握程序編制方法,用C語言編制簡單程序;
(3) 掌握基本數據結構、程序語言和操作系統的基本知識;
(4) 了解資料庫和信息安全的基礎知識;
(5)掌握數制、機內代碼和邏輯運算的基礎知識;
(6)了解計算機主要部件和功能的基礎知識;
(7) 了解多媒體和網路的基礎知識;
(8) 理解計算機操作中常見的英語術語二、考試范圍。
我這里有一些程序員的學習資料 大家有需要的可以
(一)基礎知識
1.1軟體基礎知識
1.1.1基本數據結構
數組、紀錄、列表、隊列、棧(stack)的定義、存儲和操作
1.1.2程序語言基礎知識
匯編、編譯、解釋系統的基本概念和使用
程序語言的數據類型
程序語言的控制結構
1.1.3文件系統使用的基礎知識
文件組織的類型和特點
文件操作命令的使用
1.1.4 操作系統的類型、功能和使用基礎知識
1.1.5資料庫系統基礎知識
1.1.6多媒體基本概念
1.1.7上網瀏覽和收發電子郵件的基礎知識
1.1.8計算機信息安全基礎知識
計算機信息安全基本概念
常見計算機病毒的識別
1.2硬體基礎知識
1.2.1數制及其轉換
二進制、十進制和十六進制等常用數制及其相互轉換
1.2.2機內代碼
原碼、補碼、反碼
定點數與浮點數的機內表示
ASCLL碼級漢字編碼等常用的編碼
奇偶校驗碼
1.2.3邏輯運算
邏輯代數的基本運算和邏輯表達式的化簡
1.2.4計算機的主要部件
中央處理器CPU、存儲器和輸入輸出設備
1.2.5指令系統
常用的定址方式
指令的格式分類及功能
1.2.6常用多媒體設備和網路通信設備的功能
1.3計算機專業英語
高中畢業英語程度
理解計算機操作中常見的英語術語
(二) 軟體使用和程序編制初步能力
2.1 能熟練使用下列常用軟體
2.1.1 操作系統(DOS和WINDOWS95)
2.1.2 字處理軟體(WORD)
2.1.3 上網軟體(電子郵件和瀏覽器)
2.2 能熟練使用下列程序語言編製程序
C(美國標准)
2.3 理解給定程序的功能
2.4 基本演算法
查找、更新、排序和字元處理
2.5 程序編制方法
2.5.1 分支、循環、子程序(過程和函數)
二、考試范圍
(一)基礎知識
1.1軟體基礎知識
1.1.1基本數據結構
數組、紀錄、列表、隊列、棧(stack)的定義、存儲和操作
1.1.2程序語言基礎知識
匯編、編譯、解釋系統的基本概念和使用
程序語言的數據類型
程序語言的控制結構
1.1.3文件系統使用的基礎知識
文件組織的類型和特點
文件操作命令的使用
1.1.4 操作系統的類型、功能和使用基礎知識
1.1.5資料庫系統基礎知識
1.1.6多媒體基本概念
1.1.7上網瀏覽和收發電子郵件的基礎知識
1.1.8計算機信息安全基礎知識
計算機信息安全基本概念
常見計算機病毒的識別
1.2硬體基礎知識
1.2.1數制及其轉換
二進制、十進制和十六進制等常用數制及其相互轉換
1.2.2機內代碼
原碼、補碼、反碼
定點數與浮點數的機內表示
ASCLL碼級漢字編碼等常用的編碼
奇偶校驗碼
1.2.3邏輯運算
邏輯代數的基本運算和邏輯表達式的化簡
1.2.4計算機的主要部件
中央處理器CPU、存儲器和輸入輸出設備
1.2.5指令系統
常用的定址方式
指令的格式分類及功能
1.2.6常用多媒體設備和網路通信設備的功能
1.3計算機專業英語
高中畢業英語程度
理解計算機操作中常見的英語術語
(二) 軟體使用和程序編制初步能力
2.1 能熟練使用下列常用軟體
2.1.1 操作系統(DOS和WINDOWS95)
2.1.2 字處理軟體(WORD)
2.1.3 上網軟體(電子郵件和瀏覽器)
2.2 能熟練使用下列程序語言編製程序
C(美國標准)
2.3 理解給定程序的功能
2.4 基本演算法
查找、更新、排序和字元處理
2.5 程序編制方法
2.5.1 分支、循環、子程序(過程和函數)
④ 軟體開發的基礎知識是什麼
軟體因計算機而存在,而計算機的實質是數學,所以計算機的知識本質上就是數學知識,也可以這么說數學知識也是計算機的基礎知識,計算機的基礎知識也是軟體的基礎知識。在。軟體發展的過程中,軟燃並件的知識也在慢慢地積累,很多軟體知識與數學並無直接的聯系,而。在這里我們所要說的就是純軟體的基礎知識。
我們可以把軟體的知識分為兩個部分,專業技能知識和領域知識或說行業知識。
1,專業技能知識
一門編程語言及庫
你可以在書店裡找到各色各樣的關於編程方面的書籍,但是我建議你只需要深入地掌握
一門便可,而且任何程序員都需要熟悉C語言。你所深入掌握的語言可有多種選擇。如果你從事的是驅動程序開發,我想必須要掌握匯編語言,C語言也是個不錯的選擇,而如果是做UI的話C++也許更好,Java語言比較適合網路程序的開發,當然JavaScript在google肯定很受推崇。
對於程序員來說,編程語言就相當於游俠手中的武器,可以是長劍,也可是以是短劍,可以是大刀,也可以是匕首。這些武器各有所長,而要發揮這些武器的長處必須基於一套路數上,那麼對於程序員來說就是基於某一種編程語言的代碼庫。如GNUC的庫就是libc或ulibc。如果你是用C語言,而且你是在類UNIX平台下開發,那麼你就必須正確理解libc的工作原理,你代碼里所調用的每一個函數的輸入與輸出,可能的錯誤,可能的歧義,對系統可能產生的影響。比如某一個函數是否是可再入的,還是不可再入的,如果出現了多線程同時調用的情況會發生什麼錯誤等等細節上的問題。
一種編程思想
全世界都驚嘆於毛澤東的領導和軍事才能,而在他的才能表象之後是什麼,是他的革命
精神,是他的睿智的思想。編程也一樣,如果沒有了編程思想就沒有了指導前進的動力,就沒有了創造的靈感的土壤。軟體知識發展到現在比較常用的編程思想就是結構巧段飢化(模塊化)和面向對象化(設計模式)。
有些語言是在模塊化大行其道的歷史背景下被發明出來的,如C語言,而有些語言則是為了滿足面向對象的編程思想而構造出來的,如C++。有一部分程序員會認為C語言是結構化的編程語言無法實現面向對象的編程思想。其實不然,C語言同樣可以很好地實現面向對象的編程思想,只不過有些面向對象的工作由程序員來做而已。同樣,面向對象的編程語言也可以用於寫模塊化的程序。
一種信仰
就我所接觸過的系統里,Windows我只會安裝,使用,VC/VB也只能做一些簡單的開發,而MACOS體驗過一次安裝,不過最終還是失敗了,iPhone的系統還沒有機會體驗過。曾經在AIX下做過開發,目前正在Fedora9下做開發,目標板的CPU是SH4,將來也可能是MIPS。
不管是MACOS,Windows,UNIX,Linux等都有各自的追隨著,我把這種現像稱為信仰。就拿我自己來說,我信仰Linux,Linux內核的源代碼對於我來說就是神話。
我覺得在Linux下工作是一件很娛悅的事情。如果你每每解決一些比較棘手的問題,都會
有一種成就感,這是在Windows平台下感受不到的。所以對於這一信仰,我覺得至少需要知道它的安裝,啟動,配置,安全,如引導程序GRUB,ftp,telnet,sshd,smbd,named等等伺服器的配置,網路安全的配置等等。
如果你要在Linux下進行開發,你必須了解Linux的API,標准庫,也就是libc。如果你
的程序是多線程的,你還得掌握libpthread.so里的函數使用方法。GCC,GDB,LD,AS,AR,以
及Makefile和make等等工具的使用。如果你能掌握find,awk,sed,grep,od,nm,objmp
等實用工具的話,將會大大提高你的工作效率。
這,就是我的信仰。
總之一句話,一種編程語言及庫,一種編程思想和一種信仰。一切OK!
2,領域知識/行業知識
我記得我的第一份工作是銀行的交易開發程序員,當時是一家外包公司把我外派到工商
銀行,我對工商銀行的業務一無所知。不過初出茅廬不怕虎,硬是一個人完成了一個我一無所知的項目,而僅憑我對自己技術實力的自信。
但事後我卻有些後怕,因孝返為我並不明白,為什麼那個整數要乘以個0.456存入到資料庫,也不知道銀行對數據的精確度是多大,等等細節上的問題我一無所知。那我只能求上天保佑,哪天不要多扣了人家的錢,天啊,這事我也做了?!當然不至於那麼嚴重:)
後來我確實發現自己對於銀行這套業務系統了解起來比較吃力,我寧願花點時間寫些小
的C程序也不願花時間去肯那些苦澀的業務流程文檔。所以在那家公司呆_一年後我辭職了。
我想,大部分程序員都想做一些相對技術含量高的開發工作,像那種整天與數據和數據
庫打交道的開發工作,隨便有點志向的程序員也不願意去做,當然如果錢足夠多的話我還是願意的:)
但現在我發現我錯了。因為這部分也是軟體知識的一部分。就拿我目前的工作來說,技術上不會有太大的困難,但是藍光規格以及其涉及到的規格相當的多,恐怕沒有十年時間無法做到精通。這就是領域知識或說是行業知識。有些人一生只做一件事,還不一定能做好,而我現在只做了不到兩年,雖覺時間不長但也不短,縱是一無所獲。
所以,我覺得自己仍不是一名合格的開發者。軟體開發的基礎知識包括專業知識和行業
知識,如果基礎知識不完整,那麼這個程序員不會是一個合格且高效的程序員。
⑤ 計算機網路安全基礎的目錄
1.1網路參考模型
1.2網路互連設備
1.3區域網技術
傳輸介質是網路中信息傳輸的媒體,是網路通信的物質基礎之一。傳輸介質的性能特點對傳輸速率、通信的距離、可連接的網路結點數目和數據傳輸的可靠性等均有很大的影響。因此,必須根據不同的通信要求,合理地選擇傳輸介質。目前在區域網中常用的傳輸介質有雙絞線、同軸電纜和光導纖維等。
1.4廣域網技術
廣域網是一種跨地區的數據通訊網路,使用電信運營商提供的設備作為信息傳輸平台。對照OSI參考模型,廣域網技術主要位於底層的3個層次,分別是物理層,數據鏈路層和網路層。下圖列出了一些經常使用的廣域網技術同OSI參考模型之間的對應關系。
點對點鏈路提供的是一條預先建立的從客戶端經過運營商網路到達遠端目標網路的廣域網通信路徑。一條點對點鏈路就是一條租用的專線,可以在數據收發雙方之間建立起永久性的固定連接。網路運營商負責點對點鏈路的維護和管理。點對點鏈路可以提供兩種數據傳送方式。一種是數據報傳送方式,該方式主要是將數據分割成一個個小的數據幀進行傳送,其中每一個數據幀都帶有自己的地址信息,都需要進行地址校驗。另外一種是數據流傳送方式,該方式與數據報傳送方式不同,用數據流取代一個個的數據幀作為數據發送單位,整個流數據具有1個地址信息,只需要進行一次地址驗證即可。下圖所顯示的就是一個典型的跨越廣域網的點對點鏈路。
1.5TCP/IP基礎
1.6網際網路提供的主要服務
1.7小結
習題 2.1UNIX操作系統簡介
UNIX操作系統,是美國AT&T公司於1971年在PDP-11上運行的操作系統。具有多用戶、多任務的特點,支持多種處理器架構,最早由肯·湯普遜(Kenneth Lane Thompson)、丹尼斯·里奇(Dennis MacAlistair Ritchie)和Douglas McIlroy於1969年在AT&T的貝爾實驗室開發。
目前它的商標權由國際開放標准組織(The Open Group)所擁有。
1965年時,貝爾實驗室(Bell Labs)加入一項由通用電氣(General Electric)和麻省理工學院(MIT)合作的計劃;該計劃要建立一套多使用者、多任務、多層次(multi-user、multi-processor、multi-level)的MULTICS操作系統。直到1969年,因MULTICS計劃的工作進度太慢,該計劃被停了下來。當時,Ken Thompson(後被稱為UNIX之父)已經有一個稱為星際旅行的程序在GE-635的機器上跑,但是反應非常慢,正巧被他發現了一部被閑置的PDP-7(Digital的主機),Ken Thompson和Dernis Ritchie就將星際旅行的程序移植到PDP-7上。而這部PDP-7(如圖1-1所示)就此在整個計算機歷史上留下了芳名
2.2Linux操作系統簡介
Linux是一種自由和開放源碼的類Unix操作系統,存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬體設備中,比如手機、平板電腦、路由器、視頻游戲控制台、台式計算機、大型機和超級計算機。Linux是一個領先的操作系統,世界上運算最快的10台超級計算機運行的都是Linux操作系統。嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用GNU 工程各種工具和資料庫的操作系統。Linux得名於天才程序員林納斯·托瓦茲。
Linux操作系統是UNIX操作系統的一種克隆系統,它誕生於1991 年的10 月5 日(這是第一次正式向外公布的時間)。以後藉助於Internet網路,並通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,並且使用人數還在迅猛增長。
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。它支持32位和64位硬體。Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。它主要用於基於Intel x86系列CPU的計算機上。這個系統是由全世界各地的成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟體的版權制約的、全世界都能自由使用的Unix兼容產品。
Linux以它的高效性和靈活性著稱,Linux模塊化的設計結構,使得它既能在價格昂貴的工作站上運行,也能夠在廉價的PC機上實現全部的Unix特性,具有多任務、多用戶的能力。Linux是在GNU公共許可許可權下免費獲得的,是一個符合POSIX標準的操作系統。Linux操作系統軟體包不僅包括完整的Linux操作系統,而且還包括了文本編輯器、高級語言編譯器等應用軟體。它還包括帶有多個窗口管理器的X-Windows圖形用戶界面,如同我們使用Windows NT一樣,允許我們使用窗口、圖標和菜單對系統進行操作。
Linux 操作系統的誕生、發展和成長過程始終依賴著五個重要支柱:UNIX 操作系統、MINIX 操作系統、GNU 計劃、POSIX 標准和Internet 網路。
1981 年IBM公司推出微型計算機IBM PC。
1991年,GNU計劃已經開發出了許多工具軟體,最受期盼的GNU C編譯器已經出現,GNU的操作系統核心HURD一直處於實驗階段,沒有任何可用性,實質上也沒能開發出完整的GNU操作系統,但是GNU奠定了Linux用戶基礎和開發環境。當時的MINIX需要購買才能得到源代碼,局限於校園用作教育使用,閉源專利註定Minix錯失推廣時機,以至於Minix長期處於測試而無人問津。
1991年初,林納斯·托瓦茲開始在一台386sx兼容微機上學習minix操作系統。1991年4月,林納斯·托瓦茲開始醞釀並著手編制自己的操作系統。剛開始,他的目的很簡單,只是為了學習Intel386 體系結構保護模式運行方式下的編程技術。通過學習,他逐漸不能滿足於minix系統的現有性能,並開始醞釀開發一個新的免費操作系統。林納斯·托瓦茲幾乎花了全部時間研究i386-minix系統(hackthe kernel),並且嘗試著移植GNU的軟體到該系統上(GCC、BASH、GDB等)。
1991 年4 月13 日在comp.os.minix 上發布說自己已經成功地將bash 移植到了minix 上,而且已經愛不釋手、不能離開這個shell 軟體了。
1991年7月3日,第一個與Linux有關的消息是在comp.os.minix上發布的(當然此時還不存在Linux這個名稱,當時林納斯·托瓦茲的腦子里想的可能是FREAX,FREAX的英文含義是怪誕的、怪物、異想天開等)。其中透露了他正在進行Linux系統的開發,並且在Linux最初的時候已經想到要實現與POSIX兼容。
1991年的10月5日,林納斯·托瓦茲在comp.os.minix新聞組上發布消息,正式向外宣布Linux內核的誕生(Freeminix-like kernel sources for 386-AT)。
1993年,大約有100餘名程序員參與了Linux內核代碼編寫/修改工作,其中核心組由5人組成,此時Linux 0.99的代碼有大約有十萬行,用戶大約有10萬左右。
1994年3月,Linux1.0發布,代碼量17萬行,當時是按照完全自由免費的協議發布,隨後正式採用GPL協議。
1995年1月,Bob Young創辦了RedHat(小紅帽),以CNULinux為核心,集成了400多個源代碼開放的程序模塊,搞出了一種冠以品牌的Linux,即RedHat Linux,稱為Linux發行版,在市場上出售。這在經營模上是一種創舉。
1996年6月,Linux 2.0內核發布,此內核有大約40萬行代碼,並可以支持多個處理器。此時的Linux 已經進入了實用階段,全球大約有350萬人使用。
1998年2月,以Eric Raymond為首的一批年輕的老牛羚骨幹分子終於認識到CNULinux體系的產業化道路的本質,並非是什麼自由哲學,而是市場競爭的驅動,創辦了Open Source Intiative(開放源代碼促進會)復興的大旗,在互聯網世界裡展開了一場歷史性的Linux產業化運動。
2001年1月,Linux 2.4發布,它進一步地提升了SMP系統的擴展性,同時它也集成了很多用於支持 桌面系統的特性:USB,PC卡(PCMCIA)的支持,內置的即插即用,等等功能。
2003年12月,Linux 2.6版內核發布,相對於2.4版內核2.6在對系統的支持都有很大的變化。
2004年的第1月,SuSE嫁到了Novell,SCO繼續頂著罵名四處強行化緣 , Asianux, MandrakeSoft也在五年中首次宣布季度贏利。3月SGI宣布成功實現了Linux操作系統支持256個Itanium 2處理器。
2.3Windows操作系統簡介
Windows操作系統是一款由美國微軟公司開發的窗口化操作系統。採用了GUI圖形化操作模式,比起從前的指令操作系統如DOS更為人性化。Windows操作系統是目前世界上使用最廣泛的操作系統。最新的版本是Windows 8。Microsoft公司從1983年開始研製Windows系統,最初的研製目標是在MS-DOS的基礎上提供一個多任務的圖形用戶界面。第一個版本的Windows 1.0於1985年問世,它是一個具有圖形用戶界面的系統軟體。1987年推出了Windows 2.0版,最明顯的變化是採用了相互疊蓋的多窗口界面形式。但這一切都沒有引起人們的關注。直到1990年推出Windows 3.0是一個重要的里程碑,它以壓倒性的商業成功確定了Windows系統在PC領域的壟斷地位。現今流行的 Windows 窗口界面的基本形式也是從Windows 3.0開始基本確定的。1992年主要針對Windows 3.0的缺點推出了Windows 3.1,為程序開發提供了功能強大的窗口控制能力,使Windows和在其環境下運行的應用程序具有了風格統一、操縱靈活、使用簡便的用戶界面。Windows3.1 在內存管理上也取得了突破性進展。它使應用程序可以超過常規內存空間限制 ,不僅支持16MB內存定址,而且在80386及以上的硬體配置上通過虛擬存儲方式可以支持幾倍於實際物理存儲器大小的地址空間。Windows 3.1還提供了一定程度的網路支持、多媒體管理 、超文本形式的聯機幫助設施等,對應用程序的開發有很大影響
2.4UNIX網路配置
2.5Windows網路配置
2.6小結
習題 3.1網路安全基礎知識
3.2威脅網路安全的因素
3.3網路安全分類
3.4網路安全解決方案
3.5小結
習題 4.1什麼是計算機安全
4.2安全級別
4.3系統訪問控制
4.4選擇性訪問控制
4.5小結
習題 5.1資料庫安全概述
5.2資料庫安全的威脅
5.3資料庫的數據保護
5.4資料庫備份與恢復
5.5小結
習題 6.1計算機病毒及其分類
6.2計算機病毒的傳播
6.3計算機病毒的特點及破壞行為
6.4宏病毒及網路病毒
6.5病毒的預防、檢測和清除
6.6病毒防治軟體
6.7小結
習題 7.1數據加密概述
7.2傳統密碼技術
7.3對稱密鑰密碼技術
7.4公鑰密碼體制
7.5數字簽名技術
7.6驗證技術
7.7加密軟體PGP
7.8小結
習題 8.1網路安全協議
8.2網路加密技術
8.3防火牆技術
8.4入侵檢測技術
8.5虛擬專用網技術
8.6小結
習題 9.1網際網路的安全
9.2Web站點安全
9.3黑客與網路攻擊
9.4口令安全
9.5網路監聽
9.6掃描器
9.7E-mail的安全
9.8IP電子欺騙
9.9DNS的安全性
9.10小結
習題 10.1數據完整性簡介
10.2容錯與網路冗餘
10.3網路備份系統
10.4小結
習題 11.1網路安全實驗指導書
11.2綜合練習題
附錄
附錄一優秀網路安全站點
附錄二英文縮寫詞
參考文獻
……
⑥ 電腦程序員要學什麼知識
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
1、掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
2、理解計算機的組成以及各主要部件的性能指標;
3、掌握操作系統、程序設計語言的基礎知識;
4、熟練掌握計算機常用辦公軟體的基本操作方法;
5、熟練掌握基本數據結構和常用演算法;
6、熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;
7、熟悉資料庫、網路和多媒體的基礎知識;
8、掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
9、了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
10、了解信息化、計算機應用的基礎知識;
11、正確閱讀和理解計算機領域的簡單英文資料。
程序員必備技能:
1、熟練開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。
而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。
其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。
另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
2、熟知資料庫
作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。
雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。
3、了解操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。
要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。
Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。懂得網路協議TCP/IP。
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式。
從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,深入掌握TCP/IP協議是非常必要的。
至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
4、明白DCOM/CORBA/XML/WEBServices存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。
XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布式計算的基石之一。
5、不要將軟體工程與CMM分開
大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員。
一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能。
如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。
6、需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求。
要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
7、模塊化思維能力
作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
就業方向:
1、網路開發
現在網路已經成為世界通訊的一座橋梁,好像Javascript、PHP、Ruby這幾類開發語言大部分是用作網路開發方面。
2、企業軟體開發
JAVA、C#、VB這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發。
3、系統軟體
C語言、C++、Object-C這些軟體更多是用在系統軟體開發,嵌入式開發的方面。
當然,這分類不是絕對,像JAVA、C#、VB很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。