关于面试
对于面试网上已经有很多面经了,但是我认为网上的各种面经仅仅只能作为参考,你的实际面试与之还是有一些区别的。另外如果要在网上看别人的面经的话,建议即要看别人成功的案例也要适当看看别人失败的案例。看面经没问题,不论是你要找工作还是平时学习,这都是一种比较好地检验自己水平的一种方式。但是,一定不要过分寄希望于各种面经,试着去提高自己的综合能力。
不管是社招还是校招面试,在面试之前除了包装好自己的简历之外,最重要的莫过于搞清楚技术面可能会问哪些方向的问题,一般来说下面这个思维导图大概涵盖了技术面试可能会设计的技术,但是你不需要把上面的每一个知识点都搞得很熟悉,要分清主次,对于自己不熟悉的技术不要写在简历上,对于自己简单了解的技术不要说自己熟练掌握!

(下面这部分内容摘自我的简历,大家可以根据自己的情况做一些修改和完善(掌握、熟练跟精通得看自己的具体情况))
计算机网络、数据结构、算法、操作系统等课内基础知识:掌握
Java 基础知识:掌握
JVM 虚拟机(Java内存区域、虚拟机垃圾算法、虚拟垃圾收集器、JVM内存管理):掌握
高并发、高可用、高性能系统开发:掌握
Struts2、Spring、Hibernate、Ajax、Mybatis、JQuery :掌握
SSH 整合、SSM 整合、 SOA 架构:掌握
Dubbo: 掌握
Zookeeper: 掌握
常见消息队列: 掌握
Linux:掌握
MySQL常见优化手段:掌握
Spring Boot +Spring Cloud +Docker:了解
Hadoop 生态相关技术中的 HDFS、Storm、MapReduce、Hive、Hbase :了解
Python 基础、一些常见第三方库比如OpenCV、wxpy、wordcloud、matplotlib:熟悉
如果有项目的话,技术面试第一步,面试官一般都是让你自己介绍一下你的项目。项目这一块是重中之重,你可以通过参考一下这4个方面。
对项目整体设计的一个感受(面试官可能会让你画系统的架构图)
在这个项目中你负责了什么、做了什么、担任了什么角色
从这个项目中你学会了那些东西,使用到了那些技术,学会了那些新技术的使用
另外项目描述中,最好可以体现自己的综合素质,
面试之前该如何学习?如何系统扩大自己的技术面?
明确好大概要做的事情与方向接下来不外乎就是要刷题,跟复习一些知识面了。那么面试中可能涉及哪些知识点、哪些知识点是重点。面试前该怎么去准备一个技术面,中间该做一个怎样的知识储备?该怎么去学习?是不是感觉有点迷?不要急互联网雷锋(小编我)特意为大家收罗到一份Java全栈进阶宝典(Java基础、网络、Linux、数据结构与算法、数据库、系统设计等方面的知识)需要的朋友只需要点赞文章,
点我获取
面试前该系统的复习一下哪方面的知识?
首先第一步我们肯定是要从 Java 基础来学习的
Java基础

第二步如果你想进入大厂的话,我推荐你在学习完 Java基础之后,就开始每天抽出一点时间来学习算法和数据结构。为了提高自己的编程能力,你也可以坚持刷 Leetcode。就目前国内外的大厂面试来说,刷Leetcode 可以说已经成了不得不走的一条路。
数据结构与算法

计算机网络与操作系统这一块面试的时候不会太深究,但是如果你想要往架构方面发展那么这些底层知识肯定是不能放开的!
操作系统

计算机网络

现在都是前后端分离,但是前端的知识还是要知道一点。(HTML、CSS、JavaScript),当然 BootStrap、Layui 等等比较简单的前端框架你也可以了解一下。网上有很多这方面资源。
然后就可以进入数据库的学习了,MySQl这个被广泛运用于各大网站的数据库。不光要学会如何写 sql 语句,更好的是还要搞清诸如索引这类重要的概念。
MySQL

在进入深度学习之前一些常用的工具与框架是必须要会应用的
常用工具

常用框架

多线程
多线程这部分内容可能会比较难以理解和上手,前期可以先简单地了解一下基础,到了后面有精力和能力后再回来仔细看。

到了这一步继续深入学习的话,我们要了解Netty、JVM这些东西。
JVM

Netty

分布式与微服务(这方面的内容太多了选择性学习)
相关技术:
网关:kong,soul;
分布式调用链: SkyWalking、 Zipkin
日志系统: Kibana
.....
Spring Cloud相关:
Eureka:服务注册与发现;
Ribbon:负载均衡;
Hytrix :熔断;
Zuul:网关;
.Spring Cloud Config:配置中心;
另外Spring Cloud Alibaba也是很值得学习的:



这份Java全栈进阶宝典由两份文档组成。分别是524页跟283页,涵盖Java所有的知识点,无论你是面试还是作为进阶学习辅助,都是会有很大的帮助!
写在最后
不管是刚入门的小白,还是有一定基础的程序员,在学习上一定要学会分配自己时间,要学的东西很多,真的很多,搞清楚哪些东西是重点,哪些东西仅仅了解就够了。一定不要把精力都花在了学各种框架上,算法和数据结构真的很重要。扯开这个不说,俗话说不想进大厂的程序员不是好程序员,虽然我也曾自黑35岁之后就转行送外卖去了,但所做的一些事一直是往着架构师方面发展的。作为一名程序员,如果不想学习,不想增进自己的技术,那你一定会被后浪拍死在沙滩上,那么你还不如趁早改行,或许摆地摊的收入远比你现在的收入高。如果有需要进阶以及面试复盘的朋友那么这份文档一定能帮到你!需要的朋友只需要点赞文章,关注我之后添加小助理即可获取
网友评论