書籍

 

層次:初級php

導讀:《Essential C++中文版》以4個方面來表現C++的本質:procedural(程序性的)、generic(泛型的)、object-based(個別對象的)、object-oriented(面向對象的)。《Essential C++中文版》的組織圍繞着一系列逐漸繁複的程序問題,以及用以解決這些問題的語言特性。循此方式,你不僅學到C++的函數和結構,也會學習到它們的設計目的和基本原理。html

【點擊下載】
java

層次:初級c++

導讀:《C++ Primer中文版(第4版·特別版)》附加了《C++編程規範:101條規則、準則與最佳實踐》一書的所有內容
對C++基本概念和技術全面並且權威的闡述,以及對現代C++編程風格的強調,使本書不只是初學者的最佳C++指南,並且是中高級程序員不可或缺的參考書。 程序員

【點擊下載】shell

層次:中級編程

導讀:本書一共組織 55 個準則,每一條準則描述一個編寫出更好的 c++ 的方式。每個條款的背後都有具體範例支撐。第三版有一半以上的篇幅是嶄新內容,包括討論資源管理和模板(templates)運用的兩個新章。爲反映出現代設計考慮,對第二版論題作了普遍的修訂,包括異常(exceptions)、設計模式(design patterns)和多線程(multithreading)。  
《effective c++》的重要特徵包括:
* 高效的 classes、functions、templates 和inheritance hierarchies(繼承體系)方面的專家級指導。
* 嶄新的 "tr1" 標準程序庫功能應用,以及與既有標準程序庫組件的比較。
* 洞察 c++和其餘語言(例如java、c#、c)之間的不一樣。此舉有助於那些來自其餘語言陣營的開發人員消化吸取 c++ 式的各類解法。c#

【點擊下載】設計模式

 

層次:中級

 

導讀:《c++編程思想(兩卷合訂本)》的第1卷是在第1版的基礎上進行了更加深刻的分析和修改後獲得的第2版,其內容更加集中,能夠供不一樣程度的讀者選擇閱讀。本書第2卷介紹了c++實用的編程技術和最佳的實踐方法,深刻探究了異常處理方法和異常安全設計;介紹c++的字符串、輸入輸出流的現代用法;解釋多重繼承問題的難點,描述了典型的設計模式及其實現,特別介紹了多線程處理編程技術。數組

【點擊下載】

層次:中級

導讀:繼 effective c++ 之後,scott meyers 於 1996 推出這本「續集」。條款變得比較少,頁數卻是多了一些,緣由是此次選材比「第一集」更高階,尤爲是第五章。meyers 將此章命名爲技術(techniques),並明白告訴你,其中都是一些 patterns,例如 virtual ctors、smart pointers、reference counting、proxy classes,double dispatching┅等等。這一章的每一個條款篇幅都在 15~30 頁之譜,實在讓人有「山窮水盡疑無路,柳暗花明又一村」之嘆。

【點擊下載】

層級:中級

導讀:本書中講述的疑惑和問題不只僅會使你感興趣,並且還會幫助你成爲一名優秀的C++程序員。每一個問題都是根據難度進行分級並用來講明錯綜的編程錯誤或設計考慮的。在你有機會本身嘗試完成一個解決方案後,本書會幫助你分析代碼、闡明錯誤,並演示如何修正錯誤。

【點擊下載】

層級:中級

導讀:本書是真正的程序員的必讀之物,在向你展現如何用C++撰寫優質代碼的同時,它爲你提供了對語言完全而實用的理解。本書是廣受讚譽的Exceptional C++的續篇,它採用了行之有效的「提問/解答」的組織形式,提供了用C++解決現實世界問題的成功策略。

【點擊下載】

層級:高級

導讀:本書中,C++大師Herb Sutter經過40個編程問題,使讀者不只「知其然」,更要「知其因此然」,幫助程序設計人員在軟件中尋找恰到好處的折中,即討論如何在開銷與功能之間、優雅與可維護性之間、靈活性與過度靈活之間尋找完美的平衡點。本書是圍繞實際問題及其解決方案展開論述的,對一些相當重要的C++細節和相互關係提出了新的看法,爲當今關鍵的C++編程技術(如泛型編程、STL、異常安全等)提供了新的策略。本書的目標是讓讀者在設計、架構和編碼過程當中保持良好的風格,從而使編寫的C++軟件更健壯、更高效。本書適合中高級C++程序員閱讀。 軟件「風格」所要討論的主題是如何在開銷和功能性之間、優雅跟可維護性之間、靈活性與過度靈活之間尋找完美的平衡點。

【點擊下載】

層級:高級

導讀:《深度探索C++對象模型》重點:探索"對象導向程序所支持的C++對象模型"下的程序行爲。對於"對象導向性質之基礎實現技術"以及"各類性質背後的隱含利益交換"提供一個清楚的認識。檢驗由程序變形所帶來的效率衝擊。提供豐富的程序範例、圖片,以及對象導向觀念和底層對象模型之間的效率測量。Inside The C++ Object Model專一於C++對象導向程序設計的底層機制,包括結構式語意、暫時性對象的生成、封裝、繼承,以及虛擬——虛擬函數和虛擬繼承。這《深度探索C++對象模型》讓你知道:一旦你可以瞭解底層實現模型,你的程序代碼將得到多麼大的效率。Lippman澄清了那些關於C++額外負荷與複雜度的各類錯誤信息和迷思,但也指出其中某些成本和利益交換確實存在。他闡述了各式各樣的實現模型,指出它們的進化之道及其本質因素。

【點擊下載】

層級:高級 

導讀: 全書分爲6篇32章,分別對c++語言的歷史和特色、類和繼承、stl與泛型編程、庫的設計等幾大技術話題進行了詳細而深刻的討論,細微之處幾乎涵蓋了c++全部的設計思想和技術細節。全書經過精心挑選的實例,向讀者傳達先進的程序設計的方法和理念。
  本書適合有必定經驗的c++程序員閱讀學習,能夠幫助讀者增強提升技術能力,成爲c++程序設計的高手。

【點擊下載】

層級:高級 

導讀: 不少程序員及軟件設計師都認爲利用C++開發意味着放棄程序性能提高的可能。在不少人眼裏,使用C++來開發那些效率至上的應用無疑將致使一場空前的浩劫。所以,在許多性能敏感型領域,諸如網絡協議、操做系統內核、移動設備驅動等等,C++都經常處於被冷落的境地。
詳細討論了臨時對象、內存管理、繼承、虛函數、內聯、引用計數以及STL等一切有可能提高C++效率的細節內容。最終,該書將C++性能提高的各類終極利器,完美地呈如今廣大讀者的面前!不管你是相關領域的從業人員,仍是C++程序設計愛好者,或者是渴望突破編程瓶頸、大幅提高自我修爲的程序設計愛好者,《提升C++性能的編程技術》都必將使你獲益良多。

【點擊下載】

層級:高級 

導讀: C++STL(Standard Template Library,標準模板)是一次革命,可是學習如何用它倒是一個挑戰。在本書中,Scott Meyers(兩本最暢銷的書《Effective C++》和《More Effective C++》的做者)揭示了專家總結的一些關鍵規則,以便最大限度地使用標準模板庫。 其餘書只是描述了STL中有什麼,而本書則講述瞭如何使用STL。本書共有50條原則,對於每一條原則,SCOTT MEYERS都經過透徹的分析和經典的實例來進行講解,從而使讀者不只能夠了解要作什麼,並且還可以瞭解什麼時候作以及爲什麼作。 像MEYERS的其餘著做同樣,這本書充滿了從實踐中總結出來的智慧。它清晰、簡明、透徹的風格必將使每位STL程序員受益不淺。

【點擊下載】

 

ARM+Linux嵌入式底層內核驅動方向學習整體路線圖

 

附上ARM學習路徑圖

 

基礎學習Ⅰ---Linux入門
        目前嵌入式主要開發環境有 Linux、Wince等;Linux因其開源、開發操做便利而被普遍採用。而Linux操做系統也只是一個簡單的操做系統,簡單的使用對於嵌入式開發人 員來講價值並不很高,真正有價值的是掌握Linux的基本服務和Linux的設計理念、思想,這對於嵌入式開發人員的長期發展是很極其重要的。Linux 系統有不少發行版,RedHat、Ubuntu、Fedora等。做爲嵌入式開發人員,咱們沒有必要把精力放到使用哪一個Linux發行版上,而是儘快把 Linux系統儘快安裝好。若是打算堅持長期學習,那麼建議您把本身的電腦作成雙系統,而不要在虛擬機上安裝。

A)經典書籍推薦:

 

