首页 > 非科班机械转行秋招
头像
是锋哥不是峰哥
编辑于 2020-11-18 19:59
+ 关注

非科班机械转行秋招 内部员工回复

秋招转眼就结束了,将近一年的努力,总算给了自己一个比较满意的结果。写下这篇贴子记录自己的转行以及秋招经历。

其实在转行初期,就无数次幻想着秋招结束,然后写一篇长长的经验贴的那种满足感。下面我尽量把我知道的,和我经历的转行和秋招过程中的我觉得比较重要比较有意义的事记录下来。

自我介绍

学历背景:末流985机械本,末流 C9 机械硕。

实习经历:无实习

项目经历:牛客网站的高级项目(项目是和同学一起买来的,网上也有一些开源的项目,大多数同学都还做了秒杀的项目,我因为时间问题,就没有做了)

收获的offer:美团(sp)、网易、贝壳、用友


下面开始正题:

转行

1、为什么要转行

因为互联网钱多,虽然互联网可能会有中年危机等等弊端,但是毕业就职互联网的高薪对我的诱惑太大了,这也是我转行的重要原因,其次,硕士阶段的导师不是很专注于科研,我也没有项目可做,将来的前景比较渺茫。

2、什么样的人适合转行?

1)专业的话,生化环材,机械土木是天坑,至于到底坑不坑,我没工作过也不知道,但是大家都说坑的话,肯定有坑的理由,如果你是这些专业的同学,你对未来的前景感到迷茫,并且你向往高薪,向往在写字楼里写代码的生活,我觉得是可以转行试一试的,从个人的经历来看,本科生的话,大三开始转行是来得及的,硕士生的话,秋招前一年开始也是来得及的,当然,如果想有实习,想去更好的企业,那么准备可能要从更早开始;

2)我建议,不论是本科生还是研究生,在转行之前先对自己可利用的学习时间做一个评估,如果本科生的学业过重,研究生的导师压力比较大,那么建议转行还是要越早越好,不然时间可能会不够用;我本人基本是花了一整年的时间,这一整年除了完成很少的研究生课程之外,其他时间基本都在学习 java相关的知识,我觉得我的一年还是比较够用的;

3)建议对自己的恒心和毅力进行一个评估吧,因为转行这件事确实是有风险的,我看到牛客上很多大佬转行一年/ 半年收获阿里腾讯offer的,也看到转行到现在0offer 的,所以,如果自己对自己的自制力和毅力有所怀疑的话,还是请慎重。

如果你有坚定的目标,充足的时间,足够的毅力,那么我觉得你已经具备了转行的所有条件了。

3、转行到底应该转什么?

这个问题我也纠结过,当时问学长,问朋友,在牛客知乎上问大佬,但是你得到的答案可能五花八门,甚至天差地别,但是,没有办法,,我们转行的同学,获取信息的来源只有这些。

我说说我的经历吧,最开始的想法是算法,因为算法岗钱最多,当时学长和朋友很多人劝退,但是我觉得,只要有人能成功,凭啥我不行。我相信很多同学也这样想,我可以很努力很努力,我想做的事一定可以做成等等。但是我们不得不承认的是,有的事情不是努力就可以实现的,还需要足够的时间,周围的环境和条件。譬如,据我所知,现在的算法岗的门槛好像要求有顶会,我觉得对于一个转行的同学来说,顶会确实有难度;

后来,学长建议学前端,说有同学自学前端秋招很容易进了大厂,但是,我学了学,发现前端不是很对胃口,所以又放弃了,最后在一个好朋友的建议下(一个真正的大佬),我两是本科的同学,但是人家跨保到华科的计算机,在他的建议下,我们两都踏上了java 的不归路。(在这里,我觉得,转行和考研相似,你需要一个志同道合朋友,一个同行者,你们可以相互鼓励,相互学习,相互安慰)。

个人觉得,java开发的需求量还算比较大,而且, java开发的学习体系比较完整,在网上也可以找到充分的资源和很多前人的经验,所以很多转行的同学都是首选java,这可能也造成了 java越来越卷的重要原因。

