# who_am_i
**Repository Path**: zgy1237/who_am_i
## Basic Information
- **Project Name**: who_am_i
- **Description**: 编码成长中经历的一些想法
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-18
- **Last Updated**: 2021-06-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Who am I?
# 灵魂三问
“我是谁?我从哪里来?我要到哪里去?”
针对上述问题,其实可以引申到很多领域来思考,比如说当前我自己当前作为程序员的人生思考.
__我是谁?(who_am_i?)__
作为
__我从哪里来?(Why_i_am_here?)__
__我要到哪里去?(Where_i_am_going?)__
## 阅读前闲聊几句
今天看到了一篇文章,讲述了作为一个程序员,应该如何注意自己的技术成长路线.自己想到了主要有三个方面:
1. 基础知识: 对于一个技术人员来讲,首先要了解自己领域的核心知识能力图谱,而不是将过多的经历放在新出现技术的具体实现方式,以及使用细节上面.
对于一个技术人员的核心能力来说,不是针对具体学习哪些语言,哪些框架,或者某些具体语言的细节实现,这些能力不长久. 而是另外核心原理性的东西,比如Java语言,就需要认真了解 jvm 的原理,真正动了 jvm 的原理之后,才能从底层实现的角度协助进行问题排查等.
2. 算法知识: 作为技术人员,需要对一些常见的算法比较熟悉,因此需要通过不断刷题的方式进行相关算法的熟悉.一定需要注意不断的刷题
3. 编码规范: 编码规范需要不断进行编码,养成编码习惯才可以,这个编码习惯不是看两遍才可以行程,一定要不断的有意识 **训练** 才可以
打算将编码学习过程中学习到的一些东西分模块的记录下来,主要是需求实现过程中的 [设计想法](#codingThought) 、 [Java相关技术知识](#coffee-Java) 、 [设计模式](#设计模式) 等开发技能,以及 [Redis](#Redis) 、 [Mysql](#Mysql) 、 [Nginx](#Nginx) 等中间件组件,和[Linux](#Linux) 操作系统等等相关的内容做一个系统性的个人能力树结构的总结
再看技术文档的时候,发现了一个牛人的源码解析博客,记录下来,作为未来的目标去走
[田小波-非著名程序员](http://www.tianxiaobo.com)
牛人的博客里面有非常多的源码解析文章,针对刚开始的源码解析入门,有很大的借鉴
## 目录
* [codingThought](#codingThought)
* [功能设计](#功能设计)
* [数据库设计](#数据库设计)
* [接口设计](#接口设计)
* [Java](#coffee-Java)
* [基础](#基础)
* [设计模式](#设计模式)
* [数据结构与算法](#数据结构与算法)
* [数据结构](#数据结构)
* [算法](#算法)
* [中间件技术](#中间件技术)
* [Redis](#Redis)
* [Mysql](#Mysql)
* [Nginx](#Nginx)
* [操作系统](#操作系统)
* [Linux](#Linux)
* [计算机网络与数据通信](#计算机网络与数据通信)
* [杂谈](#杂谈)
* [挑战架构](#挑战架构)
* [多活技术](#多活技术)
## codingThought
### 功能设计
### 数据库设计
### 接口设计
关于 RESTful 接口设计相关资料,发现另外有一个小伙伴的仓库中有很多不错的资料,分享一下
- [restful-api-design-references](https://github.com/aisuhua/restful-api-design-references)
下面的是自己整理了一下的相关资料
* [RESTful 接口设计规约](https://github.com/hello8817/codingThought/blob/master/codingThought/接口设计/RESTful接口设计规约.md)
## :coffee: Java
### 基础
## 设计模式
## 数据结构与算法
### 数据结构
### 算法
- bloom过滤器
缺点:有一定的误识别率,删除困难
优点:空间效率和查询时间都比一般的算法要好的多,另外如果判断出不在集合中,那么就一定不在集合中
## 前端技术
作为后端,经常与前端进行联调工作,因此也需要了解一些前端知识,这样才能更好的进行问题定位于解决
### VUE
### Cordova
### dom
## 中间件技术
- [ElasticSearch](https://github.com/hello8817/codingThought/blob/master/中间件技术/ElasticSearch.md)
### Redis
### Mysql
### Nginx
## 操作系统
### Linux
## 计算机网络与数据通信
网络相关技术与协议解析内容,也可以包括一些网络抓包工具使用说明文档等等
## 杂谈
杂谈模块主要记录一些工作中的经验与一些非技术方面的感悟随笔
- [技术成长](https://github.com/hello8817/codingThought/blob/master/杂谈/技术成长.md)
- [面试小结](https://github.com/hello8817/codingThought/blob/master/杂谈/面试小结.md)
## 挑战架构
这个模块中主要记录系统架构方面的相关内容
- [架构的演进路程](https://www.cnblogs.com/zhy-1992/p/9233789.html)
### 多活技术
* [多活技术探讨](https://github.com/hello8817/codingThought/blob/master/挑战架构/多活技术/多活技术探讨.md)
### 高可用
- [websocket与dubbo](https://github.com/hello8817/codingThought/blob/master/挑战架构/高可用/websocket与dubbo.md)
- [分布式锁](https://github.com/hello8817/codingThought/blob/master/挑战架构/高可用/分布式锁.md)
- [高可用探索](https://github.com/hello8817/codingThought/blob/master/挑战架构/高可用/高可用探索.md)
### 代码实现目录
上述目录均为探索过程中不断补充的知识体系结构,但是知识体系结构脱离代码实现,给人的印象不深刻,因此对应相关的知识体系中,如果可以进行代码实现以及模拟,是最好不过的了,列举一下自己目前想到的一些计划来进行实现
- **短期小目标**
- [ ] 多线程的代码实现
- [ ] 反射原理解析相关的代码实现
- [ ] 动态代理相关的代码实现
- [ ] 设计模式相关的代码实现
- **长期的大目标**
- [ ] 自己动手编写 Spring 框架
- [ ] 自己动手编写 Mybatis 框架
- [ ] 自己动手编写 netty 框架
- [ ] 微信小程序(技术能力体现相关)编写实现
- **技术文档沉淀**
- [ ] 维护个人公众号
## 技术路线学习目录调整
作为后端研发工程师,重新整理一下整体研发体系的知识,let's go
目前将如下内容放置在 AscendLadder 文件夹中
**初级阶段**
- [ ] **Level_01_JavaSE:** java 基础语法相关知识
- [ ] Java基础
- [ ] **Level_02_DataBase: **数据库基础知识
- [ ] 数据库基础
- [ ] **Level_03_FrameWork:** spring && springMVC 等框架知识
- [ ] 框架基础
- [ ] **Level_04_WEB:** 前端基础知识
- [ ] 前端基础
**中级阶段**
- [ ] **Level_05设计模式:** 常用设计模式相关知识
- [ ] **Level_06多线程&&高并发:** 多线程与高并发编程
- [ ] **Level_07_JVM:** Java虚拟机的核心原理以及 Java 内存回收机制
- [ ] **Level_08_网络到分布式:** 网络负载以及分布式开发知识
- [ ] **Level_09_NIO&&NETTY:** 网络编程
- [ ] **Level_10_MySQL:** 数据库调优
**高级阶段**
- [ ] **Level_11消息中间件:** 消息中间件知识,rabbitMQ,roketMQ,kafka,etc...
- [ ] **Level_12源码分析:** Spring 框架,SpringMVC 框架,Mybatis 框架,Netty 框架等源码实现原理分析
- [ ] **Level_13_亿级流量系统设计:** 互联网亿级流量项目系统设计
**Extra 技能**
- [ ] **Extra_skills:** git,svn,maven,gradle,jenkins,ansible ...
- [ ] **Extra_操作系统原理:** 底层实现原理解析
- [ ] **Extra_区块链技术:** 热门技术区块链
- [ ] **Extra_大数据:** BigData
- [ ] **Extra_AI:** 人工智能