前端

  • HTML:文本标记语言,是一种标识性的语言
  • CSS:使网页更加丰富多彩灿烂的利器
  • JS:使网页动起来的根本,加强了网页和用户之间的交互
  • Ajax:异步提交,增强了用户使用网页的良好交互体验
  • Http协议、Servlet、request、response、cookie、seesion
  • JSON:比XML更小、更快、更易解析的数据传输工具
  • Vue:用于构建用户界面的渐进式JS框架
  • Node.js:一个基于Chrome V8引擎的JS运行环境

后端

网关层

  • 微服务、分布式、云原生
  • 负载均衡
  • LVS:Linux虚拟服务器
  • DNS
  • CDN:内容分发网络
  • zk:分布式服务框架,可对中间件进行管理调度
  • Nginx:高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务

服务层

  • HTTP、HTTPS、TCP协议
  • 三次握手、四次挥手、中间人攻击
  • JAVA基础:
    • 面向对象(包括类、对象、方法、继承、封装、抽象、多态、消息解析等)
    • 常见API
    • 数据结构
    • 集合框架
    • 设计模式(包括创建型、结构型、行为型)
    • 多线程和并发
    • I/O流
    • Stream
    • 网络编程
  • 服务器
    • Linux
    • 常用命令
    • Shell
  • 数据结构与算法
    • 从二叉搜索树到B+树
    • 经典问题之字符串
    • 经典问题之TOPK
    • 红黑树、二叉树、hash等
    • 贪心、分治、动态规划
    • 队列、栈、表
  • 必会框架
    • Spring:JavaWeb编程中明星级的框架,同样也是优点多功能强使编程工作更加简单,主要用于管理对象
    • Spring MVC:JavaWeb编程中明星级的框架,同样也是优点多功能强使编程工作更加简单,主要用于程序和数据库之间的交互
    • MyBatis:本是apache的一个开源项目iBatis,2010年这个项目由 apache software foundation 迁移到了google code,并改名为MyBatis
    • Spring Boot:其目的是用来简化新Spring应用的初始构建以及开发过程,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置
    • Netty:高性能NIO框架
  • 中间件
    • RPC远程调用
      • Dubbo、SpringCloud
    • 消息队列
      • RocketMQ、Kafka、RabbitMQ、ActiveMQ
  • 分布式事务
    • 两段式
    • 三段式
    • TCC
    • XA
    • 阿里云的全局事务服务GTS
    • RocketMQ自带分布式事务解决方案
  • 常用工具
    • IDEA
    • JVM问题排查工具-JMC
    • 线上调试神器-btrace
    • Git原理与工作流:是一个开源的分布式版本管理控制系统、可以有效、高速地处理从小到非常大的项目版本管理
    • Linux常用分析工具
    • Maven:项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的项目管理工具软件
    • Gradle:是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置
  • 容器化
    • Docker
    • Kubernetes(k8s)

数据层

  • 事务隔离级别
  • 索引
  • SQL
  • 主从同步
  • 读写分离
  • 分库分表-TDDL、Sharding-JDBC、DRDS
  • Redis
    • 持久化机制:RDB、AOF
    • 缓存雪崩
    • 缓存击穿
    • 缓存穿透
    • 集群模式
      • 哨兵
      • 主从
    • 内存淘汰机制
    • 位图
    • HyperLogLog
    • 布隆过滤器(Bloom Filter)

实时/离线数仓/大数据

  • 离线分析:ODPS,是阿里云基于自有的云计算技术研发一套开放数据处理服务
  • Hadoop(HDFS):是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储
  • Hive:基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制
  • HBase:是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang所撰写的Google论文”Bigtable:一个结构化数据的分布式存储系统”。
  • Cassandra:是一个高可靠的大规模分布式存储系统。支持分布式的结构化key -value存储,以高可用性为主要目标。适合写多的场景,适合做一些简单查询, 不适合用来做数据分析统计。
  • Flink:Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。
  • Spark:专为大规模数据处理而设计的快速通用的计算引擎

算法/机器学习/人工智能

  • 机器学习、深度学习、人工智能、自动驾驶等

搜索引擎

  • ElasticSearch: 是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
  • Canal:是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。
  • Kibana: 是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。
  • Lucene: 是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)
  • Logstash: 是一个具有实时管道功能的开源数据收集引擎,Logstash可以动态地将来自不同数据源的数据统一起来,并将数据规范化为你选择的目的地,清理和大众化你的所有数据,用于各种高级下游分析和可视化用例。
  • Solr: 是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。