转行java我到底学了些什么,如何学?

我大概是从1910 月中旬开始正式转行之路。

JavaSE19 10 月中旬~20年一月上旬)

Java入门肯定是首选javaSE JavaSEJava 的基础,这部分学习建议越细越好)

我的学习方法是:B站视频+ 笔记+代码

B站上很多javaSE 讲的很好的视频,我把我看的贴一下,大家可以去看看:

https://b23.tv/sFnW0L

其实B站上的视频一般找播放量最高的来看,质量都不错

看视频的时候,老师说的内容要记笔记(建议是用pad看视频,电脑记笔记,有的 demo也要跟着敲一敲,不写代码肯定是不行的,记笔记建议可以用onenote,按照不同的章节记录)

javaSE的学习时间建议在一个半月到两个月为好,我因为才开始转行的时候比较懒散,所以用的时间比较长。

数据结构与算法:(学习的时间大概一个月,刷题的时间建议一直持续到秋招结束)

学完javase之后,我们就完整的掌握了一门开发语言,这个时候建议开始学一下数据结构与算法,这门课是计算机科班的必修课,也是将来参加秋招的必须要经历的笔试中算法题的必修课,所以建议在学完一门语言之后,就把这门课学完,这样就可以刷 leetcode了,刷题是一个持久的过程,不在一次刷很多题,但是要坚持,一开始可能会没有思路,可以看看别人的解,慢慢刷着刷着就会有感觉了,一定要坚持,一开始每天1~2 道题就行,等到4月份可以慢慢加大题量,刷题的时候要多总结不同题目之间相同的解法。

这里贴一下我看的课程:

https://b23.tv/xc5ln2

算法部分一定要自己写代码,不是看着老师写了看懂就行,一定要自己独立的写,最好能把思路和原理分析清除,而且要经常复习,不然会忘记很快。

数据库(应该两个星期左右可以学完)

学数据库是为了学javaWeb打基础,数据建议深学,根据秋招的经历来看,面试官非常爱问数据库的相关知识, sql语句,索引,分库分表等等。这部分我觉得我看的视频一般,就不贴了,大家可以自己去b站找。

JavaWeb(大概要学一个半月,我记得我差不多3 月份学完的javaWeb

JavaWeb是后端开发的主体部分,里面涉及到前端和后端很多知识。

javaWeb的知识很多也很琐碎,主要是和后面要学的SSM 框架有关,我就是吃了没有学好JavaWeb的亏,所以后面SMM 框架学的也不是特别好,这里建议尽可能弄懂原理,有时间有条件建议看看源码,自己画画图啥的。

SSMSpring SpringMVC Mybatis)(半个月左右)

学完javaWeb之后,就可以学习框架了, SSM框架主要是对java开发流程的封装,但是面试的时候也喜欢问,特别是 SpringAOP IOC,还有一些Spring中注解、配置等相关问题,还有就是类初始化的相关问题等等。下面贴一下我看的视频:

https://b23.tv/7szPpg

建议多花一点时间,把SSM的整个流程真正弄懂。

SpringBoot3~5天)

现在很多项目都是基于SpringBoot框架开发的,所以学完 SSM后,建议一股作气把SpringBoot也学完。

项目(上述内容都学完大概要到四月份了,本文针对不找实习的同学们,如果想找实习的同学,在这个时候基本上就要开始进行面试了)

学完SpringBoot之后可以开始做一个完整的项目了,可以先做大家最常做的秒杀项目,但是这个项目我自己没有做过,所以,大致的介绍一下,里面应该用到了一些 Redis、分布式等相关的知识。

秋招特别爱问redis,建议找一个相关的视频把 redis研究透彻,还有分布式解决高并发等等问题,也一并解决掉,这部分看的越细,秋招的时候越轻松。

做项目大概要花一个月的时间(最好能在五月份之前,把项目做完)

5月份把计算机基础课程解决:

操作系统+计算机网络

