[TOC]
大家好,我是子涵先生,我也曾就職于一家傳統的IT公司,一干就是六年。我從一個技術萌新,逐漸成為公司的技術骨干。
? 雖然平時自己也會記一些筆記,但是一直都感覺沒能體系化的認識開發。直到第六年,我下定決心,花了一年的時間重塑了自己的知識體系,從此真正愛上了真正的編程。期間的每個周末,每個擠在地鐵的早上,每個挑燈夜讀的晚上,我猶如一個貪婪的嬰兒,瘋狂的吮吸著代碼這美妙的乳汁。終于,在不斷的學習、實踐中,我不僅僅獲得了更加穩固的知識體系、思維方式,更令我欣喜的是,我總結出了一套適合自己的學習方法論。順著這個方法論去學習,我更加能把握知識的重點,且能夠更加全面的構建自己的知識樹。
> 如果你能看到這篇文章,我想這可能對你對知識體系的建立會有一個深刻的認識。這也是多年IT工作以來堪稱的最大收獲。
## 為什么要構建知識體系?
### IT知識體系的特點
- 技術更新快;
- 技術棧眾多,對開發的架構思維要求也越來越高;
- 職業生涯面臨天花板越來越近。
IT知識的變化實在太快了,子涵先生拿2014年的面試筆記和2020年的面試筆記對比了一下,那一刻,終于“穿越”的味道了。
### 高效記憶的根本是“聯系”
? 不成體系的知識是松散的,人高效記憶的根本是“聯系”。
? 你可了解過各種世界記憶大師,他們的高效記憶方法中用到了很多聯想、關聯的方法,把復雜、沒有關系的內容進行了聯想并進行了關聯,從而簡化了記憶的內容本身。
### 體系化的認識讓我們更有譜
? 不知廬山真面目,人的內心是虛的,你甚至不知道下一次你會遇到怎樣的困難,當然也就不知道自己的弱項是什么。因此,針對學習一個技術棧的時候,最好先找到這個技術棧的“目錄”,先學著去了解它的結構。正如周陽老師經常會提到的方法論:是什么、能干嘛、怎么用。
## 作為一個IT人我們該怎樣有效的學習?
? 互聯網技術的發展瞬息萬變,一不注意,便會被時代遺忘。作為IT人,一個具體的知識固然重要,但面對龐大的知識體系,我認為IT人必須要有一套自己的學習方法論。好比磨刀不誤砍柴工,有了好的學習方法,更能讓我們在快速變化的環境中,如魚得水。接下來,我將分享一下我個人的學習方法,僅供大家參考。
### 用思維導圖構建知識樹
? 思維導圖本身具有很強的結構性質,而且層次分明;分類是認知構建的基礎。在這里我比較推薦百度腦圖。百度腦圖的優勢是:
- 在線,可以隨時隨地查看、修改;
- 編輯時,節點可以直接拖動調整;
- 創建文件數不受限;
- 截圖后直接粘貼可以自動上傳;
- 多個腦圖文件之間通過`Ctrl+x`、`Ctrl+v`可以很方便的調整;
> 點我查看[子涵先生的知識圖譜示例](http://naotu.baidu.com/file/95c8a3a2e53dbd23a89d8ef66b3d190f?token=0d257929076e39aa)。

>腦圖示例只是讓大家了解,知識組織的一個方式。后續子涵先生還會整理、分享更多的腦圖出來。感興趣的同學,請讓我知道哈~

### IT人的高效學習方法
- 視頻教程可以幫我們快速構建對技術棧的認識;
- 用思維導圖構建\維護自己的知識樹、資料樹;
- 隨時記筆記,逐漸整理、形成專題文檔;
- 主次分明。遇到問題,不著急把它解決,先把問題記下來,有時間的時候再進行各個突破;
- 擁抱開源,學習他人的代碼。
## 擁抱開源
日常工作中我們接觸的優秀代碼可能有限,但如今開源項目在互聯網上多如牛毛,Apache、阿里、Google等軟件基金會或互聯網大佬們,都有很多優質的開源產品。這些開源產品都是互聯網大佬們的精心沉淀的,容納了多少互聯網人的智慧和汗水。另外,github、gitee上有無數開源工作者、培訓講師案例在默默貢獻著他們的汗水。
> ?擁抱開源,是個人拓展眼界、技術成長的絕佳手段~
比如,如果你想學習springcloud的企業級微服務框架,微服務入門看視頻千百遍,不如看一個文檔齊全的項目源碼更高效。
接下來,我向大家推薦幾個我在去年看過的開源項目。在此僅做簡單介紹,不作展開,我從中學到了很多。
- dolphinscheduler。是一個Apache下分布式易擴展的可視化DAG工作流任務調度系統。致力于解決數據處理流程中錯綜復雜的依賴關系,使調度系統在數據處理流程中開箱即用。一看就是大佬的編程風范。
- jeecg。國內頂尖的低代碼平臺,設計思想非常優秀,且框架優雅。

- 簡介
- 更新說明
- 其他作品
- 第一部分 Java框架基礎
- 第一章 Java基礎
- 多線程實戰
- 嘗試一下Guava帶返回值的多線程處理類ListenableFuture
- LocalDate和Date有什么區別
- JAVA8接口增強實踐
- 第二章 Spring框架基礎
- MVC究竟是個啥?
- @ApiImplicitParam
- 七種方式,教你在SpringBoot初始化時搞點事情!
- Spring事務狀態
- maven
- Mybatis小總結
- mybatis-plus的使用
- 第三章 SpringSecurity實戰
- 基于SpringSecurity+jwt的用戶認證
- spring-security-oauth2
- 第四章 數據庫
- mysql
- mysql授權
- mysql數據庫三個關鍵性能指標--TPS\QPS\IOPS
- 梳理一下那些年Mysql的弱語法可能會踩的坑
- 關于Mysql的“字符串”數值的轉換和使用
- 憑這一文咱把事務講透
- Mysql性能優化
- 查詢性能優化
- 不常用的一些語法
- elasticsearch
- elasticsearch文檔操作
- 索引的基本操作
- java操作ElaticSearch
- elasticsearch中的各種查詢
- DB與ES混合應用可能存在的問題及解決方案探索
- 使用es必須要知道的一些知識點:索引篇
- Es中的日期操作
- MongoDB
- 入門篇(了解非關系型數據庫 NoSQL - MongoDB)
- 集群分片 (高級篇)
- 互聯網大廠的建表規范
- 第五章 中間件
- nginx
- nginx動靜分離配置,這個雷你踩過嗎?
- Canal
- Sharding-jdbc
- 水平分庫實踐
- kafka
- 第六章 版本管理
- git
- Not currently on any branch 情況提交版本
- 第七章 IO編程
- 第八章 JVM實戰調優
- jvisualvm
- jstat
- 第二部分 高級項目實戰篇
- 第一章 微信開發實戰
- 第二章 文件處理
- 使用EasyExcel處理導入導出
- 第三章 踩坑指南
- 郵件發送功能
- 第三部分 架構實戰篇
- 第一章 架構實戰原則
- 接口防止重復調用的一種方案
- 第二章 高并發緩存一致性管理辦法
- 第三章 異地多活場景下的數據同步之道
- 第四章 用戶體系
- 集成登錄
- auth-sso的管理
- 第五章 分庫分表場景
- 第六章 秒殺與高并發
- 秒殺場景
- 第七章 業務中臺
- 中臺的使用效果是怎樣的?
- 通用黑白名單方案
- 第八章 領域驅動設計
- 第十一章 微服務實戰
- Nacos多環境管理之道
- logback日志雙寫問題及Springboot項目正確的啟動方式
- 第四部分 優雅的代碼
- java中的鏈式編程
- 面向對象
- 開發原則
- Stream操作案例分享
- 注重性能的代碼
- 第五部分 談談成長
- 新手入門指北
- 不可不知的調試技巧
- 構建自己的知識體系
- 我是如何做筆記的
- 有效的提問
- 謹防思維定勢
- 學會與上級溝通
- 想清楚再去做
- 碎片化學習
- 第六部分 思維導圖(付費)
- 技術基礎篇
- 技術框架篇
- 數據存儲篇
- 項目實戰篇
- 第七部分 吾愛開源
- 7-1 麻雀聊天
- 項目啟動
- 前端登錄無請求問題解決
- websocket測試
- 7-2 ocp微服務框架
- evm框架集成
- 項目構建與集成
- zentao-center
- 二次開發:初始框架的搭建
- 二次開發:增加細分菜單、權限到應用
- 7-3 書棧網
- 項目啟動
- 源碼分析
- 我的書架
- 文章發布機制
- IM
- 第八章 團隊管理篇
- 大廠是怎么運作的
- 第九章 碼山有道
- 簡歷內推
- 聯系我內推
- 第十章 學點前端
- Vue