java后端学习

java后端学习重点:
1.java语言特性: 基础知识,集合,多线程,并发,JVM,NIO,网络编程,设计模式。 (★★★★★)

jdk源码中有大量的数据结构与java语言细节。jdk源码着重看concurrent、collection、sort、nio、util。
2.计算机基础知识: 数据库(索引和锁等基础及sql优化)。网络(http协议、tcp协议)。数据结构。算法。操作系统。计算机组成原理。 (★★★★★)

计算机基础知识和java语言细节。是最最重要的。需要重点学习。五年甚至十年后都有用。

框架每隔几年就会更新换代,但是基础知识是永远有用的。

80%的时间用来学习基础知识,20%的时间学习框架。

3.Web框架。分布式架构。

必备:Spring,Mybatis,SpringMVC,Mybatis-plus,SpringBoot

常用:分布式架构。分布式理论。集群。分布式缓存Redis。SOA架构Dubbo。远程调用RPC。分布式服务协调Zookeeper。消息队列KafKa 。微服务架构SpringCloud。分布式事务。

可选:搜索引擎ElasticSearch。容器Docker。分布式数据库分库分表Mycat 。分布式Session。分布式存储。分布式锁。

边实战边理解原理。最重要的是理解原理。用过很多框架,但是不懂原理,那也是无用的。(★★★★)

比如学习Redis,就得知道Redis常用数据结构、Redis事务、备份方式、回收策略、主从同步、哨兵模式,Redis集群。

阅读spring、springMvc等框架源码、或者是其他第三方库源码。Spring源码主要是体会设计模式的运用。

4.深入理解设计模式。最重要的是理解编程思想。 (★★★)
理解Tomcat,Nginx等服务器原理,mysql事务隔离与锁机制,sql优化,数据库引擎InnoDB原理 , nosql型数据库原理等

5.其他进阶知识:linux、mongodb、nginx、netty、tomcat、sql优化 (★★★★)
6.前端基础JavaScript、html、Css、Ajax、JQuery。 (★★★)
中小型公司经常要求后端开发也要会一点前端。简单够用就行。非重点。

java后端架构师技术图谱: https://github.com/xingshaocheng/architect-awesome

书籍:
java语言:《java编程思想》、《Effective Java》、《码出高效》、《Java性能优化权威指南》、《java并发编程实战》、《深入理解Java虚拟机》

SSM:《Java EE互联网轻量级框架整合开发 SSM框架》、《精通Spring企业应用开发实战》、

设计模式:《Head First 设计模式》、《大话设计模式》

分布式理论:《大型分布式网站架构设计与实践 》、《大型网站技术架构:核心原理与案例分析》、

《大型网站系统与Java中间件实践》

分布式中间件:《从Paxos到Zookeeper 分布式一致性原理与实践》、《Redis设计与实现》、《Redis开发与运维》、《kafka实战》、《kafka权威指南》

微服务:《SpringCloud微服务实战》

网络 :《图解Http》、《HTTP权威指南》、《tcp/ip详解 卷一、二、三》、《网络是怎样连接的》、《图解Tcp/ip》

数据库:《mysql必知必会》、《MySQL技术内幕 InnoDB存储引擎》、《高性能MySQL》

操作系统:《linux鸟哥的私房菜》

计算机组成原理:《深入理解计算机系统》、

代码规范:《阿里巴巴java开发手册》、《代码整洁之道》、《重构 改善既有代码的设计 》

其他:《程序员修炼之道》、《码农翻身》、《代码大全》、《人月神话》、《黑客与画家》

学习方法:
0.每周完成一个 ARTS:每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称 ARTS)坚持至少一年。

1.项目经验!!以战养战!动手做项目!

项目驱动型学习。只有亲自动手做,才能掌握技术。没有动手做,就算看十遍也不一定会理解的。

将项目放到GitHub,坚持commit。。
2.经常进行CodeReview。通过审核,重构代码,在反馈中不断进步。
3.多读源码 ,理解技术原理。要带着疑问去读源码,不要为了读源码而读源码。

问题驱动型学习。比如当工作中或者面试时遇到问题都可以记录下来,然后带着这些问题去学习。

jdk源码中有大量的数据结构与java语言细节。jdk源码着重看concurrent、collection、sort、nio、util。

阅读spring、springMvc等框架源码、或者是其他第三方库源码。Spring源码主要是体会设计模式的运用。

也可以去GitHub下载一些优秀的项目,阅读源码。
4.多看好书,书籍的知识是系统知识,而不是碎片化知识。

边看书,边实践,再查阅相关博客,总结提高。看视频也可以。
5.csdn回答问题,收集疑问,整理并系统化知识.

6.花一个月时间解答面试题。多看牛客网。

在leetcode、codewars刷题。刷题可以分Topic刷,比如链表、栈、队列、树、排序等。刷题通过笔试才有机会进入比较好的公司。。
7.多看官方文档,官方文档的内容是最准确的。最好将官网的代码敲一遍。

网络上其他的资料大多是二手货,而且还不一定是正确的。
8.每隔几个月,查看招聘网站的 java开发/架构师 的工作要求,技术栈。

面向就业学习。如果学习的内容不是企业所需要的,那找工作会比较麻烦。
9.阅读ImportNew、InfoQ等公众号,拓展视野。
10.分清哪些是最主要的技术。抓重点。下班后分配更多的时间学习。有些技术是很容易过时的。
11.使用网站或其他产品的时候,多思考实现和原理。模仿其他知名网站的。自己写一下。
12.提高调试技巧。

13.刻意学习。

java学习路线 : https://www.cnblogs.com/expiator/p/9266957.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值