自己整理学习使用,欢迎大家补充,目前正在完善中。。。
前端
- HTML
- CSS
- js
- vue
- nodejs
后端
- 服务器
- linux
- 熟练使用Linux基本命令
- LNMP\LAMP环境搭建以及配置和调优
- 看懂服务器各项监控指标,如CPU负载、IO、内存、磁盘剩余,会利用抓包工具进行网络分析
- 熟练编写Shell脚本
- 了解Linux内核,内存管理,进程管理,文件管理,网络,磁盘存储,用户权限等
- linux
- 应用
- nginx:
- 熟悉NGINX的配置&优化。
- 熟悉NGINX的常见应用场景&各模块的应用。
- 了解NGINX的原理以及具体内部实现。
- Apache
- 熟悉Apache的配置&优化。
- PHP-fpm
- 了解php与nginx、apache之间的交互
- 熟悉常用配置项及调优
- 了解运行原理
- 消息队列
- rabbitMQ
- 熟悉RabbitMQ的概念,操作,应用场景。
- 了解RabbitMQ的架构,内部工作原理,高可用方案
- rabbitMQ
- 中间件
- kafka
- GIT
- 熟悉操作GIT命令
- 了解常用开发流程(包括敏捷开发等)
- nginx:
- 语言
- php
- 熟练PHP的语法,操作函数,扩展
- 熟练PHP的OOP思想
- 熟悉PHP的常用框架(laraval、tp、yii2、swoole等)
- 熟练使用辅助工具,提高自己的开发效率(IDE,XDEBUG,XHROF)
- 了解PHP的内核,引擎,加速,代码执行流程
- 了解PHP的新特性
- GO
- php
- 数据库
- redis
- 熟悉Redis基本操作及优化方案&应用场景。
- 熟悉Redis数据异常处理方案(雪崩,穿透,击穿,数据不一致)
- 熟悉Redis工作原理,数据结构,内存管理,淘汰策略(LRU等),中间件(Twemproxy,Codis)及集群方案
- MySQL
- 熟悉MySQL的基本操作及优化方案。
- 熟悉MySQL各模块的原理(内存管理,持久化方案,主从复制,引擎,索引结构)
- 熟悉MySQL的中间件及集群方案。
- redis
其他
- 原理
- 熟悉23中设计模式
- 熟悉常用算法,并能用php写出
- 熟悉数据结构(线性:栈,队列,链表,非线性:树,图)
- 熟悉计算机原理、通信原理
- 了解常用程序设计思想和规范(psr)
- 通信协议
- 熟悉网络四层通信原理
- 熟悉HTTP,HTTPS协议,请求头,响应头,状态码等
- 熟悉TCP/IP的三次握手&四次挥手,及相关的11种状态
- 了解Socket的原理
- 安全
- 熟悉常见的WEB攻击技术&原理&防御方案。(XSS,CSRF,SQL注入,DNS劫持,会话劫持)
- 性能&稳定
- 针对项目需求能够设计出合理的技术方案。
- 能够编写出高性能,高稳定,安全,强健壮的代码。(如异常捕获,日志记录,验证,缓存&数据库挂掉任何一方,不影响用户正常使用等)
- 快速排查&解决线上问题。(会查看Kibana上的日志,要有数据检测&修复脚本)
- 架构
- 熟悉各种负载算法,常见软件的集群,高可用,容灾方案。(LVS,HAproxy,Keepalived,F5等)
- 熟悉分布式系统设计的相关原则&原理。(CAP,BASE,2PC,3PC,Raft,锁)
- 熟悉微服务的共享配置,网关,限流,超时熔断,重试,服务拆分,发现,治理,容灾,降级,弹性缩, 扩容,监控(一致性,幂等性)
- 熟悉常见的架构思维(抽象,分层,分治,演化)
- 项目管理
- 熟悉项目管理的五大过程组&十大知识领域
- 五大过程组:启动,规划,执行,监督&控制,收尾、
- 十大知识领域:整合管理,范围管理,时间管理,成本管理,质量管理,人力资源管理,沟通管理,风险管理,采购管理,干系人管理
- 熟悉项目管理的五大过程组&十大知识领域
常用书籍或网站
- Linux命令:https://www.runoob.com/linux/linux-command-manual.html
- PHP:https://laravel-china.github.io/php-the-right-way
- PHP手册:https://www.php.net/manual/zh/index.php
- 设计原则&设计模式:https://github.com/guanguans/notes
- TCP/IP详解
- UNIX网络编程
- 操作系统
- 数据结构与算法
- Redis设计与实现
- PHP内核剖析
- 人月神话
- PHP核心技术与最佳实践
- 数据结构与算法分析:C语言描述
- Redis 深度历险:核心原理与应用实践