如何才可以进大厂?
答案其实也很简单,能力+学历。不知道大家有没有发现,大厂的一些部门对于学历要求已经放低了,阿里的一些部门同样也招大专学历的程序员,当然肯定也是因为他的能力足够出色。
对于准备秋招的你来说,如果你想进大厂还得从以下三点着手:
- 基础
- 提高
- 深入
一、基础:
- 《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框架,分布式服务架构。
同时可以多写一些博客,能参加一些开源项目,多去看一些视频教程和大牛的博客,对你都会有很大帮助!上面的资料也是一手非常优质的学习资料,不管你是校招还是社招都能从中学到不少知识
最后
为什么我不完全主张自学?
①平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。
②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。
如果说你认为你的目标十分明确,能做到第②点所说的几个点,以目前的市场来看,你才真正的适合去自学。
除此之外,对于绝大部分人来说,报班一定是最好的一种快速成长的方式。但是有个问题,现在市场上的培训机构质量参差不齐,如果你没有找准一个好的培训班,完全是浪费精力,时间以及金钱,这个需要自己去甄别选择。
我个人建议线上比线下的性价比更高,线下培训价格基本上没2W是下不来的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
…(img-TL9Owl5J-1627638956143)]
[外链图片转存中…(img-js2RAGdz-1627638956144)]