B)經典學習視頻推薦:Linux操做系統入門

基礎學習Ⅱ---C語言

    C語言是嵌入式開發必備的基礎知識。在Linux下從事C語言的開發,你會以爲更爲順暢、更爲天然,由於C語言是因unix的出現而誕生的,Linux內 核幾乎徹底是由C語言編寫完成的。學習C語言,若是不會用指針,那麼就稱不上會C語言。作嵌入式開發指針更顯得尤其重要,因此作嵌入式開發除了掌握位操 做、限定詞等,對指針的掌握是不可或缺的。並且要掌握多級指針、函數指針等等。涉及到指針,那麼就會講到內存分配。在大學中,學習C語言通常的學習不多講 到內存分配,可是若是指望從事嵌入式開發,那麼就必須懂得C語言是怎麼作內存分配管理的。指針以外,還要學習模塊化編譯處理、指針與數組、gcc、 Makefile、GDB、遞歸、結構體、宏定義使用等。C語言是整棟嵌入式大廈的基礎,因此在學習嵌入式時,必須把C語言重視起來,多敲代碼,多練。一名優秀的程序員一定是經過「體力勞動」再轉向「腦力勞動的」,這也是爲何咱們要有「寫不出代碼=0」思想的緣由所在。
    如 果說C語言至關於文字,那麼數據結構就至關於在造句、寫文章。代碼質量有一部分取決於對數據結構的掌握程度。在數據結構部分咱們要把鏈表、樹、排序做爲學習重點。並且咱們也能夠查看一些比較常見的函數(如strcopy、strcat、printf等)在內核中是如何實現的,以及編寫代碼模擬堆棧,這 不只有利於編寫代碼質量的提升,並且還能夠初步瞭解Linux內核精髓,爲從此工做打下堅實的基礎。
        C++、QT在嵌入式開發領域,是用來開發圖形界面的,但願從事上層應用開發及圖形界面,那麼在C++、QT方面須要比較深刻的學習。  