六月份把java的进阶知识解决:

JVM虚拟机+ 并发编程

建议在六月底之前,把上述所有知识都学完,开始准备简历。

现在越来越多大厂,在7月就会开始提前批的招聘。此时要多关注公众号,牛客等等平台。如果能在提前批拿到 offer,对于秋招的意义是非同反响,一方面是对自己努力的认可,另一方面有保底offer,心态也会完全不同。所以,秋招的准备,越早越好。

我是76 号开始投递出的第一份简历,一直到915 号投递出最后一份简历,我没有统计过一共投递了多少企业,但是粗略估计应该有30~40家。


下面把秋招面经总结一下:

用友

7.27 用友提前批技术面

1、自我介绍;

2、说一下怎么学习Collection 下的集合类,和IO操作的;

3、代码:读取D 盘下字符串文件的第三行;

4、代码:使用深度优先搜索遍历二叉树;

5、代码:使用深度优先搜索遍历D 盘下的所有文件夹;

6、上面的代码都不会写,就写了一段快排(快排谢天谢地终于写对了);

7、问了一下项目的问题

如何实现项目的注册问题;

项目如何实现用户唯一性检验:这里回答了在创建MySQL表时,使用 unqiue关键字保证用户名的唯一性。使用unique key保证数据的唯一性;

项目的部署;

项目开发中遇到的问题:回答了高并发使用Redis缓存机制;

反问:

需要提升的地方:

基础基础基础

学习能力的展示

JDK一定要熟悉

一共有几轮面试?两轮:技术面+hr

8.25用友HR

9.03用友意向书

快手

8.06快手一面(挂)

1、自我介绍;

2java中可能出现的并发问题;

3threadlocal如何实现线程安全的;

4springbean 的初始化过程;

5、反射机制;

5springAOP的相关知识;

6、动态代理,说一下代理模式;

7、介绍一下redis单线程的优缺点,以及使用 redis单线程时需要注意什么;

8kafka消息队列的实现原理(我回答了阻塞的消息队列 ……显然不对);

9、消息队列中涉及到了什么样的设计模式;

10redis怎么实现热帖排行(项目);

……问题部分能记得的实在只有这么多了……不知道牛客的大佬是怎么能把所有问题都记住的 ……

代码部分:感觉真是透心凉……

1、代码思路题,给了n个大小不同的螺栓和 n个大小不同的螺钉,螺栓之间,螺钉之间的大小关系都不可知,编写算法,将所有的螺栓和螺钉匹配,螺栓和螺钉匹配的结果只有大了,小了,正好……(我说先在螺栓中找一个,将所有螺钉匹配一下,大的放一边,小的放一边,然后再拿一个螺栓重复上述过程 ……感觉自己就是在瞎说,面试官又问这是什么实现思想,我说是快排……面试官又问时间复杂度 ……我就回答了快排的nlogn……结果面试官又问为什么是 nlogn……我就开始口糊了)

2、一个整形数组,数组中有N个值,其中有一个值 K出现的次数大于N/2……这个题似曾相识,但是怎么都写不出来 ……只能说暴力求解……太无语了

3、一个二叉排序树,给定两个值a.b,找到 a.b的共同的父节点,费尽九牛二虎之力,才把思路说对……结果还忘记利用二叉排序树剪枝了 ……

面试官挺nice,很有耐心,也一直等着我写代码,主要是我太不争气了,代码太重要了 ……心痛……

写面经攒rp,求一波二面……

但是面试官说一周内才有回复,我看牛客上好多人都是一面之后就二面了,难道我已经凉了吗


百度

8.08 百度提前批一面

1、简单的自我介绍

2、项目中为什么要选用SpringBoot

3SpringBoot有什么优势;

4SpringBoot是如何启动的;

5、了解SpringMVC吗,可以说一说 SpringMVC 的作用吗;

6== equals 的区别?(问了在重写equals之前, equals判断的是什么?)

7、数据库的主从复制的优缺点;

