上篇我是如何在一夜拿到阿里巴巴offer的?一文分享給你們後,得到你們一致好評,都說學到了不少面試技巧。程序員
但此次我要說的是面試技巧只能讓你提升得到面試資格的機率,最終能不能拿到offer還得看你的硬實力。面試
我在準備10幾天的時間下順利經過面試,也許有人會說是運氣,但運氣爲何有的人有而有的人沒?算法
由於運氣是留給有準備的人的。就算彩票中獎起碼也得比大部分人多作一步,首先得去買張彩票。數據庫
所以本篇我不講速成論,而是讓你紮紮實實打牢基礎,而後等着運氣降臨。編程
看過個人編程人生一文的同窗應該知道里面我提到本身讀了不少書,專業的非專業的都有。設計模式
在這過程當中我也踩了很多坑,好書讀過,爛書也讀過。固然話說回來,你不讀也不知道它是好是爛,這是個悖論。性能優化
此次我就結合本身的真實學習經驗,並結合大學裏的課來給你們分享那些年我讀過的書。微信
注意,本文提到的書不是網上隨便找的書單,所有是本身親自看過的。網絡
爲何這節標題是屠龍術,由於我認爲讀這些書能讓你瞭解計算機科學的本質,掌握屠龍之技。數據結構
瞭解了本質,一切就變得容易了。
如下書籍重要程度分前後。
你沒看錯,就是彙編語言。爲何是彙編語言,由於我認爲如今你們對這門古老的語言都不重視。
這本書是我在大三上彙編語言這門課時買的。當時上課用的教材不是這本,由於我的感受教材不太友好,在網上搜索後買了這本書。
這本書不厚,由淺到深的介紹了彙編語言,重要的是還有實踐代碼。學完後會讓你對彙編語言有必定的瞭解,不深,可是足夠用了。我彙編語言課最後考了94分,這本書功不可沒。
不少人會問,彙編語言都淘汰了,學了有什麼用,你看如今哪家公司招彙編語言開發?
我想說是的,如今公司不多有用匯編語言的了,畢竟有了農耕機,誰還用牛耕地?
可是,我要說的是,只有用牛耕過地,你纔會更瞭解這片孕育萬物的土地。
學任何東西只有瞭解它的本質,你才能學的更快,學的更深,學的更好。
而彙編語言就是能讓你瞭解語言本質的東西,是全部高級語言的源。
因此無論你是計算機科班出身仍是半路出家,我都建議你去看看這本書。
若是你自己就是計算機專業,那你上課時候必定要認真去學,爲你的「專業性」打基礎。
若是你是中途轉行或者通過培訓上崗,我也建議你有空的時候去看看,能讓你更瞭解計算機的本質,縮小和科班的差距。
固然花了這麼多篇幅介紹此書,我也不是讓你成爲彙編語言的高手,只是讓你對這門語言有必定的認識。
不會彙編語言不會影響你成爲編程高手,可是必定成爲不了大師。
這本書不少人應該都知道,是經典書。能讓你對整個計算機硬件和軟件體系有所瞭解,建議計算機從業者收藏,反覆閱讀,常讀常新。
若是是計算機專業學生,建議和計算機組成原理這門課搭配使用,能夠出奇效。
這本書是我大三上操做系統這門課時看的書,當時上課用的教材不是這本,是我在圖書館看到的。當時看後以爲講的比較詳細,就本身買了本看成教材使用了。
這本書如書名,講操做系統原理,計算機專業學生應該都會上這門課。建議你們上這門課時候都能認認真真上,尤爲是考研的同窗,考研會考裏面的知識。
爲何我建議認認真真上,由於這門課比較枯燥,內容也比較難,因此逃課率很高。我是爲數很少歷來不逃這門課的學生之一。
這本書講的比較全面,能夠提升對計算機網絡系統的認識,一樣建議準備考研的同窗好好學這麼課。
這是大二下學期咱們上離散數學課的教材,主要講計算機中的數學知識。
計算機學科本就是從數學發展出來的分支,所以數學對程序員的重要性不言而喻。
寫程序最重要的是邏輯性,學習這本書能系統性的提升邏輯推理能力,學的時候最好把每章後面的題作一下。
這是大一下學期上數據結構課時我搭配的一本書。一樣上課教材不是這本,是我在圖書館發現的。
講數據結構的書不少,爲何選這本書?
由於這本是用C語言來描述的,示例代碼都是C語言。我認爲學數據結構算法最合適的語言是C,用純面向過程的語言去學習數據結構和算法才更能理解其本質。
算法本質是對空間複雜度和時間複雜度的優化。
空間上C語言沒有面向對象的特性,聲明變量後徹底能夠根據變量類型計算出程序總共消耗的內存,能夠更準確的評估程序運行過程當中到底消耗了多少內存。
時間上C做爲面向過程語言,可用函數庫不多,經過本身寫代碼能讓你清楚的瞭解程序運行時執行了多少指令,讓你對你算法效率有更精確的評估。
固然隨着計算機CPU性能的提升,內存的不斷增加,程序員對時間和空間的要求也沒那麼嚴格了。但在系統性能優化和虛擬機優化等難度較高領域對算法仍是有嚴格的要求。
雖然用Java、Python、JavaScrpit等語言介紹算法的書市面上不少,也能讓你對算法有必定了解。但我認爲經過這些書去學習算法,仍是有隔靴搔癢的感受,雖然你懂了,可是沒有那麼透徹,換種語言說不定也就寫不出來了。
而用C語言能讓你更透徹的理解算法的本質,所以我建議有C語言基礎的同窗最好用這本書去學算法。尤爲是計算機專業學生,由於大部分專業課教材裏涉及到的代碼都是用C語言寫的。
這是大三下學期學數據庫課時我搭配的一本書,一樣不是上課教材,是在圖書館發現的。
做爲一名程序員,或多或少確定會用到數據庫,有的人只會簡單的SQL語句或者熟練使用MySql、Oracle、SQLServer等軟件就說本身懂數據庫了。
其實數據庫是一套很完善的數據存儲系統,SQL語句只是和用戶交互的通道。不瞭解數據庫系統的知識充其量只是個數據庫軟件熟練工。
而經過看這本書,你能夠系統的瞭解到數據庫知識的全貌,學完後甚至能夠本身去實現一個小型數據庫,這樣對別人說本身懂數據庫時才更有自信。。
這本書是咱們大一上C++課程時的教材,發的教材實際上是英文版的,這裏我給你們介紹中文版。
畢竟是C++之父寫的,比世面上其它C++書好太多。由淺入深,知識很全面,書上的代碼也都頗有表明性。若是把書上的代碼都上機打一遍,C++絕對入門了。
不知道是否是全部計算機專業都會把C++看成第一門語言課,由於C++相對其它語言來講,入門上手會相對比較難,可能會打消掉一部分同窗的積極性。
但學任何東西其實都有一個學習曲線,只要你沉下心去學,多花點時間,總會跨過那個曲線,後面學習過程就會變得很平滑。學C++也相似,建議你們不要知難而退,而是要迎難而上,翻過大山也許就能看到彩虹。
這裏我也提本身一個觀點,我認爲把C++當成編程語言的入門課實際上是有好處的。由於只要你學會C++,其它面向對象的語言學起來都會很快,只要看一遍語法就能立立刻手。畢竟難的都會了,簡單的不更輕鬆嗎?
這本書是我研究生時看到的課外書,也推薦給你們。
書頗有趣,像講故事同樣把計算機的前世此生和重要知識點娓娓道來。若是想偷懶,不想讀厚厚專業書的同窗能夠經過看這本書來了解計算機體系的總體脈絡。
介紹完能夠屠龍的書,再來說講本身讀過的一些比較好的書。這些書能夠提升你的專業技能,讓你的職業道路走的更紮實,更長遠,因此我稱爲乘龍術。
《C程序設計語言》,機械工業出版社,做者Brian W. Kernighan / (美)Dennis M. Ritchie。
C語言之父寫的,入門經典書籍,建議你們做爲C語言入門的第一本書。
《C Primer Plus》 ,人民郵電出版社,做者Stephen Prata。
能夠做爲C語言工具書,也能夠做爲入門。
《C和指針》
深刻了解指針,看完之後對指針再也不懼怕。
《C陷阱與缺陷》
看完後能夠避免C語言開發的一些坑。
《Windows程序設計(第5版 珍藏版)》
這是我在大二學C#時候看的一本書,裏面的代碼我所有在電腦上手打了一遍。
這本書主要介紹Window系統桌面軟件的開發,想了解和從事這方面開發的同窗能夠看看。
看過這本書,你會對你電腦上用到的軟件有一個更深的體會。窗口是怎麼出來,菜單點擊後是怎麼處理的,動畫是怎麼繪製的,軟件又是怎麼和操做系統通訊的,看完這本書你統統都會知道。
《Windows核心編程》
若是想對Windows系統有更深的瞭解能夠看看這本書,我當時在圖書館看到了這本書,講的也挺不錯。
《鳥哥的Linux私房菜》
Linux入門書籍。我記得在大一下學期,有段時間本身癡迷安裝各類版本的Linux系統,到最後虛擬機上把當時各類Linux發行版都裝全了。
《編程之美》
這本書我沒有看完,但裏面的講的算法都很不錯,想對算法有提升的同窗這本書必定要看看。
《Java核心技術 卷1》,《Java核心技術 卷2》
這兩本書是在上Java課時看的,一樣不是咱們教材,在圖書館發現的。
講的很好,能夠做爲Java入門書籍。
《Java併發編程實戰》
講Java併發庫的一本書,這本書強烈推薦。本身看這本書的時間很晚,是研究生找工做時候看的。
找工做時基本都會問到書裏的知識點,看這本書能夠在找工做時給你帶來直接的價值。
《Java併發編程藝術》
一樣是講Java併發編程的。Java併發編程實戰相對來講全是乾貨,看起來可能比較晦澀。這本書可能看起來更通熟易懂些,可是沒有Java併發編程實戰全面,你們能夠搭配着讀。
《第一行代碼 Android》
Android開發入門書籍。由於我當時學Android時候這本書尚未,因此本身不是經過這本書入門的。
可是後面看過,講的不錯,能夠做爲入門書籍之一。
《Android 開發藝術探索》
這本書強烈推薦。是從Android初級向中高級進階的必看書籍,裏面講的知識點都很好。重要的是Android面試會問到不少這本書裏面的知識點,找Android開發必看。
《Android 系統源碼代碼情景分析》
從源碼分析Android系統的書。本身找工做時候反覆看了不少遍,面試時候也問到了一些知識點,找Android開發的也能夠看看。
《深刻JavaWeb技術內幕》
從Android向後臺轉型過程當中看的一本書。比較全面的介紹了Java Web知識,能夠看成入門輔助書籍。
《Spring in action 中文版》
學習Spring時候看的書,主要介紹了官方文檔的知識。講的很全面,準確度也高。
《Spring MVC學習指南》
Spring MVC入門書籍,能夠快速上手Spring MVC。
《Maven實戰》
學Java Web離不開Maven,這本是Maven入門書籍,講的很全面。
《大型網站技術架構》
找工做時看的書,主要講技術架構從小到大演變的過程。看完之後你就知道爲何一個淘寶首頁會有那麼多程序員維護了,也能讓你有理有據回懟對產品提出的「給我作一個淘寶,美團」的需求。
《大型分佈式網站架構設計與實踐》
主要介紹大型網站建設過程當中使用到的一些技術,能夠做爲技術參考書。
《大型網站系統與Java中間件開發實踐》
從中間件角度介紹大型網站的建設。
《大話設計模式》
大二上設計模式課時看的書。當時的教材晦澀枯燥,在圖書館閒逛時看到了這本書。這本書以講故事的形式逐一介紹了23種設計模式,生動形象。還有代碼示例,能夠變學邊實踐,是入門設計模式的一本好書。
《程序員修煉之道:從小工到專家》
大四時候看的書,能夠學習書裏提到的編碼技巧。
《代碼大全》
大四時候看的書,一樣能夠提升本身的專業素質,構建專業的編碼風格。
《瘋狂的程序員》
大一時候看的一本小說。講了一個程序員大學、工做、創業、以及愛情故事經歷的勵志書籍。我在手機上看完的,看的時候熱血澎湃,讓我在大一就對程序員這個職業有了一個初步的認識。
《史蒂夫·喬布斯傳》
這本書你們應該都聽過,是我在大四時候看的。當時實體書比較貴,圖書館也沒這本書,我在網上下載了電子版,花了兩天時間趴在電腦上看完的。能夠學習一下喬布斯創新和執着的精神,蘋果有現在的成就不是偶然的,與喬布斯的作事風格有直接的關係。
《浪潮之巔》
研究生時從圖書館借的一本書。是一本互聯網發展的歷史書,看完能夠對互聯網的歷史有必定的瞭解。
《黑客與畫家》
硅谷教父寫的書。我在研一時候看到的書,能夠必定程度提升程序員的情商,財商。
這小節的標題是立地成佛。
別想太多,不是說你看完這些書就能成佛。看這些書只是讓你的計算機基礎更牢固,可是成爲高手還有很長的路要走。
上面這些書也只是我讀過的書的一小部分,還有不少書我沒有提到。要想有更高的成就只讀專業的書是不夠的,還得讀文學、歷史、經濟、商業等各方面的書。
並且光讀書也不夠,只能成爲書呆子。學很重要,實踐更重要,只有把學到的知識應用出來產生價值才能證實你確實學到了,也就是人們所說的學以至用。
因此在這裏也建議你們多讀書,讀好書。
若是你是你學生,很幸運,你有大把讀書的時間。少打點遊戲,少看點綜藝節目,少睡點懶覺,多去圖書館走走,自習室坐坐,你會擁有更精彩的人生。
若是你已經步入職場,工做再忙也要抽出點時間去多讀讀書,去昇華一下本身,只有這樣,在這個販賣焦慮的社會你纔會比別人多一份淡定與從容。
最後但願你們都能活到老,學到老,立地成佛。
好文推薦:
若是想得到更多,歡迎關注公衆號:七分熟pizza
若是想添加好友交流,關注公衆號後回覆:微信
公衆號裏我會分享更多技術以及職場方面的經驗,你們有什麼問題也能夠直接在公衆號向我提問交流。