A)經典書籍推薦:   

  

 

B)經典學習視頻推薦:C語言入門

C)經典學習案例:
一、學員成績管理系統二、計算器三、電子詞典四、文件壓縮器

基礎進階---Linux應用程序設計
     Linux的思想源於Unix。Linux繼承了Unix的優勢,但 是沒有用UNIX的代碼,全部程序都是從新編寫的,並且Linux與Unix的源碼級兼容。Linux是類Unix操做系統。Linux 不只符合 POSIX 標準,並且還包括其它 UNIX 標準的多種特性,例如,UNIX 的 System V 接口文檔(System V Interface Document,SVID)和伯克利軟件發佈(Berkeley Software Distribution,BSD)版本。Linux 採用了折衷的策略,包含了 UNIX 幾個典型特性當中最實用的一些功能:
     Linux 採用了 SVR4 的進程間通訊(IPC)機制:共享內存、消息隊列、信號。
     Linux 支持 BSD Socket 網絡編程接口。
     許多 Linux 發行版採用 SysV init 機制,支持運行級別。
此階段的學習是從事嵌入式上層應用開發以及底層開發人員的必修課程。進程、線程、信號、文件鎖、socket是這部份內容的重點。要把這些內容學的透徹非要下些苦功夫不可。並且函數是系統提供給咱們的,不免要對計算機系統深刻理解一番。TCP/IP協議也是要涉及到的。有問題建議用Google搜索及登錄 chinaunix論壇。經過這個階段的學習,咱們就能夠初步實現一些應用程序的開發了,如作本身的shell命令解析器、簡單的聊天軟件、視頻多播等。

A)經典書籍推薦:

  

B)經典學習視頻推薦:Linux環境高級編程

C)經典學習案例:
一、串口監聽程序   二、圖片瀏覽器      三、MP3播放器        四、聊天程序         五、 ftp程序
六、音頻廣播程序   七、ping的實現     八、DDos攻擊程序   九、ARP攻擊程序

