赞
踩
关注上方蓝字关注我们
秋招已经过半,突然想写篇文章总结下自己的 Java 转行之路和秋招提前批、暑期实习的面试经历及个人感悟。因为要写的东西比较多,拆分成三篇:
01
个人基本情况
本科:机械制造及其自动化专业
02
学习时间轴
2017.08-2017.09:HTML5、CSS、JavaScript、JQuery
2017.10-2018.03:Java基础、Servlet、JDBC、JSP、MySQL、Spring、Struts2、Hibernate
2018.04-2018.05:数据可视化项目(SSH)
2018.06-2018.10:两网融合项目(SSH)
2018.11-2019.01:数据结构与算法、Java 集合类源码、Java 虚拟机、Java 并发编程、剑指 offer、计算机网络协议、计算机操作系统、设计模式、SpringMVC、MyBatis
2019.02-2019.04:滴滴出行实习、Maven、Git
2019.05-2019.06:刷题(左神、LeetCode)、Redis、RabbitMQ
2019.07-2019.09:拼多多实习、Dubbo、Kafka
03
暑期实习 offer
腾讯:(深圳)TEG 后端开发工程师
拼多多:(上海)后端开发工程师
华为:(杭州)CloudBU 软件开发工程师
思科:(杭州)大数据开发工程师
04
秋招 offer
百度:(上海研发中心)后端开发工程师
字节跳动:(深圳)后端开发工程师
拼多多:(上海)后端开发工程师
顺丰科技:(深圳)后端开发工程师(offer 审批中、sp 专场)
腾讯:(深圳)IEG 后端开发工程师 复试
01
专业兴趣
对机械专业缺乏兴趣爱好:本科虽然成绩排名还比较靠前,可能是因为一直觉得既然不知道自己喜欢什么,那就学好当前的专业。在本科毕设的时候接触了一些软件相关的东西,发现自己对软件相关的东西要比机械感兴趣的多,所以在研究生期间就和导师沟通参与的都是软件相关的项目。一直觉得兴趣爱好才是职业成长的最好驱动力,至少可以决定你在某个行业的深度。
02
未来学业规划
未来学业规划:研一开学就对读不读博进行了认真的思考,综合自己的性格、研究所的课题后决定不读博。因为如果读博的话,最好还是多搞一些基础研究,不要花过多的时间在软件项目上,因为都是简单的搬砖,对于博士大佬来说有点“浪费时间”。
03
薪资
机械专业的薪资和互联网行业的薪资着实差距太大,这也是很多人转行的最大动力之一吧。不过个人觉得还是兴趣为先,薪资只能作为职业选择的加分项,毕竟各行各业都有自己的优缺点。
04
就业城市
互联网城市相对来说都是在一线,北、上、广、深、杭,如果你要是没有打算留在一线城市,转行也要慎重,毕竟一线以下城市互联网公司可能比较少,发展也比较受限。
05
个人生活
每个人对生活的追求都是不一样的,有的人喜欢互联网的9、9、6,也有人喜欢国企/外企的 9、5、5。我了解到的国内大部分互联网行业的工作强度是要高于其他行业,但是也是要分公司的。有一些国企或者外企性质的互联网公司还是很舒服的,钱也不少。
01
学习历程
02
资源推荐
Java基础:《Java编程思想》、《深入理解Java虚拟机》、《Java并发编程之美》
数据库:《SQL必知必会》、《高性能MySQL》
计算机网络:《图解HTTP》、《计算机网络》
操作系统:《深入理解计算机系统》、《鸟哥的Linux私房菜》
数据结构与算法:《算法4》、《剑指offer》
设计模式:《大话设计模式》
2、github
CyC2018:
https://github.com/CyC2018/CS-Notes
JavaGuide:
https://github.com/Snailclimb/JavaGuide
interviews:
https://github.com/kdn251/interviews
advanced-java:
https://github.com/doocs/advanced-java
architect-awesome:
https://github.com/xingshaocheng/architect-awesome
https://github.com/gzc426/Java-Interview
3、csdn
pcwl_Java:
https://blog.csdn.net/pcwl1206
程序员乔戈里:
https://me.csdn.net/wantflydacheng
一杯甜酒:
https://me.csdn.net/u012562943
4、付费
01
实习的好处
02
实习的弊端
03
实习要做的事情
01
什么时候开始复习?
如果你还在纠结这个问题,我可以很明确的告诉你:现在就开始复习。参加过暑期实习面试和秋招的同学都有一个共同的感受就是复习的时间不够。不要想面试前再去复习,那样很容易会被吊打的,除非你基础真的特别好,不然的话就从现在开始制定复习计划。可能你现在只是大二、研一的学生,那么还是要复习的,学过的东西,一定要及时复习,保留感觉,不然都堆积到最后复习,你会怀疑自己到底有没有学过这些东西。
02
怎么复习?
我觉得怎么复习取决于距离面试的时间和你当前的技术水平。如果时间还比较多的情况下,是比较建议认真过一下每一个知识点,不要遗留下什么问题,否则在后续的面试中你就很有可能因为遗留下的个别问题“跪”的很惨,我是有过这样教训的。复习过的问题可以使用一些笔记软件记录清楚,方便下次复习。
如果时间不是很充裕,基础又不是特别好,面试又得硬上的情况下,以面经为主,把要面试公司最近的面经都过一遍,然后再过一下每个知识点模块中常被问到的问题。为了面试,实在不行就“背”。
03
什么时候投递提前批最合适?
秋招提前批是非常重要的,大部分人都是希望在提前批能够拿到保底 offer。2019年秋招提前批大概是在6月上旬就开始了(VIVO),然后7月中旬-8月中旬开始大规模面试。投递提前批虽然重要,还是比较建议在复习差不多的情况下再投递,或者说没有怎么复习的情况下尽量不要投递秋招心仪的公司,否则大概率只会去当“炮灰”。当然,也不要等到都复习好了再去投递,因为大部分人都会发现永远没有复习好的那一天,感觉差不多了就开始投,边面试边复习。
04
复习的重点
1. 数据结构与算法:《剑指Offer》、LeetCode Top100、常考的一些算法:TopK、生产者消费者模式、多线程交替打印、HashMap 的简单实现等等;
2. 计算机网络:五层/七层协议、TCP 和 UDP 的区别、TCP 三次握手和四次挥手、HTTP 的特点、HTTP 与 HTTPS 的区别、HTTPS 过程等等;
3. 计算机操作系统:进程与线程的区别、死锁的概念/检测/避免、进程间的通信方式、内存管理等等;
4. 设计模式:单例模式、工厂三兄弟、适配器模式、代理模式、装饰者模式等等,以及项目中和 JDK/Spring中用到过的设计模式;
5. Java 语言基础:重载和重写的区别、抽象类和接口的区别、String/StringBuilder/StringBuffer 的区别、关键字(static、super、this、transient)、异常、IO 流、反射、动态代理、序列化等等;
6. Java 集合类:HashMap 的 get、put、resize、JDK1.7 和 1.8、多线程下会发生什么问题、HashMap 和 HashTable/ConcurrentHashMap 的区别、ArrayList 和 LinkedList 的区别等等;
7. Java 并发编程:线程的状态转换、wait 和 sleep 的区别、synchronized 关键字、volatile 关键字、锁:ReentranrLock、读写锁等、线程池:核心参数、类型等等;
8. Java 虚拟机:运行时数据区、垃圾回收算法、垃圾回收器、垃圾回收策略、JVM 监控和调优、类加载机制、Java 内存模型等等;
9. MySQL:常用的 SQL 语句、索引的数据结构、类型及其优化、事务、锁、存储引擎、主从复制、分库分表等等;
10. Spring:AOP:代理方式、JDK 动态代理的实现;IOC:Bean 的生命周期和作用域、单例 Bean 的线程安全问题;事务:隔离级别、传播特性等等;
11. SpringMVC:核心组件、处理请求的流程等等;
12. MyBatis:分页方式、延迟加载、一级和二级缓存等等;
13. Linux:需要掌握基本的操作指令;
14. Redis:基本的数据类型、使用场景、缓存穿透、缓存雪崩、持久化、缓存和数据库双写一致性问题等等;
15. 消息队列:使用场景、如何保证消息不被重复消费、如何保证可靠传输、如何保证顺序性等等;
16. Zookeeper:主要功能、部署模式、状态同步、通知机制等等;
17. 分布式:分布式框架 Dubbo :基本组件、协议、集群容错模式、负载均衡策略等等;分布式事务及其解决方案、分布式锁及其解决方案。
点个“在看”再走吧,谢谢?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。