8Redis 的数据结构,以及项目中 Redis的使用场景;

9Redis 定期清理数据的策略(除了设置 key的过期时间还有哪些?)

10Linux 的常用命令,真的是啥也想不起来了(问了怎么查询进程,怎么修改限权等等), Linux命令真的要好好看看了。。。

算法题:求字符串中最长回文子串的长度(。。。算法题答得一如既往的烂,一开始暴力求解。。。然后想起来用dp[][]动态规划,在面试官的引导下,终于理清理了思路。。。)

总结:以为百度一面会面很多java基础的,结果一开始一直在抓着项目问,问 SpringBoot 问到生无可恋。。。面试官是一个非常nice的小姐姐,全程非常耐心,有不清楚的地方都会给解释,很好的面试体验。。。

面试小姐姐说给一面通过,希望能够尽快收到二面通知吧。。。口头答应毕竟不稳,许愿二面,许愿offer

8.10 百度提前批二面

1、二面没有自我介绍了

2hashmaphashtable

3tomcat服务器的相关问题,这个了解的太少了,啥也不知道

……又忘记录音了,面试完就处于啥也想不起来的状态……

4、二叉树的遍历方式以及对应的时间复杂度

算法题:

11000个字符统计词频,并选出出现次数最多的 10个数

2、一个数组中有1 100100个数,将其中任意一个数修改为-1 ,找到被修改的数

……

然后就问别的了,开始聊人生聊理想,感觉不像是二面,像hr面(虽然我并没有 hr 面过……

探讨人生……并且问我有没有转测试岗的想法…… 哎,感觉到转行人的卑微,我也不太清楚面试官是啥意思,然后开始探讨转行的原因……怎么学习等等…… 还问了人生规划……感觉背后一阵凉意……

但是每当说起转行的问题,真的很动情,有些转行的苦也只有自己知道,没办法,想实现目标只能不断负重前行

很感慨的一次面试,第一次二面的机会,希望能求一个三面吧,秋招加油💪

8.27 百度提前批三面(挂)

网易

8.14 网易内推批次一面

1、自我介绍

2Java中的Collection 类中的listset

3ArrayListLinkedList 的区别;

4TreeSet的底层结构;

5Java中多线程的同步方式;

6volatile关键字;

7、解决哈希冲突的方法;

8、树结构(二叉树、二叉平衡树的左旋右旋,二叉树的前中后序遍历);

9、图结构;

10、了解Linux 吗(不了解。。。);

11、了解分布式吗(了解一些),说说用到的分布式;

12MySQL 的主从复制原理,全量复制和增量复制;

13MySQL 的索引了解吗;

14SpringAOPIOC 的实现原理;

代码题:

实现一个队列结构(构造方法,put get 操作)

反问环节:

1、您觉得我的表现怎么样:

Java基础掌握的挺好的,但是有些细节的地方还是需要再精进一些;

2、本轮面试如果通过还有几轮?

这个不知道,需要问一问hr (听到这段话我的心是崩溃的,看了那么多面经,一般出现这样的回复,基本是凉了)

3、多久能出结果呢?

这个我也不太清楚,但是我这边直接跟你说了,是给你过的,具体什么时候有通知,要看 hr了(小哥哥救我一命!!!)

网易的面试体验真的没话说,这是我秋招以来第二个准时在线的面试官,人也特别好,问的都是我会的。另外附上一张我女票在我面试期间帮我记的面经,能陪我一路找工作下来,真滴感动,希望秋招顺利(杭州是我两最想去的地方,加油!!!)

8.17 网易内推批次二面

1、自我介绍;

2、(项目)用户的注册登录模块;

3、登录状态保存在哪;

4、登陆凭证存活时间记录在哪;

5、用户登陆上之后怎么可以访问其他的页面;

6、设置redis存活时间的标记;

7、登陆凭证在前端存储在哪;

8、后端怎么设置前端的cookie

9、了解cookie吗;

10cookie的存活时间设置,小于 0,等于0,大于0

11tcp的三次握手、四次挥手;

12、四次挥手的wait_time,为什么是 2ms2ms怎么设置;

13、了解tcp里的 smp协议吗?

14、了解ping吗?

15mysql中的索引;

16、非聚集索引为什么使用指针;

17、怎么使用工具查看是否走索引了;

18、项目中对数据库的优化问题;

19mysql怎么进行选举的?优先级?

20sql的优化;

21http的响应码;

22http的请求方式;

23head请求方式的特点;

24getpost 的区别;

代码题:

1、判断数组中只出现一次的数(hashset或者异或来算)

2、二叉树的层序遍历,以及如何实现s型层序输出

3、利用两个队列实现栈或者利用两个栈实现队列

这次面完发现自己真的菜,好多问题都不会,特别是计网,之前面试从来没被问过计网,这次被怼个半死,哎,心痛啊,感觉要学的东西太多了,不管如何,只能不断努力了,把不会的都搞会,不懂的都搞懂,最后反问环节,问了问有什么建议,面试官简单的说了一下,最后竟然说了一句,也没啥好说的了,然后就说谢谢参加面试…… 这是凉了吧

但是,我还是想求一波hr面,秋招到现在都还没hr 面过呢

8.19 网易内推批次HR

8.25 网易意向书


美团

8.20 美团技术一面

1、自我介绍;

2、阐述一下java 基础部分都学了些啥;

3JavaIO 流中使用了哪些设计模式;

4JavaIO 流有哪些,区别是什么;

5、然后是一系列的Java 字节流和字符流的小问题;

6LinkedBlockingQueue的底层结构, LinkedBlockingQueue是怎么实现阻塞的;

7Java中的轻量级锁;

8、面试官开始写了一段多线程的代码:

Class MyThread implements Thread{

int x = 0;

void run(){

forint I = 0; I < 100;i ++ {

x++;

}

}

}

Psvm

{

new MyThread().start();

new MyThread().start();

syso(x);

}

就这段代码问了很多多线程的问题:

1)这段代码最终输出的结果?

