之前在美团工作过差不多3年,本文来自美团wiki
================================
基础(项目必备)
成为一个系统/服务/模块的owner
其他/进阶
基础(项目必备)
扎实 掌握 了解
知识点要求学习方法/相关连接/书籍推荐进阶开发工具
IDE
扎实
熟练使用IDEA进行开发;
熟练使用快捷键;
会本地和远程Debug
Intellij IDEA 使用教程Git
扎实
理解git的分布式
理解git的暂存区、对象
熟练使用push、fetch、rebase、reset等命令
会使用一种Git可视化工具:SourceTree、GitUp、ToriseGit等
Git教程
Git权威指南
Maven
扎实
熟练配置及使用;
理解Maven依赖机制,会解决jar冲突问题;
掌握mvn clean、compile、test、install、depoly等命令
Maven教程maven in actionCS基础操作系统/
Linux
掌握
对Linux/OS的基本认知:中断/异常、地址空间、系统调用、进程调度、文件系统等
Linux系统管理:文件、权限、vim使用、shell脚本、启动流程、crtontab、syslog等
常用命令:less、grep、cut、sed等;top、netstat、tcpdump、vmstat、iostat等
更多对Linux使用、原理的掌握,多多益善
Linux入门基础
每天一个Linux命令
鸟哥的linux私房菜
深入理解Linux内核
UNIX环境高级编程
深入理解计算机系统
网络
掌握
TCP/IP基础:IP、子网、路由、TCP
HTTP、HTTPS等协议的基本原理
熟练掌握cookie、session原理及跨域等问题的由来及处理方法;
了解前端页面加载过程及常用网络优化技术;
会使用常用抓包工具 charles等;
熟练使用点评、美团APP抓包及Mock工具:Spider使用 mock工具使用说明
TCP/IP详解(卷一)
HTTP权威指南
TCP/IP详解(卷二)
TCP/IP详解(卷三)
数据库
扎实
了解Mysql;
基本操作:sql、数据导出/入、备份/恢复;
掌握常用的mysql存储引擎及索引方式;
会查看sql执行计划,掌握常用sql调优方法;
功能基本原理:复制、文件、日志、事务、锁;
至少了解一种NoSql的原理及使用(mongo). 掌握
MySQL技术内幕:SQL编程
数据模型资源手册(卷1)(修订版)
高性能MySQLJava相关
Java基础(要扎实)
扎实
基本语法:继承、异常、引用、泛型等JAVA核心技术(卷1)
Java编程思想
Effective java 中文版(第2版) 类库:集合、序列化等Jdk源码:
String、 Integer、Long 、Enum、BigDecimal
ArrayList、java.util.LinkedList、
HashMap、LinkedHashMap、TreeMap、ConcurrentHashMap
HashSet、LinkedHashSet、TreeSet
AtomicInteger、ThreadLocal
IO(网络IO、文件IO)、NIO 掌握
《Java网路编程》 Java Network Programming Netty/Mina/grizzly 多线程、并发 Java并发实践(Java Concurrency in Practice)JVM: class code、反射、ClassLoader、GC;
常用java监控命令:jstack、jmap、jstat等;
常用java启动参数:gc相关;常用环境变量;
深入理解Java虚拟机
JVM内存管理与调优
深入Java虚拟机(Inside the Java Virtual Machine) Java安全 Java Security 反射、动态代理、jmx、jms
Java Web
掌握
Servlet/JSP
Struts2/Spring MVC
Spring
MyBatis
MyBatis-Spring
Jetty
UnitTest
JDBCMybatisC3p0
HttpClient
Servlet规范原文
Spring官方文档
MyBatis 官方文档
MyBatis-Spring 官方文档
spring in action
Spring技术内幕:深入解析Spring架构与设计原理;
struts2技术内幕;
源码
第三方类库
掌握
apach commons.*
fastjson、hcdbbt、gson
guava
源码;
Guava Wiki
系统部署
了解
负载均衡:F5、SLB、LVS、Nginx
反向代理:Nginx、Tengine
Web容器:Tomcat、Jetty
容灾:数据库冷/热备、异地多活、服务降级
工程素质
掌握
api接口设计Restful/MVCRESTful Web Services 编码OO; 业务建模:如何把产品需求转换成合理的软件模型大话设计模式
Head First设计模式
Effective java 中文版(第2版)
重构:改善既有代码的设计
实现模式 Implementation Patterns
开发规范编码规范
数据库规范
日志规范
美团(Java)编码规范-初版_v1
DP JAVA代码开发规范_v0
google java编码风格
数据库开发规范
Log4j问题及使用
安全规范遵循关于XSS、CSRF、SQL注入等常见安全问题的相关规范常见网站攻击方式和防御
XSS反射攻击原理及规避修复措施
XSS:http://yw.dp/docs/view/143
测试一些基本概念:黑盒/白盒、冒烟、回归、单元测试、集成测试、性能测试
测试工作在项目中的实践:单元测试(JUnit、JMockit)、集成测试(测试环境+checklist?)
Junit,http://junit.org/
Jmockit,https://code.google.com/p/jmockit/
djUnit,http://works.dgic.co.jp/djunit/
SOA架构RPC
了解
了解rpc框架的基本原理及使用;
了解rpc框架的核心模块:服务注册与发现、序列化、网络通信、服务治理等
服务框架 Pigeon
MTthrift 设计实现
缓存
掌握
了解本地缓存ehcache与guava cache的区别;
了解本地缓存与分布式缓存的区别及使用场景;
了解分布式缓存memcache与redis的区别;
了解Redis基本原理及常用操作
消息队列
了解
activemq、rabbitmq、kafka、zeromq
swallow、mafka
官网
源码
配置工具ZK
了解
理解分布式的一致性问题
paxos算法
zk使用
zk实现原理,多多益善
搜索引擎
了解
lucene
solr
Elasticsearch
Elasticsearch权威指南
成为一个系统/服务/模块的owner
技术基础:理解计算机工作原理;算法/数据结构;各种应用技术:Java、Mysql等;有专攻、有覆盖;
沟通:态度、理解、表达
工程能力:
内容
实现理解原始需求;判断可行性、代价;
业务建模:完整、准确的把产品需求转换成合理的软件模型
系统设计、快速实现
自身管理:多分支开发、进度控制、代码/资源/对外输出文档管理
质量功能:
单元测试
集成测试:checklist
性能:
单点响应时间
容量可扩展
健壮性
外部依赖容错,常见问题:连接池(连接数、超时等)
程序回滚、数据恢复能力
功能的可维护、可扩展
设计文档
高质量的代码、注释
合理的设计
运维监控/报警/排查、解决问题
监控、展示各种业务、技术数据;关键数据一定要有报警机制
注重日志,查问题的关键
监控数据、日志、使用各种命令/工具在线检查状态,这3点基本就能发现绝大部分问题原因
注重降低运维成本:对等节点配置一致;发布部署方式统一
一些琐事:机器申请、磁盘日志清理、自动重启等
其他/进阶
书籍推荐/相关连接
思维、个人管理合理的方法,提升你的效率学会提问
金字塔原理
用图表说话
番茄工作法图解
高效能人士的七个习惯
提问的智慧
Get things done (无压工作的艺术)
思考-快与慢
计算机基础计算机如何工作的基本概念深入理解计算机系统(Computer Systems A Programmer's Perspective)
Unix环境高级编程(Advanced Programming in the Unix Environment)
算法/数据结构基础算法时间复杂度、空间复杂度的基本认知
熟悉常用数据结构:链表、队列、散列表、树等;
递归、分治、动态规划等基本思想;常用算法应用:排序、查找、比较等
算法导论 其他语言python node.js erlang scala go 软件工程/软件配置管理git=代码版本、jenkins=集成工具、发布工具、wiki=文档平台、jira=任务/问题跟踪
scrum=敏捷开发过程
持续集成
持续交付
架构设计《恰如其分的软件架构 - 风险驱动的设计方法》
《软件系统架构:使用视点和视角与利益相关者合作 第2版》
《程序员必读之软件架构 - Software Architecture for Developers》
《大型网站技术架构:核心原理与案例分析》
《大规模分布式存储系统》
《大数据日知录》
安全信息安全
技术部内部其他和安全相关的页面
Web应用安全思维导图
搜索、推荐核心问题是排序
(待续)
《信息检索导论》、lucene源码
GIS SOAsoa很多方法论、理念太过于抽象,关于在于把service坐实、落地
wiki搜索soa
SOA知识图谱
虚拟化/云计算docker
paas saas iaas
大数据hadppo、hbase、hive
流式计算: storm、spark、samza
运维puppet
机房、网络架设
SysTeam
Linux_Performance_Monitoring.chm
鸟哥的linux私房菜–服务器架设篇
android iOS html5/JS 数据挖掘 数据存储flume、hdfs、hive、hbase;etl 技术新闻http://news.dbanotes.net/news
https://news.ycombinator.com/
stackoverflow.com
github.com
google.com