自己有句口头禅,最近也一直在说:最讨厌你们这帮语文好的。
实际上在学生时代的最初,我并不是一个偏科的孩子,起码没有那么偏科。但是也不知怎么的,语文 历史成了自己的心病,对于一些要背诵的东西,总是有种不可描述的排斥(如果我告诉你,我愣是在“抵御”“抵抗”这些词中纠结该用哪个好,愣是想了一分多钟才想到"排斥"这个词,你信么)。因此任何“写作文”类似的行为,是更加得不可描述得排斥。
马上要硕士毕业了,作为一个半路自学出生的准码农,最初是实习期间的导师给我提的“建议”,同时也是尤其在最近的学习过程中,愈发地感受到“自己整理,记录”这个看似耗时 吃力不讨好的行为的重要性。为了自己的长期发展,为了打好自己的基础然后能在技术的道路上越走越远,故有了这一篇《Brand New Beginning》。当然,在这里也希望自己确实能够长久地坚持下去。
作为一个开始,还是希望先给自己树立目标。尽管现在AI很火,但既然已经在Java后端的路上走了一年半有余,还是希望先做好当下。故整理了接下来三年五年内自己要深耕的Java后端技术路线,同时分享给看到这篇文章的各位。
Java基础
- 熟悉IO、多线程、网络、数据库操作、集合操作等基础技能;JVM原理(内存模型、类加载机制以及性能优化;)
- 常用设计模式;.面向对象的分析和设计技术,包括设计模式、UML建模
- java框架(理解核心思想、实现原理):Tomcat、Jboss、Nginx、Spring、MyBatis、springmvc、springboot、elasticsearch
- java8 、java9
- 协程、回调、future
- Velocity
- JSP/Servlet
- 对互联网企业里软件的研发、发布流程比较了解,熟悉Maven、Jenkins、Git等工具,了解DevOps和持续性交付等理念;
- 熟练使用前端技术:jeasyui/jquery/html5/angularjs/bootstrap
CS基础
- Linux、操作系统
- 掌握数据结构、常用算法;
- 熟悉Internet基本协议(如TCP/IP. HTTP HTTPS等)内容及相关应用;
- shell,python,javascript
- 异步同步 阻塞非阻塞
分布式
- 熟悉分布式架构、缓存、消息队列(JMS或AMQ,如activemq,rabbitmq等)等中间件技术;
- 熟悉常见的中间件、分布式解决方案及其原理:分布式缓存、SOA、消息中间件,负载均衡、连接池、RPC等;
- 分布式事务处理框架
- 熟悉常见的分布式计算平台Hadoop、MPI或Storm
数据库
- 熟悉mysql数据库的基本操作;数据库设计; sql调优;
- NOSQL数据库,缓存技术,流式计算,如Hbase、memcached、redis、mongodb等;
经验
- 编程能力、大型分布式系统研发设计经验
- 高并发、大数据建模、大数据存储、大数据分析处理
- 大型分布式、高并发、高负载、高可用性系统设计和稳定性经验优先;
- 识别业务关键需求、领域建模能力
- 至少参与开发过5个大型项目