之前在美团工作过差不多3年,本文来自美团wiki
================================
基础(项目必备)
扎实 掌握 了解
知识点 | 要求 | 学习方法/相关连接/书籍推荐 | 进阶 | |
开发工具 | IDE 扎实 |
| Intellij IDEA 使用教程 | |
Git 扎实 |
|
| ||
Maven 扎实 |
| Maven教程 | maven in action | |
CS基础 | 操作系统/ Linux 掌握 |
| ||
网络 掌握 |
| |||
数据库 扎实 |
| 高性能MySQL | ||
Java相关
| Java基础(要扎实) 扎实 | 基本语法:继承、异常、引用、泛型等 | Effective java 中文版(第2版) | |
类库:集合、序列化等 | Jdk源码:
| |||
IO(网络IO、文件IO)、NIO 掌握 | 《Java网路编程》 Java Network Programming | Netty/Mina/grizzly | ||
多线程、并发 | Java并发实践(Java Concurrency in Practice) | |||
| 深入Java虚拟机(Inside the Java Virtual Machine) | |||
Java安全 | Java Security | |||
反射、动态代理、jmx、jms | ||||
Java Web 掌握 |
|
|
| |
第三方类库 掌握 |
|
| ||
系统部署 了解 |
| |||
工程素质
掌握 | api接口设计 | Restful/MVC | RESTful Web Services | |
编码 | OO; 业务建模:如何把产品需求转换成合理的软件模型 | |||
开发规范 |
| |||
安全规范 | 遵循关于XSS、CSRF、SQL注入等常见安全问题的相关规范 | |||
测试 |
|
| ||
SOA架构 | RPC 了解 |
| ||
缓存 掌握 |
| |||
消息队列 了解 |
|
| ||
配置工具ZK 了解 |
| |||
搜索引擎 了解 | lucene solr Elasticsearch | Elasticsearch权威指南 |
成为一个系统/服务/模块的owner
-
技术基础:理解计算机工作原理;算法/数据结构;各种应用技术:Java、Mysql等;有专攻、有覆盖;
-
沟通:态度、理解、表达
-
工程能力:
| 内容 |
实现 | 理解原始需求;判断可行性、代价; 业务建模:完整、准确的把产品需求转换成合理的软件模型 系统设计、快速实现 自身管理:多分支开发、进度控制、代码/资源/对外输出文档管理 |
质量 | 功能:
性能:
健壮性
功能的可维护、可扩展
|
运维 | 监控/报警/排查、解决问题
注重降低运维成本:对等节点配置一致;发布部署方式统一 一些琐事:机器申请、磁盘日志清理、自动重启等 |
其他/进阶
|
| 书籍推荐/相关连接 |
思维、个人管理 | 合理的方法,提升你的效率 | |
计算机基础 | 计算机如何工作的基本概念 |
|
算法/数据结构基础 | 算法时间复杂度、空间复杂度的基本认知 熟悉常用数据结构:链表、队列、散列表、树等; 递归、分治、动态规划等基本思想;常用算法应用:排序、查找、比较等 | 算法导论 |
其他语言 | python node.js erlang scala go | |
软件工程/软件配置管理 | git=代码版本、jenkins=集成工具、发布工具、wiki=文档平台、jira=任务/问题跟踪 scrum=敏捷开发过程 | |
架构设计 | ||
安全 | ||
搜索、推荐 | 核心问题是排序 (待续) | 《信息检索导论》、lucene源码 |
GIS | ||
SOA | soa很多方法论、理念太过于抽象,关于在于把service坐实、落地 |
|
虚拟化/云计算 |
| |
大数据 |
| |
运维 | puppet 机房、网络架设 | |
android | ||
iOS | ||
html5/JS | ||
数据挖掘 | ||
数据存储 | flume、hdfs、hive、hbase;etl | |
技术新闻 |