[TOC]
大家好,我是子涵先生,我也曾就职于一家传统的IT公司,一干就是六年。我从一个技术萌新,逐渐成为公司的技术骨干。
虽然平时自己也会记一些笔记,但是一直都感觉没能体系化的认识开发。直到第六年,我下定决心,花了一年的时间重塑了自己的知识体系,从此真正爱上了真正的编程。期间的每个周末,每个挤在地铁的早上,每个挑灯夜读的晚上,我犹如一个贪婪的婴儿,疯狂的吮吸着代码这美妙的乳汁。终于,在不断的学习、实践中,我不仅仅获得了更加稳固的知识体系、思维方式,更令我欣喜的是,我总结出了一套适合自己的学习方法论。顺着这个方法论去学习,我更加能把握知识的重点,且能够更加全面的构建自己的知识树。
> 如果你能看到这篇文章,我想这可能对你对知识体系的建立会有一个深刻的认识。这也是多年IT工作以来堪称的最大收获。
## 为什么要构建知识体系?
### IT知识体系的特点
- 技术更新快;
- 技术栈众多,对开发的架构思维要求也越来越高;
- 职业生涯面临天花板越来越近。
IT知识的变化实在太快了,子涵先生拿2014年的面试笔记和2020年的面试笔记对比了一下,那一刻,终于“穿越”的味道了。
### 高效记忆的根本是“联系”
不成体系的知识是松散的,人高效记忆的根本是“联系”。
你可了解过各种世界记忆大师,他们的高效记忆方法中用到了很多联想、关联的方法,把复杂、没有关系的内容进行了联想并进行了关联,从而简化了记忆的内容本身。
### 体系化的认识让我们更有谱
不知庐山真面目,人的内心是虚的,你甚至不知道下一次你会遇到怎样的困难,当然也就不知道自己的弱项是什么。因此,针对学习一个技术栈的时候,最好先找到这个技术栈的“目录”,先学着去了解它的结构。正如周阳老师经常会提到的方法论:是什么、能干嘛、怎么用。
## 作为一个IT人我们该怎样有效的学习?
互联网技术的发展瞬息万变,一不注意,便会被时代遗忘。作为IT人,一个具体的知识固然重要,但面对庞大的知识体系,我认为IT人必须要有一套自己的学习方法论。好比磨刀不误砍柴工,有了好的学习方法,更能让我们在快速变化的环境中,如鱼得水。接下来,我将分享一下我个人的学习方法,仅供大家参考。
### 用思维导图构建知识树
思维导图本身具有很强的结构性质,而且层次分明;分类是认知构建的基础。在这里我比较推荐百度脑图。百度脑图的优势是:
- 在线,可以随时随地查看、修改;
- 编辑时,节点可以直接拖动调整;
- 创建文件数不受限;
- 截图后直接粘贴可以自动上传;
- 多个脑图文件之间通过`Ctrl+x`、`Ctrl+v`可以很方便的调整;
> 点我查看[子涵先生的知识图谱示例](http://naotu.baidu.com/file/95c8a3a2e53dbd23a89d8ef66b3d190f?token=0d257929076e39aa)。
![](https://img-blog.csdnimg.cn/img_convert/b9f9e20ef449ec85617d01043b6e38d4.png)
>脑图示例只是让大家了解,知识组织的一个方式。后续子涵先生还会整理、分享更多的脑图出来。感兴趣的同学,请让我知道哈~
![](https://img-blog.csdnimg.cn/img_convert/e4500f4dcaf1fc9d14ff82f0f0cfc6c0.png)
### IT人的高效学习方法
- 视频教程可以帮我们快速构建对技术栈的认识;
- 用思维导图构建\维护自己的知识树、资料树;
- 随时记笔记,逐渐整理、形成专题文档;
- 主次分明。遇到问题,不着急把它解决,先把问题记下来,有时间的时候再进行各个突破;
- 拥抱开源,学习他人的代码。
## 拥抱开源
日常工作中我们接触的优秀代码可能有限,但如今开源项目在互联网上多如牛毛,Apache、阿里、Google等软件基金会或互联网大佬们,都有很多优质的开源产品。这些开源产品都是互联网大佬们的精心沉淀的,容纳了多少互联网人的智慧和汗水。另外,github、gitee上有无数开源工作者、培训讲师案例在默默贡献着他们的汗水。
> ✨拥抱开源,是个人拓展眼界、技术成长的绝佳手段~
比如,如果你想学习springcloud的企业级微服务框架,微服务入门看视频千百遍,不如看一个文档齐全的项目源码更高效。
接下来,我向大家推荐几个我在去年看过的开源项目。在此仅做简单介绍,不作展开,我从中学到了很多。
- dolphinscheduler。是一个Apache下分布式易扩展的可视化DAG工作流任务调度系统。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。一看就是大佬的编程风范。
- jeecg。国内顶尖的低代码平台,设计思想非常优秀,且框架优雅。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200724185322310.PNG#pic_center#pic_center)
- 简介
- 更新说明
- 其他作品
- 第一部分 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