收藏|Java程式設計師必看的幾本基礎書籍和常用工具

JAVA全棧發表於2017-11-18

java程式設計師必看基礎書籍和工具

1計算機基礎

1、《深入理解計算機系統》

著名的CSAPP,從c語言到組合語言到硬體再到作業系統,寫得非常好.是一本能幫助深入理解計算機系統的書.基本上把這本書吃透面試作業系統的大部分問題都不是問題。

2、《演算法導論(第三版)》

被很多acmer coder奉為學演算法的經典之作,但不太適合初學者,因為它這本書很多內容只提供了虛擬碼,而沒有具體實現.但可以從這本書學資料結構和演算法最好,因為日後的程式語言對實現而言實際上並沒有特別大的障礙,只是適合與不適合的選擇罷了,而把想法轉換成程式語言才是對演算法知識的考驗.如果不想太過深入的話可以忽略掉第四部分(高階設計和分析技術)第五部分(高階資料結構)和第七部分(演算法問題選編),你會發現書其實比你想象中薄很多噢!

3、《計算機網路:自頂向下方法》

軟體學院的計算機網路教材,非常適合初學者,裡面將計算機網路從頂層到底層逐章分析了一遍,最好能夠結合一些實驗來輔助理解,裡面的講解比較抽象。

4、《STL原始碼剖析》

如果你是經常用c++刷演算法題的同學,那麼一定經常用STL的各種集合, vector, set, stack, queue等等..它們的實現原理,在原始碼面前,了無祕密。

5、《Linux命令列與shell指令碼程式設計大全》

亞馬遜書店五星推薦!裡面大概講述了很多linux系統的使用和命令列等. linux是Java後臺開發人員必知必會的作業系統,而命令列是使用linux系統必須要面對的對於不想裝linux系統的同學其實可以考慮使用騰訊雲學習一些linux相關的命令列知識(沒錯,不需要圖形介面),學生價一個月才一塊錢,跟月餅廠一個月十塊錢比起來也太划算了吧!而且用linux也蠻酷的啊。再推薦一個神器: GitHub - robbyrussell/oh-my-zsh。

6、《圖解HTTP》

日本人著的介紹HTTP協議的書,對理解HTTP協議的一些細節有非常大的幫助,插畫也很多(日本人的行文風格,感覺就像看漫畫一樣),很容易就理解了。

7、《TCP/IP詳解卷一》

這本書能把枯燥的知識講得很細緻,強烈推薦這本,看完相應章節後大概能夠明白為什麼TCP/IP要這麼設計了.面試的時候經常問到三次握手和四次揮手,還有各種狀態的轉移, TIME_WAIT的時間為什麼是2*MSL...

8、《UNIX網路程式設計卷一:套接字聯網API(第三版)》

中文版快800頁,不過我只看了一些章節,這本書也是把TCP/IP的細節講得很深很深,此外還有非常重要的基本套接字程式設計,就是寫網路程式的時候那些bind, accept, listen, send, receive函式之類的,內容非常多,但是這些是理解多路複用模型所需要掌握的...select/poll/epoll這些系統呼叫解決了什麼問題?事件機制能不能理解?就看這本書的前六章了。

9、《資料庫管理系統(原理與設計)》

這個也是web開發中離不開的東西,必須劃重點學會的是ER圖/SQL語句/儲存資料(磁碟|檔案|RAID|緩衝池等)/三大正規化/索引以及相應的資料結構/事務相關的所有概念,尤其重點學習SQL,附上學習連結 .之後學會使用mysql workbench來進行資料庫建模/逆向工程生成建表語句/根據SQL生成JAVA實體類等就不贅述了,開發過程中百度谷歌一下就知道啦,然後如果習慣在windows下開發的同學推薦利用navicat這個好東西,當然如果說想訓練自己寫sql語句的能力那純粹用命令列也無所謂...

2必備工具

1、VIM

vim編輯器相對其他編輯器來說確實難用了一些,入門的學習成本也很高,不過在linux系統中使用vim可以說是必須掌握的技能.記得我大一的時候程式設計課的TA就開始安利我們使用vim了,不過當時真的是太愚鈍,根本就學不會。

網上關於vim的教程很多,不過有的感覺太專業(比如自定義功能之類的),我個人認為只要你安裝了vim後,命令列輸入vimtutor,把那個教程過一遍基本就可以了....入門的難點主要是理解vim的三種模式:編輯/命令/檢視...理解了這個後就順風順水了。

