前言
从接触编程就开始使用 Git 进行代码管理,先是自己玩 Github,又在工作中使用 Gitlab,虽然使用时间挺长,可是也只进行一些常用操作,如推拉代码、提交、合并等,更复杂的操作没有使用过,看过的教程也逐渐淡忘了,有些对不起 Linus 大神。
出来混总是要还的,前些天就遇到了 Git 里一种十分糟心的场景,并为之前没有深入理解 Git 命令付出了一下午时间的代价。
先介绍一下这种场景,我们一个项目从 N 版本升到 A 版本时引入了另一项目的 jar 包,又陆续发布了 B、C 版本,但在 C 版本后忽然发现了 A 版本引入的 jar 包有极大的性能问题,B、C 版本都是基于 A 版本发布的,要修复 jar 包性能问题,等 jar 包再发版还得几天,可此时线上又有紧急的 Bug 要修,于是就陷入了进退两难的境地。
最后决定先将代码回退到 A 版本之前,再基于旧版本修复 Bug,也就开始了五个小时的受苦之路。
如何才可以进大厂?
答案其实也很简单,能力+学历。不知道大家有没有发现,大厂的一些部门对于学历要求已经放低了,阿里的一些部门同样也招大专学历的程序员,当然肯定也是因为他的能力足够出色。
对于准备秋招的你来说,如果你想进大厂还得从以下三点着手:
- 基础
- 提高
- 深入
一、基础:
- 《Java核心技术》这本书里面的重点章节,你肯定需要掌握;
- 熟练掌握Java常用技术:IO、多线程、反射、常用集合框架等;
- 对于数据结构要有一定的了解,如hash冲突解决办法,常用排序算法的应用场景和空间/时间复杂度等;
- 对于数据库也要比较熟悉,比如数据库三大范式,熟练常用SQL语句等等;
- Java网络编程的知识也可以掌握一点。
二、提高:
- 学习后端框架,SpringMVC/Struts2、Mybatis、Spring,熟悉MVC模式,知道三层架构及每一层之间的关系;
- 学习设计模式,23种设计模式都需要了解一点;
- 可以适当的看一些源码,Spring的源码着重的看一下;
- 学会设计数据库,对SQL调优有一定的了解,会写复杂的SQL语句,存储过程和触发器。熟悉索引的使用,了解视图等等;
- 会基本的Linux命令,可以在Linux下写脚本开发。
三、深入
- 算法,大厂面试必问;
- 熟练掌握JVM和并发编程,特别重要;
- 源码分析,最好能够分析一种框架源码,比如Spring;
- 深入数据库,理解至少两种数据库引擎的差异性,熟悉索引的内部数据结构,熟悉常见的索引方式和索引类型,会使用explain分析SQL语句,会优化SQL语句熟悉一种NOSQL,知道内部实现原理,掌握分布式数据库的知识,分表,分库,分区,分布式事务等;
- 架构设计,看看大型高流量/高并发的网站设计,了解缓存(分布式memcached/常用本地缓存),搜索引擎,分布式(负载均衡/分布式数据库/分布式应用集群),消息队列在大型网站中的作用;
- 了解一些RPC框架,分布式服务架构。
同时可以多写一些博客,能参加一些开源项目,多去看一些视频教程和大牛的博客,对你都会有很大帮助!上面的资料也是一手非常优质的学习资料,不管你是校招还是社招都能从中学到不少知识
最后
文章中涉及到的知识点我都已经整理成了资料,录制了视频供大家下载学习,诚意满满,希望可以帮助在这个行业发展的朋友,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上,所以我把这些资料,分享出来。相信对于已经工作和遇到技术瓶颈的朋友们,在这份资料中一定都有你需要的内容。
找资料,把有限的时间,真正花在学习上,所以我把这些资料,分享出来。相信对于已经工作和遇到技术瓶颈的朋友们,在这份资料中一定都有你需要的内容。**
需要更多Java资料的小伙伴可以帮忙点赞+关注,点击传送门,即可免费领取!