阿里巴巴|Java程序员,除了最常用的20%技术还需掌握哪些技术才能游刃有余


阿里巴巴|Java程序员,除了最常用的20%技术还需掌握哪些技术才能游刃有余
文章图片
阿里巴巴|Java程序员,除了最常用的20%技术还需掌握哪些技术才能游刃有余
文章图片
阿里巴巴|Java程序员,除了最常用的20%技术还需掌握哪些技术才能游刃有余
文章图片

有人私信我说 , 除了要掌握的20%以外还要掌握些什么知识才能游刃有余 。 下面说说我接触(使用)过、的东西吧 。
java以分布式应用丰富的生态闻名 , 在分布式系统中逃不过CAP的抉择 。 早早了解一些分布式一致性协议paxos、raft等 。 学习zookeeper的原理和使用场景(metadata、分布式锁、leaderEletion... etc)
RPC框架在SOA架构中起着重要的作用 , 好好探究终是有好处的 , 在这里推荐阿里巴巴的dubbo框架 , 同时会netty、mina等网络库
Hadoop系列 Storm Spark 等离线\\实时计算框架
ElasticSearch\\SolrCloud 分布式搜索 ELK 日志相关的东西对这些比较敏感 , 当然在更多的场景使用ES也是有很多
消息队列 kafka\\MetaQ RabbitMQ 缓存 Redis/memcached .容器tomcat/jetty web服务器NGINX/OpenResty
然后就是各种基础知识 , 编程语言、网络方面、数据库、数据结构和算法 。 不要觉得任何一项都精通了 , 敢说精通的能有几个 。
掌握技能也就是需要时间成本和学习成本 , 要成为一个好的程序员不要怕学习 , 有学历能力需要新技术才能跟得上 , 想当年才学的时候struts2比springmvc高出一截 , 不过现在也基本没人用啦 。
Java程序员一定要学好重点的技术 , 如下面这些
并发包:理解 ConcurrentHashMap原理 , 线程池 , 异步并发 , 锁 。

集合类 , 线程类 。
http请求
json , xml读写 。
常用api 。
前端模块javascript、css , 熟悉一个前端框架 。
常用框架、常见的设计模式、面向对象 。
加薪必备知识点
【阿里巴巴|Java程序员,除了最常用的20%技术还需掌握哪些技术才能游刃有余】掌握Java编程语言 , 包含io/nio/socket/multi threads/collection/concurrency等功能的使用;

熟练掌握jvm(sun hotspot和ibm j9)内存模型、gc垃圾回收调优等技能;
精通JVMJMMMVC架构 , 熟练使用struts2 。
熟练使用spring、struts、ibatis构建应用系统 。
熟练使用Servlet , jsp , freemark等前端技术 。
熟练使用axis搭建基于SOAP协议的WebService服务接口 。
熟练使用MAVEN构建项目工程 。
熟练使用tomcat等web服务 。
熟练使用mysql等关系型数据库 , 熟悉mysql集群搭建
熟练使用redis等NOSQL技术 。
熟悉tcp、http协议 。
熟悉nginx、haproxy等配置 。
熟悉javascript、ajax等技术 。
熟悉主流分布式文件系统FastDFS等 。
熟悉JMS , 可熟练使用ActiveMQ 。
底层计算机理解内存管理/数据挖掘系统
可靠性和可用性如何理解
jsp和sever lap对比

数据库到界面 , 字符集转化
基栈
jvm优化cup高的时候如果分析和监控
java curb突出细节问题
分布式缓存文档如何分流
迁移数据库垂直分割
高并发如何处理前端高并发应用层
LB设计load balance
负载均衡
防网络攻击
数据日志事件监控后通知
数据库事务实现的底层机制