1. 程式人生 > >學習 JAVA,有什麽書籍推薦?學習的方法和過程是怎樣的?

學習 JAVA,有什麽書籍推薦?學習的方法和過程是怎樣的?

概率 多點 不知道 數據結構和算法 強烈 查找 更多 左右 函數式編程

原創:一只有夢想的魚

原文鏈接:https://www.cnblogs.com/zhanlaoshi/p/10845765.html

本文內容比較長,主要包含下面幾部分內容:

學習路線以及方法推薦

書單推薦

教程推薦

推薦一個學習中常看的倉庫

學習/編程好習慣

面試必知

打開UC瀏覽器 查看更多精彩圖片

學習路線以及方法推薦
對於學習路線的話,我說一條我比較推薦的,我相信照著這條學習路線來你的學習效率會非常高。下面提到的書籍以及相關學習視頻都答主已經整理好,文末有免費獲取方式。很多朋友這幾天領取了我整理的學習資源之後都私信感謝我,我個人還是挺高興的,說句心裏話,這些資源都是自己花了很長時間整理的。

掌握 Java 基礎知識(可以看《Java 核心技術卷1》或者《Head First Java》這兩本書在我看來都是入門Java的很不錯的書籍),當然你也可以邊看視頻邊看書學習(推薦黑馬或者尚矽谷的視頻)。記得多總結!打好基礎!把自己重要的東西都記錄下來。

掌握多線程的簡單實用(推薦《Java並發編程之美》或者《實戰Java高並發程序設計》)。

(可選)如果你想進入大廠的話,我推薦你在學習完Java基礎或者多線程之後,就開始每天抽出一點時間來學習算法和數據結構。為了提高自己的編程能力,你也可以堅持刷Leetcode。

學習前端基礎(HTML、CSS、JavaScript),當然BootStrap、VUE等等前端框架你也可以了解一下。

學習MySQL 的基本使用,基本的增刪改查,SQL命令,索引、存儲過程這些都學一下吧!

學習Struts2(可不用學)、Spring、SpringMVC、Hibernate、Mybatis 等框架的使用,(可選)熟悉 Spring 原理(大廠面試必備),然後很有必要學習一下SpringBoot。我也遇到很多公司對於應屆生直接上手SpringBoot,不過我還是推薦你把Spring、SpringMVC好好學一下。

學習Linux的基本使用(常見命令、基本概念)

學習Dubbo、Zookeeper、常見的消息隊列(比如ActiveMq、RabbitMQ)的使用.

