深入理解计算机系统、现代操作系统、C程序设计语言、C语言数据结构和算法、Unix环境高级编程、TCP/IP网络通信详解。 学习一下面向对象方面知识,PHP这方面的书不太多,建议看Java面向对象编程、Java编程思想、J2EE这些书。
编程语言
- 学习PHP
- 深入理解PHP内核
- 完成简单的扩展开发
- 达到高级水平
- 学习Java
- IntelliJ IDEA 快捷键使用
- maven pom.xml的使用
- spring 注解的使用
- mybatis mapper.xml的使用
- dubbo rpc框架使用
- tomcat原理了解
- 常用数据结构了解
- 达到中级水平
- 学习Go
- 学习beego框架
- 了解docker原理
系统学习
- MySQL (重点)
- 索引与性能优化
- InnoDB引擎
- riplication原理
- 基础配置与调优
- binlog格式了解
- Redis (重点)
- 底层数据结构实现
- 持久化
- 集群配置
- Nginx (重点)
- 网络模型
- 负载均衡
- 基础配置
- Linux性能监控和常见问题排查命令(重点)
- 进程 线程 网络 (重点)
- RabbitMQ
- 组成
- direct fanout topic headers场景
- 持久化
- 与kafka的比较
- ElasticSearch
- 集群配置
- 与solr比较
- Java客户端使用
- HBase
- 使用场景
- ZooKeeper
- 实现原理
- 选举算法
项目
- 检索系统 基于ElasticSearch实现的搜索 done
- 图片系统 实时切图和分布式存储 done
- 简易API网关 实现权限校验与限流
- 一个PHP扩展 done
- 个人博客 done
2018重点
- 主动学习很重要,官方文档很重要,实践很重要
- 巩固Java基础,尤其是线程,并发,jvm等,能熟练使用常用排查工具分析定位线上问题
- 了解tomcat应用服务器
- 了解dubbo框架
- Linux性能排查,能根据CPU,IO,内存等指标排查问题
- MySQL性能优化,巩固索引,连接数,缓冲池,死锁等基础知识
- 深入理解进程,线程,协程
- 提升文档能力
- 英语水平提升
- Redis源码阅读
- 调整心态,明白个体差异,不制定过高的目标
- 学习Go语言 https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/preface.md
2018详细计划
- 1月份
- 学习Spring框架设计理念,以学习《深入分析Java Web技术内幕》中相关章节为主,做到能描绘组成结构图,熟练掌握几大核心组件的功能
- 学习Java多线程,主要通过网上学习,并实际编码验证,能阐明多线程编程的优缺点,几种创建线程方式的异同以及多线程编程的注意事项
- 2月份
- 重新学习常见数据结构与算法,并能熟练写出伪代码,排序算法,子串查找,最长回文子串查找等,主要通过leetcode巩固练习
- 学习TCP/IP协议,HTTP协议,了解网络传输的基本原理,数据报文格式,长链接与短链接的区别以及应用场景
- 了解常见序列化协议的优缺点与使用场景
- 3月份
- 新工作
- 了解SpringBoot,搭建项目
- 熟悉Shiro工作机制
- 4月份
- 熟悉netty,源码级了解,读《Netty权威指南》
- 5月份
- 熟悉JVM,读《深入理解Java虚拟机》
- 6月份
- 深入研究CAT监控系统
- 7月份
- ZooKeeper
- 8月份
- JPA Druid Kafka
- 9月份
- Netty
- 10月份
- Java并发编程
- 11月份
- Tomcat架构
- 12月份
- 配置中心
- Guava源码