C++新經典 版權信息
- ISBN:9787302549727
- 條形碼:9787302549727 ; 978-7-302-54972-7
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
C++新經典 本書特色
本書是一部C/C++編程語言書,定位在C/C++語言本身的講解上面。本書包含紙質圖書以及教學源代碼文件。
本書共分為3部分。**部分為C/C++語言概述(第1章),主要介紹了C和C++語言的起源,市場需求、就業形勢及如何搭建語言開發環境等內容。第2部分為C語言(第2~12章),主要介紹C語言的各種開發知識,包括基礎知識,如常量、變量、表達式、程序結構、數組、函數等,也包括**知識,如指針、結構、位運算、文件等,本部分的學習是為后面的學習打基礎。第3部分為C++語言(**3-20章),主要介紹C++語言的各種開發知識,包括基礎知識,如面向對象編程、命名空間、容器、迭代器,也包括類的詳細介紹、模板與泛型的詳細介紹; **知識,如智能指針詳細介紹、并發與多線程詳細介紹; 擴展知識,如內存**話題、STL標準模板庫大局觀; C++11新標準,如可調用對象、**引用、函數模板類型推斷、引用折疊、**轉發、auto推斷、decltype、lambda表達式、初始化列表、類型萃取等。
C++新經典 內容簡介
本書是一部C/C++編程語言書,定位在C/C++語言本身的講解上面。本書包含紙質圖書以及教學源代碼文件。
本書共分為3部分。部分為C/C++語言概述(章),主要介紹了C和C++語言的起源,市場需求、就業形勢及如何搭建語言開發環境等內容。第2部分為C語言(第2~12章),主要介紹C語言的各種開發知識,包括基礎知識,如常量、變量、表達式、程序結構、數組、函數等,也包括不錯知識,如指針、結構、位運算、文件等,本部分的學習是為后面的學習打基礎。第3部分為C++語言(3~20章),主要介紹C++語言的各種開發知識,包括基礎知識,如面向對象編程、命名空間、容器、迭代器,也包括類的詳細介紹、模板與泛型的詳細介紹; 不錯知識,如智能指針詳細介紹、并發與多線程詳細介紹; 擴展知識,如內存不錯話題、STL標準模板庫大局觀; C++11新標準,如可調用對象、多能引用、函數模板類型推斷、引用折疊、完美轉發、auto推斷、decltype、lambda表達式、初始化列表、類型萃取等。
本書以擇業為導向,涵蓋90%的C/C++語言常用開發知識,通俗易懂,范例眾多,對于希望從事C/C++開發的讀者極具實用價值,本書是一本的、值得珍藏并能夠陪伴讀者數年甚至數十年的參考書。
本書主要適合以下幾類讀者:
(1) C/C++語言初學者或者由其他計算機語言轉到C/C++語言的程序員。
(2) 從事C/C++開發多年的程序員,希望能夠詳細地復習一下基礎的C/C++知識,把整個知識線串一串,形成一個比較完整的學習體系。
(3) 已經掌握C++98標準,但是需要進一步學習C++11/14/17新標準的程序員。
C++新經典 目錄
第1部分C/C++語言概述
第1章 C/C++語言
1.1 C和C++語言的起源、特點、關系與講解范疇
1.2 C/C++語言的市場需求與就業需求分析
1.3 再談C/C++就業
1.4 搭建語言開發環境
第2部分C語言
第2章 數據類型、運算符與表達式
2.1 常量、變量、整型、實型和字符型
2.1.1 如何創建*基本的能運行的C程序
2.1.2 C語言的數據類型
2.1.3 常量和變量
2.1.4 整型數據
2.1.5 實型數據
2.1.6 字符型數據
2.1.7 字符串變量
2.1.8 變量賦初值
2.1.9 數值型數據之間的混合運算
2.2 算術運算符和表達式
2.2.1 C語言的運算符
2.2.2 算術運算符和算術表達式
2.2.3 運算符優先級問題
2.2.4 強制類型轉換運算符
2.2.5 自增和自減運算符
2.3 賦值運算符和逗號運算符
2.3.1 賦值運算符和賦值表達式
2.3.2 逗號運算符和逗號表達式
第3章 程序的基本結構和語句
3.1 C語言的語句和程序的基本結構
3.1.1 語句的分類
3.1.2 程序的三種基本結構
3.1.3 賦值語句的特殊寫法
3.2 數據的輸出與數據的輸入
3.2.1 數據的輸出
3.2.2 數據的輸入
第4章 邏輯運算和判斷選擇
4.1 關系運算符、關系表達式與邏輯運算符、邏輯表達式
4.1.1 關系運算符和關系表達式
4.1.2 邏輯運算符和邏輯表達式
4.2 if語句詳解
4.2.1 if語句的三種形式
4.2.2 if語句的嵌套
4.3 條件運算符和switch語句
4.3.1 條件運算符
4.3.2 switch語句
第5章 循環控制
5.1 循環控制語句簡介與goto、while、do…while語句精解
5.1.1 循環控制語句簡介
5.1.2 goto語句
5.1.3 while語句
5.1.4 do…while語句
5.2 for語句精解
5.2.1 for語句的一般形式
5.2.2 for語句的主要說明
5.3 循環的嵌套、比較與break語句、continue語句
5.3.1 循環的嵌套
5.3.2 幾種循環語句的比較
5.3.3 break語句和continue語句
第6章 數組
6.1 一維數組
6.1.1 一維數組的一般形式
6.1.2 一維數組元素的引用
6.1.3 一維數組的初始化
6.2 二維數組
6.2.1 二維數組的一般形式
6.2.2 二維數組元素的引用
6.2.3 二維數組的初始化
6.3 字符數組
6.3.1 字符數組的定義
6.3.2 字符數組的初始化
6.3.3 字符串和字符串結束標記
6.3.4 字符數組的輸入/輸出
6.3.5 字符串處理函數
第7章 函數
7.1 函數的基本概念和定義
7.1.1 函數的基本概念
7.1.2 函數的定義和返回值
7.2 函數調用方式和嵌套調用
7.2.1 函數調用的一般形式
7.2.2 函數調用的方式
7.2.3 函數的嵌套調用
7.3 函數遞歸調用精彩演繹
7.3.1 函數遞歸調用的定義
7.3.2 遞歸調用的出口
7.3.3 遞歸的優缺點及是否必須用遞歸
7.3.4 遞歸的實際運用簡介
7.4 數組作為函數參數
7.4.1 數組元素作為函數實參
7.4.2 數組名作為函數實參
7.4.3 用多維數組作為函數實參
7.5 局部變量和全局變量
7.5.1 局部變量
7.5.2 全局變量
7.6 變量的存儲和引用與內部和外部函數
7.6.1 變量的存儲類別
7.6.2 局部變量的存儲方式
7.6.3 全局變量跨文件引用
7.6.4 函數的跨文件調用
7.6.5 static關鍵字用法總結
第8章 編譯預處理
8.1 宏定義
8.1.1 不帶參數的宏定義
8.1.2 帶參數的宏定義
8.2 文件包含和條件編譯
8.2.1 文件包含
8.2.2 條件編譯
第9章 指針
9.1 指針的基本概念詳解
9.1.1 前提知識
9.1.2 地址的概念
9.1.3 直接訪問和間接訪問
9.2 變量的指針和指向變量的指針變量
9.2.1 指針變量的定義
9.2.2 指針變量的引用
9.2.3 指針變量作為函數參數
9.3 數組的指針和指向數組的指針變量
9.3.1 指向數組元素的指針變量的定義和賦值
9.3.2 通過指針引用數組元素
9.3.3 數組名作為函數參數
9.3.4 回顧二維數組和多維數組的概念
9.3.5 指向多維數組的指針和指針變量探究
9.3.6 指針數組和數組指針
9.3.7 多維數組的指針作為函數參數
9.4 字符串的指針和指向字符串的指針變量
9.4.1 字符串表示形式
9.4.2 字符串指針作為函數參數
9.4.3 字符指針變量與字符數組
9.5 函數指針和返回指針值的函數
9.5.1 用函數指針變量調用函數
9.5.2 把指向函數的指針變量作為函數參數
9.5.3 返回指針值的函數
9.6 指針數組、指針的指針與main函數參數
9.6.1 指針數組概念回顧
9.6.2 指向指針的指針
9.6.3 指針數組作為main函數參數
9.7 本章小結
第10章 結構體與共用體
10.1 結構體變量定義、引用與初始化
10.1.1 結構體簡介
10.1.2 定義結構體類型變量的方法
10.1.3 結構體類型變量的引用
10.1.4 結構體變量的初始化
10.2 結構體數組與結構體指針
10.2.1 結構體數組
10.2.2 結構體指針
10.2.3 用指向結構體的指針作為函數參數
10.3 共用體、枚舉類型與typedef
10.3.1 共用體
10.3.2 枚舉類型
10.3.3 用typedef定義類型
第11章 位運算
11.1 位的概念和位運算符簡介
11.1.1 位的概念
11.1.2 位運算符簡介
11.2 位運算的具體應用
第12章 文件
12.1 文件簡介及文本、二進制文件區別
12.1.1 文件簡介
12.1.2 文本文件和二進制文件區別詳細解釋
12.2 文件的打開、關閉、讀寫與實戰操練
12.2.1 文件的打開
12.2.2 文件的關閉
12.2.3 文件的讀寫
12.2.4 文件讀寫實戰操練
12.3 將結構體寫入二進制文件再讀出
12.3.1 將結構體寫入二進制文件
12.3.2 從二進制文件中讀出結構體數據
12.3.3 文件使用方式中"rb"和"r"、"wb"和"w"的區別
第3部分C++語言
第13章 C++基本語言
13.1 語言特性、工程構成與可移植性
13.1.1 語言特性: 過程式、對象式程序設計
13.1.2 C++程序和項目文件構成談
13.1.3 編譯型語言概念與可移植性問題
13.2 命名空間簡介與基本輸入/輸出精解
13.2.1 命名空間簡介
13.2.2 基本輸入/輸出
13.3 auto、頭文件防衛、引用與常量
13.3.1 局部變量和初始化
13.3.2 auto關鍵字簡介
13.3.3 頭文件防衛式聲明
13.3.4 引用
13.3.5 常量
13.4 范圍for、new內存動態分配與ptr
13.4.1 范圍for語句
13.4.2 動態內存分配問題
13.4.3 ptr
13.5 結構、權限修飾符與類簡介
13.5.1 結構回顧
13.5.2 public和private權限修飾符
13.5.3 類簡介
13.5.4 類的組織
13.6 函數新特性、inline內聯函數與const詳解
13.6.1 函數回顧與后置返回類型
13.6.2 inline內聯函數
13.6.3 函數特殊寫法總結
13.6.4 const char *、char const *與char * const 三者的區別
13.6.5 函數形參中帶const
13.7 string類型
13.7.1 總述
13.7.2 string類型簡介
13.7.3 定義和初始化string對象
13.7.4 string對象上的常用操作
13.8 vector類型
13.8.1 vector類型簡介
13.8.2 定義和初始化vector對象
13.8.3 vector對象上的操作
13.9 迭代器精彩演繹、失效分析及彌補、實戰
13.9.1 迭代器簡介
13.9.2 容器的迭代器類型
13.9.3 迭代器begin/end、反向迭代器rbegin/rend操作
13.9.4 迭代器運算符
13.9.5 const_iterator迭代器
13.9.6 迭代器失效
13.9.7 范例演示
13.10 類型轉換: static_cast、reinterpret_cast等
13.10.1 隱式類型轉換
13.10.2 顯式類型轉換(強制類型轉換)
13.10.3 總結
第14章 類
14.1 成員函數、對象復制與私有成員
14.1.1 總述
14.1.2 類基礎
14.1.3 成員函數
14.1.4 對象的復制
14.1.5 私有成員
14.2 構造函數詳解、explicit與初始化列表
14.2.1 稱呼上的統一
14.2.2 構造函數
14.2.3 多個構造函數
14.2.4 函數默認參數
14.2.5 隱式轉換和explicit
14.2.6 構造函數初始化列表
14.3 inline、const、mutable、this與static
14.3.1 在類定義中實現成員函數inline
14.3.2 成員函數末尾的const
14.3.3 mutable
14.3.4 返回自身對象的引用——this
14.3.5 static成員
14.4 類內初始化、默認構造函數、“=default;”和“=delete;”
14.4.1 類相關非成員函數
14.4.2 類內初始值
14.4.3 const成員變量的初始化
14.4.4 默認構造函數
14.4.5 “=default;”和“=delete;”
14.5 拷貝構造函數
14.6 重載運算符、拷貝賦值運算符與析構函數
14.6.1 重載運算符
14.6.2 拷貝賦值運算符(賦值運算符)
14.6.3 析構函數(釋放函數)
14.6.4 幾個話題
14.7 子類、調用順序、訪問等級與函數遮蔽
14.7.1 子類概念
14.7.2 子類對象定義時調用構造函數的順序
14.7.3 訪問等級(public、protected與private)
14.7.4 函數遮蔽
14.8 父類指針、虛/純虛函數、多態性與析構函數
14.8.1 父類指針與子類指針
14.8.2 虛函數
14.8.3 多態性
14.8.4 純虛函數與抽象類
14.8.5 父類的析構函數一般寫成虛函數
14.9 友元函數、友元類與友元成員函數
14.9.1 友元函數
14.9.2 友元類
14.9.3 友元成員函數
14.10 RTTI、dynamic_cast、typeid、typeinfo與虛函數表
14.10.1 RTTI是什么
14.10.2 dynamic_cast運算符
14.10.3 typeid運算符
14.10.4 type_info類
14.10.5 RTTI與虛函數表
14.11 基類與派生類關系的詳細再探討
14.11.1 派生類對象模型簡介
14.11.2 派生類構造函數
14.11.3 既當父類又當子類
14.11.4 不想當基類的類
14.11.5 靜態類型與動態類型
14.11.6 派生類向基類的隱式類型轉換
14.11.7 父類、子類之間的復制與賦值
14.12 左值、右值、左值引用、右值引用與move
14.12.1 左值和右值
14.12.2 引用分類
14.12.3 左值引用
14.12.4 右值引用
14.12.5 std::move函數
14.12.6 左值、右值總結說明
14.13 臨時對象深入探討、解析與提高性能手段
14.13.1 臨時對象的概念
14.13.2 產生臨時對象的情況和解決方案
14.14 對象移動、移動構造函數與移動賦值運算符
14.14.1 對象移動的概念
14.14.2 移動構造函數和移動賦值運算符概念
14.14.3 移動構造函數演示
14.14.4 移動賦值運算符演示
14.14.5 合成的移動操作
14.14.6 總結
14.15 繼承的構造函數、多重繼承、類型轉換與虛繼承
14.15.1 繼承的構造函數
14.15.2 多重繼承
14.15.3 類型轉換
14.15.4 虛基類與虛繼承(虛派生)
14.16 類型轉換構造函數、運算符與類成員指針
14.16.1 類型轉換構造函數
14.16.2 類型轉換運算符(類型轉換函數)
14.16.3 類型轉換的二義性問題
14.16.4 類成員函數指針
14.16.5 類成員變量指針
第15章 模板與泛型
15.1 模板概念與函數模板的定義、調用
15.1.1 模板概念
15.1.2 函數模板的定義
15.1.3 函數模板的調用
15.1.4 非類型模板參數
15.2 類模板概念與類模板的定義、使用
15.2.1 類模板概念
15.2.2 類模板的定義
15.2.3 類模板的成員函數
15.2.4 類模板名字的使用
15.2.5 非類型模板參數的使用
15.3 使用typename的場合、函數模板、默認模板參數與趣味寫法分析
15.3.1 typename的使用場合
15.3.2 函數指針作為其他函數的參數
15.3.3 函數模板趣味用法舉例
15.3.4 默認模板參數
15.4 成員函數模板,模板顯式實例化與聲明
15.4.1 普通類的成員函數模板
15.4.2 類模板的成員函數模板
15.4.3 模板顯式實例化與聲明
15.5 using定義模板別名與顯式指定模板參數
15.5.1 using定義模板別名
15.5.2 顯式指定模板參數
15.6 模板全特化與偏特化(局部特化)
15.6.1 類模板特化
15.6.2 函數模板特化
15.6.3 模板特化版本放置位置建議
15.7 可變參模板與模板模板參數
15.7.1 可變參函數模板
15.7.2 可變參類模板
15.7.3 模板模板參數
第16章 智能指針
16.1 直接內存管理(new/delete)、創建新工程與觀察內存泄漏
16.1.1 直接內存管理(new/delete)
16.1.2 創建新工程與觀察內存泄漏
16.2 new/delete探秘、智能指針總述與shared_ptr基礎
16.2.1 new/delete探秘
16.2.2 智能指針總述
16.2.3 shared_ptr基礎
16.3 shared_ptr常用操作、計數與自定義刪除器等
16.3.1 shared_ptr引用計數的增加和減少
16.3.2 shared_ptr指針常用操作
16.4 weak_ptr簡介、weak_ptr常用操作與尺寸問題
16.4.1 weak_ptr簡介
16.4.2 weak_ptr常用操作
16.4.3 尺寸問題
16.5 shared_ptr使用場景、陷阱、性能分析與使用建議
16.5.1 std::shared_ptr使用場景
16.5.2 std::shared_ptr使用陷阱分析
16.5.3 性能說明
16.5.4 補充說明和使用建議
16.6 unique_ptr簡介與常用操作
16.6.1 unique_ptr簡介
16.6.2 unique_ptr常用操作
16.7 返回unique_ptr、刪除器與尺寸問題
16.7.1 返回unique_ptr
16.7.2 刪除器
16.7.3 尺寸問題
16.8 智能指針總結
第17章 并發與多線程
17.1 基本概念和實現
17.1.1 并發、進程、線程的基本概念和綜述
17.1.2 并發的實現方法
17.1.3 C++11新標準線程庫
17.2 線程啟動、結束與創建線程寫法
17.2.1 范例演示線程運行的開始和結束
17.2.2 其他創建線程的寫法
17.3 線程傳參詳解、detach坑與成員函數作為線程函數
17.3.1 傳遞臨時對象作為線程參數
17.3.2 臨時對象作為線程參數繼續講
17.3.3 傳遞類對象與智能指針作為線程參數
17.3.4 用成員函數作為線程入口函數
17.4 創建多個線程、數據共享問題分析與案例代碼
17.4.1 創建和等待多個線程
17.4.2 數據共享問題分析
17.4.3 共享數據的保護實戰范例
17.5 互斥量的概念、用法、死鎖演示與解決詳解
17.5.1 互斥量的基本概念
17.5.2 互斥量的用法
17.5.3 死鎖
17.6 unique_lock詳解
17.6.1 unique_lock取代lock_guard
17.6.2 unique_lock的第二個參數
17.6.3 unique_lock的成員函數
17.6.4 unique_lock所有權的傳遞
17.7 單例設計模式共享數據分析、解決與call_once
17.7.1 設計模式簡單談
17.7.2 單例設計模式
17.7.3 單例設計模式共享數據問題分析、解決
17.7.4 std::call_once
17.8 condition_variable、wait、notify_one與notify_all
17.8.1 條件變量std::condition_variable、wait與notify_one
17.8.2 上述代碼深入思考
17.8.3 notify_all
17.9 async、future、packaged_task與promise
17.9.1 std::async和std::future創建后臺任務并返回值
17.9.2 std::packaged_task
17.9.3 std::promise
17.9.4 小結
17.10 future其他成員函數、shared_future與atomic
17.10.1 std::future的其他成員函數
17.10.2 續談std::async的不確定性問題
17.10.3 std::shared_future
17.10.4 原子操作std::atomic
17.11 Windows臨界區與其他各種mutex互斥量
17.11.1 Windows臨界區
17.11.2 多次進入臨界區試驗
17.11.3 自動析構技術
17.11.4 recursive_mutex遞歸的獨占互斥量
17.11.5 帶超時的互斥量std::timed_mutex和std::
recursive_timed_mutex
17.12 補充知識、線程池淺談、數量談與總結
17.12.1 知識點補充
17.12.2 淺談線程池
17.12.3 線程創建數量談
17.12.4 C++11多線程總結
第18章 內存高級話題
18.1 new、delete的進一步認識
18.1.1 總述與回顧
18.1.2 從new說起
18.2 new內存分配細節探秘與重載類內operator new、delete
18.2.1 new內存分配細節探秘
18.2.2 重載類中的operator new和operator delete操作符
18.2.3 重載類中的operator new[]和operator delete[]操作符
18.3 內存池概念、代碼實現和詳細分析
18.3.1 內存池的概念和實現原理簡介
18.3.2 針對一個類的內存池實現演示代碼
18.3.3 內存池代碼后續說明
18.4 嵌入式指針概念及范例、內存池改進版
18.4.1 嵌入式指針
18.4.2 內存池代碼的改進
18.5 重載全局new/delete、定位new及重載
18.5.1 重載全局operator new和operator delete操作符
18.5.2 定位new(placement new)
18.5.3 多種版本的operator new重載
第19章 STL標準模板庫大局觀
19.1 STL總述、發展史、組成與數據結構談
19.1.1 幾個概念與推薦書籍
19.1.2 算法和數據結構談
19.1.3 STL發展史和各個版本
19.1.4 標準庫的使用說明
19.1.5 STL的組成部分
19.2 容器分類與array、vector容器精解
19.2.1 容器的分類
19.2.2 容器的說明和簡單應用
19.3 容器的說明和簡單應用例續
19.3.1 deque和stack
19.3.2 queue
19.3.3 list
19.3.4 其他
19.4 分配器簡介、使用與工作原理說
19.4.1 分配器簡介
19.4.2 分配器的使用
19.4.3 其他的分配器與原理說
19.4.4 自定義分配器
19.5 迭代器的概念和分類
19.5.1 迭代器基本概念
19.5.2 迭代器的分類
19.6 算法簡介、內部處理與使用范例
19.6.1 算法簡介
19.6.2 算法內部一些處理
19.6.3 一些典型算法使用范例
19.7 函數對象回顧、系統函數對象與范例
19.7.1 函數對象/仿函數回顧
19.7.2 標準庫中定義的函數對象
19.7.3 標準庫中定義的函數對象范例
19.8 適配器概念、分類、范例與總結
19.8.1 適配器基本概念
19.8.2 容器適配器
19.8.3 算法適配器
19.8.4 迭代器適配器
19.8.5 總結
第20章 高級話題與新標準
20.1 函數調用運算符與function類模板
20.1.1 學習C++的體會
20.1.2 函數調用運算符
20.1.3 不同調用對象的相同調用形式
20.1.4 標準庫function類型簡介
20.1.5 總結
20.2 萬能引用
20.2.1 類型區別基本概念
20.2.2 universal reference基本認識
20.2.3 萬能引用資格的剝奪與辨認
20.3 理解函數模板類型推斷與查看類型推斷結果
20.3.1 如何查看類型推斷結果
20.3.2 理解函數模板類型推斷
20.4 引用折疊、轉發、完美轉發與forward
20.4.1 引用折疊規則
20.4.2 轉發與完美轉發
20.4.3 std::forward
20.4.4 std::move和std::forward的區別
20.4.5 再談萬能引用
20.5 理解auto類型推斷與auto應用場合
20.5.1 auto類型常規推斷
20.5.2 auto類型針對數組和函數的推斷
20.5.3 auto類型std::initializer_list的特殊推斷
20.5.4 auto不適用場合舉例
20.5.5 auto適用場合舉例
20.6 詳解decltype含義與decltype主要用途
20.6.1 decltype含義和舉例
20.6.2 decltype主要用途
20.6.3 總結
20.7 可調用對象、std::function與std::bind
20.7.1 可調用對象
20.7.2 std::function可調用對象包裝器
20.7.3 std::bind綁定器
20.7.4 總結
20.8 lambda表達式與for_each、find_if簡介
20.8.1 用法簡介
20.8.2 捕獲列表
20.8.3 lambda表達式延遲調用易出錯細節分析
20.8.4 lambda表達式中的mutable
20.8.5 lambda表達式的類型和存儲
20.8.6 lambda表達式再演示和優點總結
20.9 lambda表達式捕獲模式的陷阱分析和展示
20.9.1 捕獲列表中的&
20.9.2 形參列表可以使用auto
20.9.3 成員變量的捕獲問題
20.9.4 廣義lambda捕獲
20.9.5 靜態局部變量
20.10 可變參數函數、initializer_list與省略號形參
20.10.1 可變參數函數
20.10.2 initializer_list(初始化列表)
20.10.3 省略號形參
20.11 萃取技術概念與范例等
20.11.1 類型萃取簡介
20.11.2 類型萃取范例
20.11.3 迭代器萃取簡介
20.11.4 總結
后記IT職業發展的未來之路
展開全部
C++新經典 作者簡介
王健偉 男,1976年9月生,網名狂想(KuangXiang),1995年畢業于哈爾濱工程大學計算機及應用專業,擁有20多年軟件開發經驗,參與開發過數十個實際項目,涉及網絡通信、網絡安全、網絡游戲等領域,具備極其深厚的軟件開發實戰經驗。曾參與創辦深圳知名網絡安全公司安絡科技有限公司,是中國首套網絡安全在線掃描評估系統項目負責人、全球同服獨立游戲《冒險之路》制作人。