2)怎么样能使最后输出的结果是期望的结果;

3)这段代码一共有几个线程在执行;

4)主线程会等待其他线程执行完吗;

5)怎么使主线程等待其他线程;

6)使用voliate 关键字就能解决该问题吗?

7)如何使用wait notify 实现;

8)。。。。。好像还有很多小的问题;

9、(代码)查找链表的倒数第k 个节点;

10、为什么要STW

11CMS的过程;

12、不使用双亲委派机制的JVM ,或是 Java中违反了双亲委派机制的举例;

13、不使用双亲委派机制会引发什么样的问题;

14TCP/IP 指的是两个协议吗;

15、传输层和网络层解决的问题;

16https的加密过程;

17、接下来是狂怼mysql

18、写了一条SQLselect * from table where name = ‘zhangsan’

1)如果name 没有建立索引,该条 SQL的执行过程;

2)索引的相关问题;

3)数据库优化的相关问题;

4)如何给SQL 加行锁;

5)还有别的很多问题;

19Redis 的一主二从三哨兵的机制;

20Redis 的单线程如何实现主从复制。

21、逻辑题:证明x > x + 1

一开始没get 到面试官的点,用数学思维反证了这个结论错误;

然后面试官让用编程的思维来进行证明该不等式正确。。。

美团的面试最大的问题就是看上去问的都很简单,但其实并不是,也面过其他的企业,很多企业对于一些问题,都是点到即止的感觉,就是你把你知道的说出来了,而且是那种比较热门的问题,都是回答一些关键点就行,但是美团的面试越常见的考点他越不问,问的都是平时不注意的东西,感觉就是面经背的再熟,你不是真的理解了,真的融会贯通了,都会答得磕磕巴巴的。

美团的面试官感觉真的很和蔼可亲,而且是那种技术大牛的感觉,全程都很走心,我第一次面试遇到在面试过程中写的代码比我自己写的还多的面试官,非常好的面试体验,感觉真的能学到东西。