至於自定義功能的話,交給網上的其他大牛來完成吧233333,這裡強烈推薦 GitHub - spf13/spf13-vim: The ultimate vim distribution .效果如下,比以往的效果好了太多:

2、html/css/javascript

這個是做web開發基礎中的基礎,個人感覺學習難度不大,但是建議一口氣學完並嘗試利用它們做一個簡單的個人簡歷,否則學習曲線會比較斷斷續續,不夠一氣呵成,具體教程可以參考 html/cssjavascript入門javascript進階Javascript深入淺出。

3、emmet cheat sheet

做前端的應該都知道這個玩意的了,簡單地說就是能讓開發更加方便吧,解放生產力的一個工具,至少大於號和小於號不用再按來按去了...

藉助emmet外掛只需要這麼寫:

.list-block.list-block-search.searchbar-found>ul>(li.item-content>.item-inner>.item-title{$})*6

然後按tab鍵就能生成了....

jQuery/Bootstrap/AngularJs

關於javascript,其實純粹使用原生javascript開發網站的話很麻煩,所以就萌生出了這麼一些框架: jQuery解決了瀏覽器相容性的問題(雖然據說要過時了), Bootstrap可以很無腦地開發出看起來蠻好看的網頁(其實還有很重要方面是響應式前端);而AngularJS主要是有一個很重要的思想:MVVM,隨後崛起的vue.js也如出一轍而上手更快...對於Java Web開發程式設計師而言建議剛開始有選擇性地進行學習,可能真正涉獵深了就可以隨意轉換了.

4、acm-cheet-sheet

如果你覺得看虛擬碼轉換成程式語言這樣的學習方式很吃力,這個完全可以滿足你的需求,裡面把很多常用的演算法實現了(c/c++語言),堅持臨摹(不是死記硬背,是臨摹!),是絕對能應對大多數公司的筆試程式設計題。

5、JS的原型鏈與閉包

可能利用上面框架開發的時候會遇到一些很棘手的問題不知道如何解決或理解,那麼建議先看看王福朋的部落格: 《深入理解javascript原型和閉包系列》,我覺得看完理解了以後定位js的bug應該會更容易一些。

6、SublimeText

一個對於前端開發工程師來說非常強大的編輯器,可以提供各種各樣的自動補全(必會emmet外掛語法),附上教程快樂的sublime編輯器和前端開發工具技巧介紹—Sublime篇.自從用了SublimeText,我再也不畏懼前端程式設計了...如果覺得教程看得不過癮,知乎上這幾個帖子可以讓你領略SublimeText的奇淫技巧。

7、WebStorm

Jetbrain旗下的前端IDE,我覺得相比SublimeText它更好的一點就是不需要你自己去裝外掛就已經有了很多方便的功能,上手比SublimeText快。

8、VSCODE

微軟開源的編輯器,知乎上也有比較詳細的討論.個人認為好看/高雅/好用,如果習慣SublimeText入手vscode並不難,反正我現在已經轉戰VSCODE了,就因為它可以設定背景為萌蘿莉喔,是不是蠻可愛的,感覺打程式碼更有精神了。

9、Github

將github列為基礎可以足以說明它的重要性,其實主要是理解版本控制與分支協作的概念,不過使用這個網站之前得先學git,建議剛入門github的時候可以將github當成雲倉庫(你甚至可以把東京熱的種子放在github裡哈哈哈),熟悉一些基本命令.到後面團隊作業的時候強制使用github進行協同合作,會漸漸發現和理解github的好處的。

10、Markdown

markdown也是很相見恨晚的東西,我覺得markdown類似於html,但是比html更簡單簡潔,對於喜歡做網上筆記或者個人部落格的同學而言是值得推薦的工具.半小時應該就能上手了,教程在此Markdown——入門指南...附上vscode的markdown筆記截圖(分欄看預覽效果,感覺高大上了呢),你會愛上markdown的(雖然我個人筆記整理得很亂- -等我閒下來再好好整理)

注:加群要求 學習交流群:450936584

1、想學習JAVA這一門技術, 對JAVA感興趣,想從事JAVA工作的。

2、工作0-5年,感覺自己技術不行,想提升的

3、如果沒有工作經驗,但基礎非常紮實,想提升自己技術的。

4、還有就是想一起交流學習的。

5、小號加群一律不給過,謝謝。
群內每天會分享最新的視訊和資料,可以免費領取學習視訊和資料

轉發此文章請帶上原文連結,否則將追究法律責任!

相關文章