回覆列表
  • 1 # 夢影屋

    首先說結論:來得及!

    分享一下自學的歷程,目前題主這個階段建議多練一點演算法方面的東西。

    進行階段五:演算法資料結構深入的訓練學習。

    階段一:影片學習

    主要是看黑馬和尚矽谷的培訓影片(百度搜索,官網上就可以找到)。看影片學習的最大好處就是入門很快,看一遍,再跟著敲一遍,但是缺點就是時間會花費長一些。我入門階段基本上都是看影片學習,建議是找最新的影片學習,因為培訓機構也會根據公司每年面試的側重點調整自己的教學方案。

    階段二:書籍學習

    影片學習一般都是比較基礎和偏向案例實現的的教學,如果要想系統的瞭解某一模組的知識,閱讀專業書籍是少不了的。如果有時間肯定多讀一些書好,但是最優的做法是在有限的時間內閱讀完經典書籍。拿 Java 後端來說,《Java程式設計思想》、《深入理解Java虛擬機器》,毫不誇張的說幾乎每次面試都會有很多知識點都是出自這些書中。所以,這類書籍,多讀幾遍。最好看完後,能夠寫出自己的讀書筆記。我一般是寫讀書筆記前,會看一看別人的讀書筆記,看看自己對書中的知識點是否有理解偏差或者有遺漏的地方。

    階段三:部落格學習

    這一階段是一個持續的過程,主要是寫部落格和看部落格。總感覺看了書很快就忘了,所以為了以後高效的複習,開始寫了一些部落格,當然部落格內容主要來源自書本以及一些大牛的部落格,再加上自己的理解。

    階段四:實驗室專案

    一共做過兩個校企合作專案,這兩個專案雖然很簡單,都是單點的 web 服務,但是卻給自學 Java 帶來了很大的幫助。 而且在最開始找實習的時候,這兩段專案還是起了很大的作用。個人感覺專案簡單也沒有關係,只要你把專案中涉及到的知識點都搞清楚,還是很加分的。至少把自己做的東西弄懂了。

    階段五:演算法資料結構深入

    1. 資料結構與演算法:《劍指Offer》、LeetCode Top100、常考的一些演算法:TopK、生產者消費者模式、多執行緒交替列印、HashMap 的簡單實現等等;

    2. 計算機網路:五層/七層協議、TCP 和 UDP 的區別、TCP 三次握手和四次揮手、HTTP 的特點、HTTP 與 HTTPS 的區別、HTTPS 過程等等;

    3. 計算機作業系統:程序與執行緒的區別、死鎖的概念/檢測/避免、程序間的通訊方式、記憶體管理等等;

    4. 設計模式:單例模式、工廠三兄弟、介面卡模式、代理模式、裝飾者模式等等,以及專案中和 JDK/Spring中用到過的設計模式;

    5. Java 語言基礎:過載和重寫的區別、抽象類和介面的區別、String/StringBuilder/StringBuffer 的區別、關鍵字(static、super、this、transient)、異常、IO 流、反射、動態代理、序列化等等;

    6. Java 集合類:HashMap 的 get、put、resize、JDK1.7 和 1.8、多執行緒下會發生什麼問題、HashMap 和 HashTable/ConcurrentHashMap 的區別、ArrayList 和 LinkedList 的區別等等;

    7. Java 併發程式設計:執行緒的狀態轉換、wait 和 sleep 的區別、synchronized 關鍵字、volatile 關鍵字、鎖:ReentranrLock、讀寫鎖等、執行緒池:核心引數、型別等等;

    8. Java 虛擬機器:執行時資料區、垃圾回收演算法、垃圾回收器、垃圾回收策略、JVM 監控和調優、類載入機制、Java 記憶體模型等等;

    9. MySQL:常用的 SQL 語句、索引的資料結構、型別及其最佳化、事務、鎖、儲存引擎、主從複製、分庫分表等等;

    10. Spring:AOP:代理方式、JDK 動態代理的實現;IOC:Bean 的生命週期和作用域、單例 Bean 的執行緒安全問題;事務:隔離級別、傳播特性等等;

    11. SpringMVC:核心元件、處理請求的流程等等;

    12. MyBatis:分頁方式、延遲載入、一級和二級快取等等;

    13. Linux:需要掌握基本的操作指令;

    14. Redis:基本的資料型別、使用場景、快取穿透、快取雪崩、持久化、快取和資料庫雙寫一致性問題等等;

    15. 訊息佇列:使用場景、如何保證訊息不被重複消費、如何保證可靠傳輸、如何保證順序性等等;

    16. Zookeeper:主要功能、部署模式、狀態同步、通知機制等等;

    17. 分散式:分散式框架 Dubbo :基本元件、協議、叢集容錯模式、負載均衡策略等等;分散式事務及其解決方案、分散式鎖及其解決方案。

  • 2 # 歐文看資料

    .Net

    轉Java, 肯定是沒問題.

    當然你先得清楚, 自己是否確定轉Java和為什麼轉Java.

    1. C#和Java的語法可以說是同出一門, 都是強型別, 面嚮物件語言. 兩者長期以來語言特性上, 基本就是互相抄來抄去. 儘管有些小語法的不同.

    2. IDE方面, Visual Studio在功能性和友好性上, 一直Top 1 (不太想加之一), Java的eclipse, maven, spring 上來可能會把新人搞悶. 這是我的親身體會, 帶公司新人, 特別是出身於寫寫VBA或Matlab分析師, 時時會反問我一句: "咋整個Java開發網站的環境這麼折騰.." 是的, 在他眼裡我幫他搞定開發環境, 是一系列夢幻操作. 起步上, 著實要比ASP.NET直接新建網站專案要麻煩很多.

    3. 就職機會上比較的話, Java要勝出一籌. 雖然ASP.NET無論是form模式還是MVC模式, 都簡單好用, 不過在主流市場上, 還是Java網站為主. (ASP.NET更多用在公司內部應用上, 辦公自動化, 各類小系統)

    4. 最好的學習方式還是實戰, 你可以將用.NET做過的專案, 嘗試用Java重新實現一遍. (如果你目標是透過Java認證考試, 那建議看資料和刷題, 並且在電腦上親手程式設計體驗.)

  • 中秋節和大豐收的關聯?
  • 拉鍊有哪些種類?