嵌入式入門---ARM體系結構
    從這部分開始,咱們將真正進入嵌入式開發學習階段。首先咱們要知道採用哪一種處理器。目前通用嵌入式處理器有ARM、MIPS、PowerPC、X86等。 從市場產品佔有率上看,ARM處理器遠遠領先於同類其它處理器,並逐步掠奪傳統51單片機和英特爾市場份額。據招聘網站統計,目前用人單位在技術水平上要求開發人員掌握ARM9及以上平臺的開發技術。ARM公司在發佈ARM11產品後,更改以往的數字標記更新方式,轉爲發佈ARM Cortex。可是Cortex並非更高端,而是全新系列的處理器,好比Cortex M3,它主要應用於機械加工、工控領域,目的是取代之前的ARM7處理器。
    在開始學習前,建議有一塊本身的開發板,目前ARM9 2440的開發板價格在400-600元之間,ARM11 6410的開發板價格要高一些,最便宜的也要1200元以上。在此,提醒你們儘可能不要買mini開發板,雖然mini開發板的價格要便宜些,可是與正常開 發板相比,mini板功能是不完善的。嵌入式彙編有別於X86彙編,因此若是之前沒有接觸過彙編語言,那麼沒有必要先去學X86彙編再學嵌入式彙編,能夠 直接學習嵌入式彙編。除了彙編咱們還要學習ARM指令集。有了開發板,咱們要下載相對應處理器的DataSheet及開發板電路原理圖。ARM體系結構的 學習咱們是不能徹底照抄別人代碼的,由於咱們本身手中的開發板及處理器與別人是不一樣的,除非所用的代碼是根據你手中的開發板來編寫的。因此,咱們要先去看書、看視頻資料理解原理及工做方式等,而後根據本身開發板的電路原理圖和DataSheet來編寫代碼,達到理解外圍設備工做原理和操做硬件的目的。

  

 

B)經典學習視頻推薦:
1)  嵌入式掃盲篇——十問嵌入式

2)ARM體系結構與Bootloader開發

3)嵌入式ARM Linux開發——ARM彙編

C)經典學習案例:
1. ARM模擬器開發       2. Watchdog控制程序        3. RTC時鐘控制程序
4. Uart控制程序            5. LCD控制程序                    6. 觸摸屏控制程序
7. DMA控制程序          8. 音頻控制程序                    9. 網卡控制程序
10. 文件系統製做        11. ARM-Linux移植

嵌入式提高---Linux內核、驅動
         衆所周知嵌入式開發包含至少兩個級別,一個是嵌入式內核驅動級別,另一個是嵌入式應用層開發,而薪酬高的、最具價值的無疑是嵌入式內核驅動級別的開發者。真正的嵌入式高手或者企業中的核心開發人員,必定是嵌入式底層的內核驅動開發工程師,這些工程師成長比較緩慢,形成對內核驅動人才的大量需求,因此這 些人才是真正企業須要的香餑餑。掌握驅動開發會讓本身的核心能力有極大的飛躍,真正實現嵌入式最有價值的就業。
         因爲Linux內核更新速度很快,書籍和視頻不可能及時更新,因此咱們再看書和視頻後,要本身動手下載內核源碼包,去看內核中的代碼,在這裏能夠充分檢驗 C語言、數據結構等基礎知識的掌握程度。而驅動的編寫仍是要藉助外設硬件電路原理圖和芯片手冊。內核和驅動的知識是讓咱們根據不一樣的硬件,編寫對應的驅動、合理剪裁內核、製做文件系統,並移植到硬件開發板上。若是手裏有ARM11 6410及以上的開發板,能夠試試在裸板上編寫驅動並移植Android系統到開發板上吧。

  

B)經典學習案例:
1. GPIO驅動                2. RTC時鐘驅動   3. WatchDog驅動   4. Udev移植      5. 觸摸屏輸入設備驅動
6. LCD顯示設備驅動   7. DMA驅動        8. 音頻設備驅動        9. Nand Flash塊設備驅動  10. 網絡設備驅動

硬件工程師的書籍(等等)

 

相關文章
相關標籤/搜索