一直計劃作一個計算機知識體系的系列文章,目的是將本身學過的計算機知識融會貫通,也算是給本身學習計算機以來的一個總結;同時給周圍那些同我同樣不是計算機專業出身的人一些幫助,讓他們可以少走彎路,經過這一系列的文章來儘快的系統的補充完整本身的技術死角。php
本身學習的時候,走過不少彎路,好比在不懂彙編的時候居然拿一本編譯原理在看,這種不符合學習順序的事情但願經過這系列文章不要繼續發生在更多人身上。我會結合本身的學習經驗和工做經驗來說我所知道的東西經過這一系列的文章來表達出來,將本身認爲最有效的學習順序以及學習內容告訴那些須要的人,但願可以幫助周圍的朋友同時以及文章前面的你少走一些彎路。若是你自認爲計算機知識掌握的已經很全面了,那這些文章不適合你,還請飄過。固然 你也能夠「溫故而知新」。java
我認爲每一名程序員,不管是php仍是java c,都應該對 計算機知識進行系統的學習,縱然不能作到精通,但必定要作到熟知。我認爲有以下方面mysql
1.假如咱們就根本不知道一些知識存在,那咱們永遠沒有辦法將其歸入咱們的思惟中來。舉個最簡單的例子,假如咱們不瞭解數據結構,咱們就不會去思考該選擇哪一種數據結構,使用鏈表仍是用數組,由於咱們不知道數據結構的存在。因此爲了將系統設計的更合理更健壯,咱們也應該熟悉基礎知識體系。linux
2.在咱們研發過程當中出現問題時,假如咱們的知識體系不完善,咱們就沒有辦法去想到解決方案,甚至沒法肯定問題的存在。好比 當一個php-cgi佔用cpu很高,假如咱們不知道strace能夠查看進程中的系統調用,咱們除了重啓cgi,別的什麼都幹不了。因此爲了咱們可以更全面的解決問題,咱們也應該系統的去了解這些知識。nginx
3.在咱們學習新東西的時候,若是咱們的知識體系很完善,咱們學習起來會更容易會更快。好比 咱們學習memcache redis,其實就是一個管理內存分配調度存儲的程序,不一樣之處就是redis能夠持久化到硬盤上。固然這是原理 細節確定不少,這裏要說的是完善的知識體系會幫助咱們更快的學習和掌握新技術。c++
4.若是咱們打算作程序員作研發,那咱們就應該有一個很完善的技術知識體系,難道咱們作了好多年,咱們連那些應屆生都知道的東西咱們居然不知道,那就太慘了。因此爲了對得起本身程序員的這個職業,咱們也應該去系統的學習。git
5.若是你的知識夠全面,考慮問題更周全,解決問題更迅速,學習新知識更快捷,能常人之不能,那麼你的薪資待遇也應該是不錯的。因此爲了你可以活的更好,你也應該好好去學習。藝多不壓身,這個社會上沒有慈善組織,咱們只有憑藉咱們本身的技能拿到更高的待遇,從而過得更好,得到幸福。程序員
整個系列文章會分爲三個階段,基礎篇、進階篇、高級篇。redis
基礎篇:包括 計算機組成原理、計算機網絡及應用、彙編語言、編譯原理、操做系統、數據結構、c語言、c++ 等基礎知識、 linux操做系統。經過計算機組成原理了解計算機硬件的做用,經過計算機網絡瞭解各類網絡協議的原理及應用,經過彙編語言瞭解cpu的工做運算處理原理以及爲編譯原理的學習打點基礎,經過對操做系統的學習來了解硬件資源分配、進程調度以及與程序開發的關係,知道當咱們按下一個鍵的時候具體發生了什麼,瞭解顯卡cpu內存硬盤工做關係。經過c、c++來學習數據結構,幫助咱們更好的理解數據結構,也爲咱們開發或學習開源代碼提供基礎,經過學習linux系統管理來開始學習偉大的linux。sql
基礎篇咱們所應該達到的目標應該是對整個計算機基礎知識體系有了一個很全面的瞭解,現階段瞭解熟知就能夠。這爲咱們之後的學習和工做打下了良好的基礎,其實新技術新功能都是在這些基礎上不斷的組合出來的,咱們要作到以不變應萬變,這纔是根基,這纔是最重要的東西。咱們應該好好掌握。
進階篇:這裏面應該是一些對基礎篇一些具體的應用去作一些剖析,以及工做經驗的一些總結,好比 mysql數據庫管理以及優化、nginx的應用、php的應用以及優化、vim編輯器的使用、svn git 等版本控制的使用,shell腳本的編寫。
進階篇應是一些總結和應用,在咱們平時工做中用到的遇到的一些東西的總結和應用,對咱們平時的工做應該有所幫助。
高級篇:這裏面對一些技術作一些源碼分析,好比php源代碼的分析,nginx源代碼的分析,sphinx搜索引擎的源碼分析,這裏面幾乎要用到基礎篇的全部知識,一些原理還有一些語言 如彙編這種低級語言 c、c++高級語言來幫咱們閱讀以及分析這些優秀開源產品的源代碼。
高級篇對一些比較成熟的產品進行了源碼解析,可以在幫助咱們熟悉這些開源產品的功能的同時,又能增長咱們對基礎知識的鞏固以及應用,也學習到了那些高手們的開發經驗。這個階段後咱們開發一些底層的東西 如文件系統 內存管理系統 開發這些底層應用應該是沒有問題的了。
文章序號排列:好比「基礎篇的第一章第一節」的文章序號就是1-1.1 「進階篇的第二章第三節」的文章序號就是2-2.3 「高級篇的第8張第一節」的文章序號就是3-3.1。
這件事情一直一拖再拖,寫這篇文章第一是爲這個系列寫個前言正式開始實施這個計劃,第二也是給本身一些壓力,有壓力纔有動力,但願可以儘快的完成這件事情。