(可選),如果想去大廠,JVM 的一些知識也是必學的(Java內存區域、虛擬機垃圾算法、虛擬垃圾收集器、JVM內存管理)推薦《深入理解Java虛擬機:JVM高級特性與最佳實踐(最新第二版》,如果嫌看書麻煩的話,你也可以看我整理的文檔,在下面有鏈接。

我上面主要概括一下每一步要學習的內容,對學習規劃有一個建議。知道要學什麽之後,如何去學呢?我覺得學習每個知識點可以考慮這樣去入手:官網(大概率是英文,不推薦初學者看)、書籍(知識更加系統完全,推薦)、視頻(比較容易理解,推薦,特別是初學的時候)、網上博客(解決某一知識點的問題的時候可以看看)。

這裏給各位一個建議,看視頻的過程中最好跟著一起練,要做筆記!!!最好可以邊看視頻邊找一本書籍看,看視頻沒弄懂的知識點一定要盡快解決,如何解決?首先百度/Google,通過搜索引擎解決不了的話就找身邊的朋友或者認識的一些人。

書單推薦
Java
基礎
《Head First Java》(推薦,豆瓣評分 8.7,1.0K+人評價): 可以說是我的 Java 啟蒙書籍了,特別適合新手讀當然也適合我們用來溫故 Java 知識點。

《Java 核心技術卷 1+卷 2》(推薦): 很棒的兩本書,建議有點 Java 基礎之後再讀,介紹的還是比較深入的,非常推薦。這兩本書我一般也會用來鞏固知識點,是兩本適合放在自己身邊的好書。

《JAVA 網絡編程 第 4 版》: 可以系統的學習一下網絡的一些概念以及網絡編程在 Java 中的使用。

《Java 編程思想 (第 4 版)》(推薦,豆瓣評分 9.1,3.2K+人評價):這本書要常讀,初學者可以快速概覽,中等程序員可以深入看看 java,老鳥還可以用之回顧 java 的體系。這本書之所以厲害,因為它在無形中整合了設計模式,這本書之所以難讀,也恰恰在於他對設計模式的整合是無形的。

並發
《Java 並發編程之美》 (推薦):2018 年 10 月出版的一本書,個人感覺非常不錯,對每個知識點的講解都很棒。

《Java 並發編程的藝術》(推薦,豆瓣評分 7.2,0.2K+人評價): 這本書不是很適合作為 Java 並發入門書籍,需要具備一定的 JVM 基礎。我感覺有些東西講的還是挺深入的,推薦閱讀。

《實戰 Java 高並發程序設計》(推薦,豆瓣評分 8.3): 書的質量沒的說,推薦大家好好看一下。

《Java 高並發編程詳解》(豆瓣評分 7.6): 2018 年 6 月出版的一本書,內容很詳細,但可能又有點過於啰嗦,不過這只是我的感覺。

JVM
《深入理解 Java 虛擬機(第 2 版)周誌明》(推薦,豆瓣評分 8.9,1.0K+人評價):建議多刷幾遍,書中的所有知識點可以通過 JAVA 運行時區域和 JAVA 的內存模型與線程兩個大模塊羅列完全。

《實戰 JAVA 虛擬機》(推薦,豆瓣評分 8.0,1.0K+人評價):作為入門的了解 Java 虛擬機的知識還是不錯的。

Java8 新特性
《Java 8 實戰》 (推薦,豆瓣評分 9.2 ):面向 Java 8 的技能升級,包括 Lambdas、流和函數式編程特性。實戰系列的一貫風格讓自己快速上手應用起來。Java 8 支持的 Lambda 是精簡表達在語法上提供的支持。Java 8 提供了 Stream,學習和使用可以建立流式編程的認知。

《Java 8 編程參考官方教程》 (推薦,豆瓣評分 9.2):也還不錯吧。

代碼優化
《重構_改善既有代碼的設計》(推薦):豆瓣 9.1 分,重構書籍的開山鼻祖。

《Effective java 》(推薦,豆瓣評分 9.0,1.4K+人評價):本書介紹了在 Java 編程中 78 條極具實用價值的經驗規則,這些經驗規則涵蓋了大多數開發人員每天所面臨的問題的解決方案。通過對 Java 平臺設計專家所使用的技術的全面描述,揭示了應該做什麽,不應該做什麽才能產生清晰、健壯和高效的代碼。本書中的每條規則都以簡短、獨立的小文章形式出現,並通過例子代碼加以進一步說明。本書內容全面,結構清晰,講解詳細。可作為技術人員的參考用書。

《代碼整潔之道》(推薦,豆瓣評分 9.1):雖然是用 Java 語言作為例子,全篇都是在闡述 Java 面向對象的思想,但是其中大部分內容其它語言也能應用到。

阿裏巴巴 Java 開發手冊(詳盡版)https://github.com/alibaba/p3c/blob/master/阿裏巴巴 Java 開發手冊(詳盡版).pdf

Google Java 編程風格指南:http://www.hawstein.com/posts/google-java-style.html

網絡
《圖解 HTTP》(推薦,豆瓣評分 8.1 , 1.6K+人評價): 講漫畫一樣的講 HTTP,很有意思,不會覺得枯燥,大概也涵蓋也 HTTP 常見的知識點。因為篇幅問題,內容可能不太全面。不過,如果不是專門做網絡方向研究的小夥伴想研究 HTTP 相關知識的話,讀這本書的話應該來說就差不多了。

《HTTP 權威指南》 (推薦,豆瓣評分 8.6):如果要全面了解 HTTP 非此書不可!

操作系統
《鳥哥的 Linux 私房菜》(推薦,,豆瓣評分 9.1,0.3K+人評價):本書是最具知名度的 Linux 入門書《鳥哥的 Linux 私房菜基礎學習篇》的最新版,全面而詳細地介紹了 Linux 操作系統。全書分為 5 個部分:第一部分著重說明 Linux 的起源及功能,如何規劃和安裝 Linux 主機;第二部分介紹 Linux 的文件系統、文件、目錄與磁盤的管理;第三部分介紹文字模式接口 shell 和管理系統的好幫手 shell 腳本,另外還介紹了文字編輯器 vi 和 vim 的使用方法;第四部分介紹了對於系統安全非常重要的 Linux 賬號的管理,以及主機系統與程序的管理,如查看進程、任務分配和作業管理;第五部分介紹了系統管理員 (root) 的管理事項,如了解系統運行狀況、系統服務,針對登錄文件進行解析,對系統進行備份以及核心的管理等。

數據結構與算法
《大話數據結構》(推薦,豆瓣評分 7.9 , 1K+人評價):入門類型的書籍,讀起來比較淺顯易懂,適合沒有數據結構基礎或者說數據結構沒學好的小夥伴用來入門數據結構。

《數據結構與算法分析:C 語言描述》(推薦,豆瓣評分 8.9,1.6K+人評價):本書是《Data Structures and Algorithm Analysis in C》一書第 2 版的簡體中譯本。原書曾被評為 20 世紀頂尖的 30 部計算機著作之一,作者 Mark Allen Weiss 在數據結構和算法分析方面卓有建樹,他的數據結構和算法分析的著作尤其暢銷,並受到廣泛好評.已被世界 500 余所大學用作教材。

《算法圖解》(推薦,豆瓣評分 8.4,0.6K+人評價):入門類型的書籍,讀起來比較淺顯易懂,適合沒有算法基礎或者說算法沒學好的小夥伴用來入門。示例豐富,圖文並茂,以讓人容易理解的方式闡釋了算法.讀起來比較快,內容不枯燥!

《算法 第四版》(推薦,豆瓣評分 9.3,0.4K+人評價):Java 語言描述,算法領域經典的參考書,全面介紹了關於算法和數據結構的必備知識,並特別針對排序、搜索、圖處理和字符串處理進行了論述。書的內容非常多,可以說是 Java 程序員的必備書籍之一了。

數據庫
《高性能 MySQL》(推薦,豆瓣評分 9.3,0.4K+人評價):mysql 領域的經典之作,擁有廣泛的影響力。不但適合數據庫管理員(dba)閱讀,也適合開發人員參考學習。不管是數據庫新手還是專家,相信都能從本書有所收獲。

《Redis 實戰》:如果你想了解 Redis 的一些概念性知識的話,這本書真的非常不錯。

《Redis 設計與實現》(推薦,豆瓣評分 8.5,0.5K+人評價):也還行吧!

《MySQL 技術內幕-InnoDB 存儲引擎》(推薦,豆瓣評分 8.7):了解 InnoDB 存儲引擎底層原理必備的一本書,比較深入。

系統設計
設計模式
設計模式 : 可復用面向對象軟件的基礎(推薦,豆瓣評分 9.1):設計模式的經典!

Head First 設計模式(中文版) (推薦,豆瓣評分 9.2):相當贊的一本設計模式入門書籍。用實際的編程案例講解算法設計中會遇到的各種問題和需求變更(對的,連需求變更都考慮到了!),並以此逐步推導出良好的設計模式解決辦法。

常用框架
《深入分析 Java Web 技術內幕》: 感覺還行,涉及的東西也蠻多。

《Netty 實戰》(推薦,豆瓣評分 7.8,92 人評價):內容很細,如果想學 Netty 的話,推薦閱讀這本書!

《從 Paxos 到 Zookeeper》(推薦,豆瓣評分 7.8,0.3K 人評價):簡要介紹幾種典型的分布式一致性協議,以及解決分布式一致性問題的思路,其中重點講解了 Paxos 和 ZAB 協議。同時,本書深入介紹了分布式一致性問題的工業解決方案——ZooKeeper,並著重向讀者展示這一分布式協調框架的使用方法、內部實現及運維技巧,旨在幫助讀者全面了解 ZooKeeper,並更好地使用和運維 ZooKeeper。

《Spring 實戰(第 4 版)》(推薦,豆瓣評分 8.3,0.3K+人評價):不建議當做入門書籍讀,入門的話可以找點國人的書或者視頻看。這本定位就相當於是關於 Spring 的新華字典,只有一些基本概念的介紹和示例,涵蓋了 Spring 的各個方面,但都不夠深入。就像作者在最後一頁寫的那樣:“學習 Spring,這才剛剛開始”。

《RabbitMQ 實戰指南》:《RabbitMQ 實戰指南》從消息中間件的概念和 RabbitMQ 的歷史切入,主要闡述 RabbitMQ 的安裝、使用、配置、管理、運維、原理、擴展等方面的細節。如果你想淺嘗 RabbitMQ 的使用,這本書是你最好的選擇;如果你想深入 RabbitMQ 的原理,這本書也是你最好的選擇;總之,如果你想玩轉 RabbitMQ,這本書一定是最值得看的書之一

《Spring Cloud 微服務實戰》:從時下流行的微服務架構概念出發,詳細介紹了 Spring Cloud 針對微服務架構中幾大核心要素的解決方案和基礎組件。對於各個組件的介紹,《Spring Cloud 微服務實戰》主要以示例與源碼結合的方式來幫助讀者更好地理解這些組件的使用方法以及運行原理。同時,在介紹的過程中,還包含了作者在實踐中所遇到的一些問題和解決思路,可供讀者在實踐中作為參考。

《第一本 Docker 書》:Docker 入門書籍!

網站架構
《大型網站技術架構:核心原理與案例分析+李智慧》(推薦):這本書我讀過,基本不需要你有什麽基礎啊~讀起來特別輕松,但是卻可以學到很多東西,非常推薦了。

《億級流量網站架構核心技術》(推薦):一書總結並梳理了億級流量網站高可用和高並發原則,通過實例詳細介紹了如何落地這些原則。本書分為四部分:概述、高可用原則、高並發原則、案例實戰。從負載均衡、限流、降級、隔離、超時與重試、回滾機制、壓測與預案、緩存、池化、異步化、擴容、隊列等多方面詳細介紹了億級流量網站的架構核心技術,讓讀者看後能快速運用到實踐項目中。

軟件底層
《深入剖析 Tomcat》(推薦,豆瓣評分 8.4,0.2K+人評價):本書深入剖析 Tomcat 4 和 Tomcat 5 中的每個組件,並揭示其內部工作原理。通過學習本書,你將可以自行開發 Tomcat 組件,或者擴展已有的組件。 讀完這本書,基本可以擺脫背誦面試題的尷尬。

《深入理解 Nginx(第 2 版)》:作者講的非常細致,註釋都寫的都很工整,對於 Nginx 的開發人員非常有幫助。優點是細致,缺點是過於細致,到處都是代碼片段,缺少一些抽象。

其他
《***與畫家》:這本書是矽谷創業之父,Y Combinator 創始人 Paul Graham 的文集。之所以叫這個名字,是因為作者認為***(並非負面的那個意思)與畫家有著極大的相似性,他們都是在創造,而不是完成某個任務。

推薦的教程
筆主自己開源的一個Java學習與面試項目,目前已經幾個月是JavaTrending榜第一名了,目前已經有 33k+ star,我自己有點不那麽實至名歸,我也只是靠平時業余時間來維護,大家可以看一下,因該對大家學習Java有一點沒有幫助。

這個倉庫裏面有常見知識點總結(目前還在繼續完善中)、常見面試題、備戰面試系列文章以及BATJ真實面經等內容。

對於 Java 初學者來說: 本文檔傾向於給你提供一個比較詳細的學習路徑,讓你對於Java整體的知識體系有一個初步認識。另外,本文的一些文章 也是你學習和復習 Java 知識不錯的實踐;

對於非 Java 初學者來說: 本文檔更適合回顧知識,準備面試,搞清面試應該把重心放在那些問題上。要搞清楚這個道理:提前知道那些面試常見,不是為了背下來應付面試,而是為了讓你可以更有針對的學習重點。

入門學習Java的過程當中缺乏系統的學習教程可以加我的Java學習交流裙:494801931,獲取,裙文件還有學習手冊,面試題,開發工具和PDF文檔書籍,可以自行下載。

推薦一個學習過程中看的倉庫
筆主自己開源的一個Java學習與面試項目,目前已經幾個月是JavaTrending榜第一名了,目前已經有 29k+ star,我自己有點不那麽實至名歸,我也只是靠平時業余時間來維護,大家可以看一下,因該對大家學習Java有一點沒有幫助。

這個倉庫裏面有常見知識點總結(目前還在繼續完善中)、常見面試題、備戰面試系列文章以及BATJ真實面經等內容。

對於 Java 初學者來說: 本文檔傾向於給你提供一個比較詳細的學習路徑,讓你對於Java整體的知識體系有一個初步認識。另外,本文的一些文章 也是你學習和復習 Java 知識不錯的實踐;

對於非 Java 初學者來說: 本文檔更適合回顧知識,準備面試,搞清面試應該把重心放在那些問題上。要搞清楚這個道理:提前知道那些面試常見,不是為了背下來應付面試,而是為了讓你可以更有針對的學習重點。

點擊這裏在線閱讀:http://snailclimb.top/JavaGuide/

學習/編程好習慣
養成一個學習習慣和編程習慣真的太重要了,一個好習慣的養成真的對後面的學習有很大幫助。說實話我自己當初在這方面吃了不少虧,很多比較好的習慣我也是後面自己才慢慢發現,所以這裏想著重給大家說一下有哪些好的學習和編程習慣。

正確提問
如何提問

我們平時任何時候都離不開提問特別是初學的時候,但是真正知道如何正確的提問的人很少。問別人問題前不要來一句“在嗎”,你說你問了在嗎我是回復好還是不回復好呢 ?不要讓別人給你發 32 位的JDK,除非你是喜歡那個人。

更多關於如何提問的內容,詳見 github 上開源版『提問的智慧』 https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md,抽時間看一下,我想看完之後應該會有很多收獲。

健康生活
我一直覺得這一方面是最重要的,我想很多人和我一樣會無意識間忽略它,等到真的身體不舒服了,你才開始意識到健康生活的重要性。

除非萬不得已,不要熬夜了。熬夜的危害就不用多說了,禿頭加內分泌失調,你懂得!

看電腦45分鐘之後,起來走5分鐘,看看遠方放松一下。不要覺得這5分鐘浪費時間,相反,這5分鐘可能為你帶來更大的效率提升。

可以考慮買一個電腦架子,保護好自己脊椎的同時,辦公體驗也會提升很多。

可以下載一個護眼寶,感覺可以護眼模式挺棒的,非常適合我們這種需要經常盯著電腦的人使用,強烈安利。

高效搜索
盡量用 google 查找技術資料以及自己在學習中遇到的一些問題。

解決 bug
程序遇到問題先在 stackoverflow 找找,大部分別人已經遇到過了。如果上面沒有的話,再考慮其他解決辦法。實在解決不了的話,再去問你覺得有能力幫你解決的人(註意描述好自己的問題,不要隨便截一個Bug 圖)。

善於總結
學習完任何一門知識後,你可能當時看視頻感覺老師講的挺容易懂的。但是,過幾天後你發現你忘的一幹二凈,別人問你一個類似的問題,你一點思路都沒有。所以,我推薦你學完一門知識後不光要及時復習,還要做好總結,讓知識形成一個體系。另外,你可以假想自己要給別人講這個知識點,你能不能把這個知識點講清楚呢?如果不能,說明你對這個知識點還沒有徹底了解。這也就是人們經常說的費曼學習技巧。

總結的方式:

有道雲筆記、OneNote......這類專門用來記錄筆記的軟件上;

思維導圖;

通過寫博客輸出。可以考慮自己搭建一個博客(hexo+GithubPages非常簡單),你也可以在簡書、掘金......等等技術交流社區寫博客。Markdown 格式參考:https://github.com/sparanoid/chinese-copywriting-guidelines 中文文案排版指北:https://github.com/sparanoid/chinese-copywriting-guidelines

多用 Github
沒事多去Github轉轉,如果有能力可以參與到一些開源項目中。多看看別人開源的優秀項目,看看別人的代碼和設計思路,看的多了,你的編程思想也會慢慢得到提升。除了這些優秀的開源項目之外,Github上面還有很多不錯的開源文檔、開源資料什麽的,我覺得對我們平時學習都挺有幫助。Github用得好還能裝一下,畢竟人家還是一個全英文網站,咳咳咳。

實踐
多去實踐,將學到的東西運用到實際項目中去。很多人都找我抱怨過沒有實際項目讓自己去做,怎麽能有項目經驗呢?如果實在沒有實際項目讓你去做,我覺得你可以通過下面幾種方式:

在網上找一個符合自己能力與找工作需求的實戰項目視頻或者博客跟著老師一起做。做的過程中,你要有自己的思考,不要淺嘗輒止,對於很多知識點,別人的講解可能只是滿足項目就夠了,你自己想多點知識的話,對於重要的知識點就要自己學會去往深出學。

Github或者碼雲上面有很多實戰類別項目,你可以選擇一個來研究,為了讓自己對這個項目更加理解,在理解原有代碼的基礎上,你可以對原有項目進行改進或者增加功能。

自己動手去做一個自己想完成的東西,遇到不會的東西就臨時去學,現學現賣。

註意代碼規範
從學習編程的第一天起就要養成不錯的編碼習慣,包、類、方法的命名這些是最基本的。

推薦閱讀:

阿裏巴巴Java開發手冊(詳盡版)https://github.com/alibaba/p3c/blob/master/阿裏巴巴Java開發手冊(詳盡版).pdf

Google Java編程風格指南:http://www.hawstein.com/posts/google-java-style.html

Effective Java第三版中文版: https://legacy.gitbook.com/book/jiapengcai/effective-java

溝通能力
程序員也離不開溝通。你可能需要與客戶交流需求,還要和同事交流項目問題,還有可能定期需要向領導匯報項目進展情況。所以,我覺得不錯的溝通能力也是一個優秀的程序員應該有的基本素質。

面試必知
如何獲取大廠面試機會?
在講如何獲取大廠面試機會之前,先來給大家科普/對比一下兩個校招非常常見的概念——春招和秋招。

招聘人數 :秋招多於春招 ;

招聘時間 : 秋招一般7月左右開始,大概一直持續到10月底。但是大廠(如BAT)都會早開始早結束,所以一定要把握好時間。春招最佳時間為3月,次佳時間為4月,進入5月基本就不會再有春招了(金三銀四)。

應聘難度 :秋招略大於春招;

招聘公司: 秋招數量多,而春招數量較少,一般為秋招的補充。

綜上,一般來說,秋招的含金量明顯是高於春招的。

下面我就說一下我自己知道的一些方法,不過應該也涵蓋了大部分獲取面試機會的方法。

關註大廠官網,隨時投遞簡歷(走流程的網申);

線下參加宣講會,直接投遞簡歷(相比於線上投遞成功的幾率會高很多!);

找到師兄師姐/認識的人,幫忙內推(能夠讓你避開網申簡歷篩選,筆試篩選,還是挺不錯的,不過也還是需要你的簡歷夠棒);

博客發文被看中/Github優秀開源項目作者,大廠內部人員邀請你面試;

求職類網站投遞簡歷(不是太推薦,適合海投)。

面試的時候應該穿什麽?
穿西裝、打領帶、小皮鞋?NO!NO!NO!這是互聯網公司面試又不是去走紅毯,所以你只需要穿的簡單大方就好,不需要太正式。

面試前有哪些需要註意的地方?
提前準備好自我介紹;

隨身帶上自己的成績單和簡歷(有的公司在面試前都會讓你交一份成績單和簡歷當做面試中的參考);

如果需要筆試就提前刷一些筆試題;

花時間做一些邏輯題和智力題(面試中發現有些公司都有邏輯題或者智力題測試環節,並且都把邏輯提或者智力題成績作為很重要的一個參考);

準備好自己的項目介紹;

面試之前做好定向復習(所謂定向復習就是專門針對你要面試的公司來復習。比如你在面試之前可以在網上找找有沒有你要面試的公司的面經);

怎麽自我介紹比較好?
從HR面、技術面到高管面/部門主管面,面試官一般會讓你先自我介紹一下,所以好好準備自己的自我介紹真的非常重要。網上一般建議的是準備好兩份自我介紹:一份對hr說的,主要講能突出自己的經歷,會的編程技術一語帶過;另一份對技術面試官說的,主要講自己會的技術細節,項目經驗,經歷那些就一語帶過。

我這裏簡單分享一下我自己的自我介紹的一個簡單的模板吧:

面試官,您好!我叫某某。大學時間我主要利用課外時間學習某某。在校期間參與過一個某某系統的開發,另外,自己學習過程中也寫過很多系統比如某某系統。在學習之余,我比較喜歡通過博客整理分享自己所學知識。我現在是某某社區的認證作者,寫過某某很不錯的文章。另外,我獲得過某某獎,我的Github上開源的某個項目已經有多少Star了。
如何介紹自己的項目?
如果有項目的話,技術面試第一步,面試官一般都是讓你自己介紹一下你的項目。你可以從下面幾個方向來考慮:

對項目整體設計的一個感受(面試官可能會讓你畫系統的架構圖)

在這個項目中你負責了什麽、做了什麽、擔任了什麽角色

從這個項目中你學會了那些東西,使用到了那些技術,學會了那些新技術的使用

另外項目描述中,最好可以體現自己的綜合素質,比如你是如何協調項目組成員協同開發的或者在遇到某一個棘手的問題的時候你是如何解決的又或者說你在這個項目用了什麽技術實現了什麽功能比如:用redis做緩存提高訪問速度和並發量、使用消息隊列削峰和降流等等。

如果面試官問"你有什麽問題問我嗎?"時,你該如何回答
如果面試官問"你有什麽問題問我嗎?"時,你該如何回答

幾乎每一場面試,特別是HR面和高管面的時候,面試官總是會在結尾問我:“問了你這麽多問題了,你有什麽問題問我嗎?”。不管是技術面試還是非技術面試,如果你想贏得公司的青睞和尊重,我覺得我們都應該重視這個問題。

網上提供了很多問題模板,我覺得回答這個問題重要要的就是:真誠一點,不要問太 Low 的問題。

面試官問你的優點是什麽,應該如何回答?
回答這樣的問題,最好能夠結合你要應聘的職位來做針對性回答。一般面試官問這個問題的時候,很可能會只讓你說幾個你覺得最能體現你能力的優點,為了避免自己在面試過程中不知道該說自己的那些優點,你可以在面試之前好好準備一下。 面試的時候最好可以說幾個你要應聘的職位所做的事情需要的優點或者說你要應聘的公司比較看重的優點(企業文化)。

面試官問你的缺點是什麽,應該如何回答?
缺點肯定不能是目標崗位需要的關鍵能力!!!

總之,記住一點,面試官問你這個問題的話,你可以說一些不影響你這個職位工作需要的一些缺點。比如你面試後端工程師,面試官問你的缺點是什麽的話,你可以這樣說:自己比較內向,平時不太愛與人交流,但是考慮到以後可能要和客戶溝通,自己正在努力改。

如何寫出更優秀的代碼
Java
使用 IntelliJ IDEA 作為您的集成開發環境 (IDE)

使用 JDK 8 或更高版本

使用 Maven/Gradle

使用 Lombok

編寫單元測試

重構:常見,但也很慢

註意代碼規範

定期聯絡客戶,以獲取他們的反饋

學習 JAVA,有什麽書籍推薦?學習的方法和過程是怎樣的?