后端工程师进阶之路

之前在美团工作过差不多3年,本文来自美团wiki

================================

 

 

 

基础(项目必备)

扎实   掌握   了解

 

 知识点要求学习方法/相关连接/书籍推荐进阶
开发工具

IDE

扎实

  • 熟练使用IDEA进行开发;

  • 熟练使用快捷键;

  • 会本地和远程Debug

Intellij IDEA 使用教程 

Git

扎实

  • 理解git的分布式

  • 理解git的暂存区、对象

  • 熟练使用push、fetch、rebase、reset等命令

  • 会使用一种Git可视化工具:SourceTree、GitUp、ToriseGit等

Git教程

 

Maven

扎实

  • 熟练配置及使用;

  • 理解Maven依赖机制,会解决jar冲突问题;

  • 掌握mvn clean、compile、test、install、depoly等命令

Maven教程maven in action
CS基础

操作系统/

Linux

掌握

  • 对Linux/OS的基本认知:中断/异常、地址空间、系统调用、进程调度、文件系统等

  • Linux系统管理:文件、权限、vim使用、shell脚本、启动流程、crtontab、syslog等

  • 常用命令:less、grep、cut、sed等;top、netstat、tcpdump、vmstat、iostat等

  • 更多对Linux使用、原理的掌握,多多益善

网络

掌握

  • TCP/IP基础:IP、子网、路由、TCP

  • HTTP、HTTPS等协议的基本原理

  • 熟练掌握cookie、session原理及跨域等问题的由来及处理方法;

  • 了解前端页面加载过程及常用网络优化技术;

  • 会使用常用抓包工具 charles等;

  • 熟练使用点评、美团APP抓包及Mock工具:Spider使用  mock工具使用说明

数据库

扎实

  • 了解Mysql;

  • 基本操作:sql、数据导出/入、备份/恢复;

  • 掌握常用的mysql存储引擎及索引方式;

  • 会查看sql执行计划,掌握常用sql调优方法;

  • 功能基本原理:复制、文件、日志、事务、锁;

  • 至少了解一种NoSql的原理及使用(mongo). 掌握

高性能MySQL

Java相关

 

 

 

 

 

 

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虚拟机(Inside the Java Virtual Machine) 
 Java安全 Java Security 
反射、动态代理、jmx、jms  

 Java Web

掌握

  • Servlet/JSP

  • Struts2/Spring MVC

  • Spring

  • MyBatis

  • MyBatis-Spring

  • Jetty

  • UnitTest

  • JDBC\Mybatis\C3p0

  • HttpClient

  • Spring技术内幕:深入解析Spring架构与设计原理;

  • struts2技术内幕;

  • 源码

第三方类库

掌握

  • apach commons.*

  • fastjson、jackson、gson

  • guava

 

系统部署

了解

  • 负载均衡:F5、SLB、LVS、Nginx

  • 反向代理:Nginx、Tengine

  • Web容器:Tomcat、Jetty

  • 容灾:数据库冷/热备、异地多活、服务降级

  

工程素质

 

 掌握

api接口设计Restful/MVCRESTful Web Services 
编码OO; 业务建模:如何把产品需求转换成合理的软件模型  
开发规范
  • 编码规范

  • 数据库规范

  • 日志规范

 
安全规范遵循关于XSS、CSRF、SQL注入等常见安全问题的相关规范  
测试
  • 一些基本概念:黑盒/白盒、冒烟、回归、单元测试、集成测试、性能测试

  • 测试工作在项目中的实践:单元测试(JUnit、JMockit)、集成测试(测试环境+checklist?)

 
SOA架构

RPC

了解

  • 了解rpc框架的基本原理及使用;

  • 了解rpc框架的核心模块:服务注册与发现、序列化、网络通信、服务治理等

 
 

缓存

掌握

  • 了解本地缓存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点基本就能发现绝大部分问题原因

 

注重降低运维成本:对等节点配置一致;发布部署方式统一

一些琐事:机器申请、磁盘日志清理、自动重启等

 

 

其他/进阶

 

 

 

书籍推荐/相关连接

思维、个人管理合理的方法,提升你的效率
计算机基础计算机如何工作的基本概念
  • 深入理解计算机系统(Computer Systems A Programmer's Perspective)

  • Unix环境高级编程(Advanced Programming in the Unix Environment)

算法/数据结构基础

算法时间复杂度、空间复杂度的基本认知

熟悉常用数据结构:链表、队列、散列表、树等;

递归、分治、动态规划等基本思想;常用算法应用:排序、查找、比较等

算法导论 
其他语言python node.js erlang scala go 
软件工程/软件配置管理

git=代码版本、jenkins=集成工具、发布工具、wiki=文档平台、jira=任务/问题跟踪

scrum=敏捷开发过程

架构设计 
安全 
搜索、推荐

核心问题是排序

(待续)

《信息检索导论》、lucene源码

GIS  
SOA

soa很多方法论、理念太过于抽象,关于在于把service坐实、落地

虚拟化/云计算
  • docker

  • paas saas iaas

 
大数据
  • hadppo、hbase、hive

  • 流式计算: storm、spark、samza

 
运维

puppet

机房、网络架设

android  
iOS  
html5/JS  
数据挖掘  
数据存储flume、hdfs、hive、hbase;etl 
技术新闻 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值