最后许愿美团二面!!!

8.26 美团技术二面

1、自我介绍;

2、平时怎么自学的;

3、为啥不跨考;

4、内存管理方式;

5、段页式存储的关系;

6、进程调度算法;

7、现在操作系统选择的调度算法;

8tcp upd的区别,属于哪一层;

9、开放题:牛客面试网站各个模块的传输层协议应该怎么设置;

10、线程池参数,对于cpu密集型和 io密集型的线程池核心线程数的选择,为什么?

11java中的锁,自旋锁;

12hashmap的线程安全问题,除了头插法导致链表死循环之外的其他场景;

13arraylist hashmap的很多问题,但不是面经上可以背到的问题,必须是看过源码而且很清楚,才能答得很清楚;

14jvm,和gc 问题;

15、类加载机制;

算法题:

求一棵树第k层的节点个数

层序遍历和递归

美团的面试体验一如既往的好,而且面试的是同学校的学长,能学到好多东西,许愿三面,许愿offer

8.28 美团技术三面

顺便记录一下美团问的逻辑题:

11~13张扑克牌,将第一张放到最底下,第二张拿出来,第三张放到最底下,第四张拿出来,这样一直到剩最后一张牌,牌取出的顺序正好是 1~13,问牌原来的排列顺序;

2、平面上随机散列一些点,要做一个圆,使这些点一半在圆内,一般在圆外,设计算法。

9.01 美团HR

9.21 美团意向书


字节

8.24 字节一面(挂)

1、自我介绍;

2JMMjava 内存模型);

3voliate关键字;

4、线程池的扩容机制;

5NIO

6SpringBoot的启动流程;

7web容器和 loc容器谁先被加载;

8、网络七层模型;

9、数据链路层怎么传输数据的;

10tcp四次挥手;

11close_wait状态;

12mysql的隔离级别;

13mysql的默认的隔离级别;

13mysql怎么解决幻读问题;

14mysql如何实现可重复读;

算法题:

1、连续子数组的最大和;

2、容器的最大蓄水量

字节的题目都挺基础的,但是好多基础背了之后又忘记了,有些答得不太好

求个二面吧!

贝壳

9.26 贝壳一面二面HR

一面(40min)、二面(25min

1、自我介绍

2、了解的数据结构

3redis的数据结构

4redissds

5zset的跳表结构

6、创建线程的方法

7startrun 方法的区别

8、常用的线程池

9、线程池中的阻塞队列

10、最大最小堆

11、线程池参数和拒绝策略

12、线程池中核心线程数的数量怎么选择

13AQS

14、公平锁和非公平锁

15、锁升级过程

16niobio

17、一致性hash算法

18、分布式锁的实现

19kafka的组成部分

20、类加载机制

21、数据库有哪些,区别是什么,应用场景

22mvcc

23、间隙锁

24sql语句的优化

25cmsg1 的区别

26zgc:好像是新出的 gc机制

算法题#

1、手写单例模式

2、数组中找到和为100的下标

3、手写消费者,生产者

hr面,常规问题,就不贴了

贝壳的面试体验非常好,而且流程快,个人还是很like

这应该是秋招最后一场面试了

希望国庆前能意向书!!!

10.1 贝壳意向书

至此为止,秋招全部结束了。

总结

我不是一个非常非常勤奋的人,有的时候也会偷懒,也想放弃,但是身边有朋友,家人,女朋友的支持,就坚持下来了,虽然没有拿到at这样的一线大厂 offer,但是像美团、网易这样的公司,也是在我转行之前不敢想的。

每一个转行人可能都会遇到一些挫折,希望大家能在想放弃的时候,想一想当初下的决心,再想一想成功之后的喜悦,其实就坚持下去了,人生也没有几次大起大落,转行也许就是你改变自己,走出舒适圈的第一步!加油!


和一起转行的大佬一起建了个转行java的交流群,有想转java的同学大家可以进群里交流讨论👋👋👋

qq群号:1128406424

更多模拟面试

全部评论

(26) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