渣本的春招修仙之路

概述:

双非小渣本,京东软开实习,同程艺龙软开准入职。总结一下【介于春招和秋招】之间的求职历程,目的是想留点东西给学弟学妹,希望学弟学妹们找一个好工作。

目录:如果只想看某一部分可以直接去看,跳过一些冗余的废话

1 为什么是【介于春招和秋招】

2 【求职渠道】

3 面试官喜欢什么样的【简历】

4 【技术栈】想要在北京找一份中厂校招/大厂实习,需要具备什么技能

5 【刷题刷书推荐】提升能力的最快途径

6 【如何看待培训机构与外包公司】

7 【如何准确定位】

8 【面经笔经】

9 【总结】

扫描二维码关注公众号,回复: 5126014 查看本文章

一 为什么是【介于春招和秋招】?

因为秋招的时候,找了一份实习,就没考虑秋招的校招岗位,所以就错过了秋招,找工作的时候特别尴尬,12月 —— 1月,此时秋招以及秋招补招大部分公司已经结束,春招还没开始,简历通过率极低,岗位极少,想要找工作的同学最好把握秋招(9月开始,10月后基本结束,11月-12月,陆续会有补招,1月很少有公司还在招人)以及春招(3月开始,4月基本结束,且很少有补招)。

【总结】:

【秋招】 神仙打架,各大厂的hc会井喷,竞争很大,同时机遇也很大。

【春招】 算是秋招的补招,hc较秋招会少,一大部分岗位面向的是下一届的实习生,还有海外学生(海外12月份毕业),个人觉得竞争不比秋招少。

二 【求职渠道】?

这里是按难度递增排名的:

1 去学校的互联网企业

这里可能是面试难度是最低的,一般主要考察的是学校期间的表现在校成绩,很少考手撕算法之类的编程题,可能去学校的互联网企业,手写代码,写出一个完成的快速排序就已经超过很多人了。(名校名企除外,很多知名企业的专场招聘会难度还是很大的)

2 实习转正

比起走春招/秋招的独木桥,实习转正也是一个不错的选择,好处就是面试难度会下调(不是绝对,比如字节跳动的实习和正式offer的面试难度是一样的,所以字节跳动的实习转正率也很高,据说可以达到50%),缺点就是可能最后没有转正机会,尤其是互联网行业不景气的现在,需要均衡考虑。(一般大企业的实习待遇都是很不错的,实习建议一定要去大厂,不要怕,实习的要求一般来说都是比校招低的)

3 春招/秋招

1 去别的学校参加招聘会,比如北京邮电大学,北京交通大学,互联网的招聘会就比较多,外校学生去也是有面试机会的,有的企业,上午是本校的面试,下午可能就会让外校的学生面试。

2 网申,在公司的维度上参加春招/秋招。去企业的招聘网站上申请,外地学生一般都会提供视频面试的机会,不用担心太远,同时一般的公司网申是需要线上笔试的,所以需要提前安排时间,不要错过笔试。网申的周期可能很长,比如投了简历1个月才会安排,需要耐心等待。

3 内推,一定要把握内推机会,一定要把握内推机会,一定要把握内推机会,特别重要,内推的简历可能会免笔试,可能走单独的流程(比如你内推了一份简历,官网投递了一份,你就有两份简历在跑流程,有double的机会),可能不会留下面试评价(比如你表现不好,但是由于是hr邮箱中的简历直面,可能不会上传招聘系统,不会留下不好的面试评价,你就多了一次机会),可能有特别的标识(简历免初筛,或者简历优先处理),这里为什么说可能而不是一定,因为所有的公司都不一样,用的不同的招聘系统,有不同的业务规则。

4 招聘网站:

这里推荐几个:

论坛:牛客网,国内没有哪个应届生求职平台做的比牛客网好,【牛客玩的早,offer拿的好】

招聘网站:Boss直聘,拉钩网(有个技巧,比如你想找java,不要只搜索java,多试一下其他关键字,比如后台,服务器,客户端等,你会回来感谢我的),实习僧(实习僧上一般都是大企业,而且不仅有实习,也有部分校招)。

微信公众号:Utips校招实习,刺猬实习校招、伯乐校招,可能会提供校招的咨询和内推,建议关注起来,同时还有职场小干货。

【总结】:多个渠道,多个岗位,多试一试,因为面试其实很大程度上看面试官的,可能同一家公司的不同部门,面试难度相差很大,大厂也有混进去的。

三 面试官喜欢什么样的【简历】?

这里简述,个人推荐【超级简历】这个网站,他有简历评分,简历排版,简历优化,简历模板,很多很多的功能,十分推荐,用这个做出来的简历,比我自己第一版简历感觉上好的太多了(关于这个简历的模板我也去专门请教过HR,HR说这个模板比较不错),非常适合不知道自己的简历怎么写的同学,同时如果你的目光是海外的企业,不要简单的通过软件翻译自己的简历,而是要找英语专业的同学帮你进行一些雕琢,因为直接翻译过来的简历可能不符合外国人的阅读习惯,从而影响自己的简历通过率。(关于简历,在牛客网上有【完美世界】HR的分享,值得推荐)

四【技术栈】

想要在北京找一份中型企业/大厂实习,需要具备什么技能?

Java基础

对封装、继承、多态、面向对象的理解(不要求背定义,但是至少要有一个自己的理解)

接口、抽象类、访问控制符等。

锁 Synchronized、Lock的原理、锁的分类,锁升级 CAS free-lock。

线程 线程状态,状态切换、进程线程区别、线程池、创建线程的方式,一些常用方法:wait()、notify()等

一些主要的方法:volatile关键字、equals方法,StringBuilder做字符的高效连接等。

对反射,泛型有一定的理解,做做Demo。

对Servlet应该有一定的理解(虽然我面试的时候没被问到,但是对于理解框架本身十分重要) 【总结】: 以上只是说了一小部分,java基础一定要打牢。然后说一些基本不用看的

JSP:一种View层的渲染技术,现在基本已经淘汰了,但是我熟悉的Velocity、FreeMaker里面很多的语法和JSP中 的JSTL表达式极为相似,所以学JSP可以让我们在学习其他渲染技术的时候更容易上手,但是由于JSP的性能问题,前后端 混写问题,现已经淘汰了。

SSH框架:企业基本都已经用Spring Boot开发,SSH框架已经淘汰了,一是因为太重了,对性能有影响 2 是因为出现过几次重大的bug,所以目前新项目没有采用SSH开发的

Swing:UI框架,可以舍弃

XML 基本已经被json代替,用Java对XML进行渲染和解析的操作实际开发中没遇到过。

集合框架(这里分为 了解、使用、源码 三个级别),要注意集合/容器 之间去区别和联系,以及使用场景

List

  • ArrayList(源码)
  • LinkedList(源码)
  • Vector(了解)

Set

  • HashSet(使用/源码)
  • LinkedHashSet(源码)
  • TreeSet(使用)

Map

  • HashMap(源码)
  • LinkedHashMap(源码)
  • TreeMap(使用)

并发包(重点了解)

  • ConcurrentHashMap(源码)
  • CopyOnWriteArrayList (使用)
  • ArrayblockingQueue (使用)
  • AtomicInteger (源码)
  • CountDownLatch(使用)
  • CyclicBarrier(使用)
  • FutureTask (使用)
  • ReentantLock(源码)
  • Condition(使用)
  • Semaphore(使用)
  • ReentrantReadWriteLock(使用)
  • Executors(使用)重点关注线程池种类、各个作用、适用场景
  • ThreadPoolExecutor 重载方法的参数、各参数作用

【总结】主要去看标注源码的,其他的可以有时间再看,源码不一定要逐行去看,可以找一下高质量的博客,看看里面的源码解读即可,并发包我看别人面经里很多,所以就去系统的学了一遍,但是不知道我面试的时候为什么没有问我的。

虚拟机

JVM内存模型的分区,存储的数据类型,是否会发生内存溢出。

加载机制

双亲委派模型

gc算法、fullGC、MinorGC触发条件

G1,CMS过程

JVM优化(考的不是很多,主要是分区,类加载,和gc)

四种引用

IO流(我NIO没看过,这里直接扒的知乎)

BIO

字节流:类型、适用场景

字符流:类型、适用场景

NIO

类型、适用场景 三大组件的联系、使用 内存情况 消息

中间件:

redis:基本类型,持久化策略,饱和策略,查找,使用场景,分布式锁,(分片和集群有时间可以看看)

Dubbo:工作原理,RPC协议,如何配置

RabbitMQ:工作原理,工作模式,如何配置

【总结】:消息中间件是锦上添花,主要还是基础。

数据库:

存储引擎 索

事务,MVCC,一致性读等。

锁机制。

SQL调优

表设计 (有时间还可以看看主从复制和读写分离)

web:

Tomcat 结构、流程(没学过,但是听说有考的)

Servlet 生命周期 使用

springMVC 使用 请求流程

spring IOC/AOP 原理 Spring的一些使用细节,比如json怎么接,如何配置事务等。

mybatis 使用 #、$区别 ,对一和对多

Spring Boot 使用

Spring Cloud 会更好,但是没遇到过问的

设计模式:

单例模式

工厂模式

观察者模式

适配器模式

模板模式

原型模式

建造模式

【总结】

了解即可,时间充裕可以做做Demo,设计模式一共23种,知道常用的就行。

单例考的比较多,各种单例的写法和优缺点要掌握,也要准备几个项目中用到的设计模式,比如我们的项目就 用到过,建造模式、模板模式、适配器模式。

数据结构:

数组、栈、队列、堆、图、树、集合、散列表、跳跃表。

都要了解,无论是找工作还是为了自己的成长。

这里知乎上树总结的比较全,就贴一下:

二叉树

  • 平衡二叉树
  • 二叉查找树
  • 红黑树
  • 完全二叉树
  • 满二叉树

概念、适用场景、时间复杂度、好处坏处

B树

  • B Tree
  • B+Tree

两者的联系、区别、适用场景

算法:

了解常见的排序算法:

冒泡排序、选择排序、插入排序(基础)

归并排序、快速排序(常考)

桶排序、计数排序、基数排序(了解、不要求手写)

堆排序(很重要,java中有它的实现,即优先级队列 PriorityQueue)

各种排序的思想 时间、空间复杂度、稳定性如何,可以手写

DFS、BFS

回溯法

贪心算法、动态规划等。

网络

TCP 三次握手、四次挥手、各种状态、状态改变 拥塞控制、流量控制、累计应答。

如何解决乱序问题、如何解决丢包问题。

和UDP的区别

IO模型

同步、异步、阻塞、非阻塞概念

模型种类、各自特点、适用场景如何使用

HTTP && HTTPS:过程

DNS

TCP/ip协议

用户从浏览器输入一个URL,到接收到服务器响应的全过程。

Linux基础(我Linux只会写简单的命令,面试官也没办法问的更深)

常用命令

操作系统:

进程调度算法

用户态、内核态

进程线程区别

页的概念

【总结】:个人感觉,不一定对,是我自己的复习大纲,希望可以帮到你们。

五 【刷题刷书推荐】

提升能力的最快途径

资源: 【极客时间专栏】:均价80,干货很多,这里推荐一些我买过的

1 《MySQL实战45讲》 mysql的入门专栏,看到20章左右就能对MySQL有一个较为系统的认识了。

2 《趣谈网络协议》网络协议的入门专栏,看到26章,可以对tcp/ip协议有一个较为深入的理解

3 《从0开始学大数据》0基础大数据入门专栏,感觉像是科普文,我只看到了16章,写的还是非常好的,也是因为这个专栏,所以后来去了同程艺龙,想听一下李老师的现场课。

4 《Java核心技术36讲》不适合入门,但是适合有一定基础之后再反复研究

5 《数据结构与算法之美》非常适合算法入门

6 《算法面试通关40讲》用leetcode讲算法题,非常推荐,主要实现语言是python和java

【看过的书】

1 《深入理解Java虚拟机》 不是很厚,但是却是经典中的经典,建议多读读

2 《Java多线程核心编程指南》多线程的入门书,非常推荐

3 《程序员代码面试指南》算法书,大部分是算法题的解法,如果基础不错,可以去读,但是算法基础不是很好的话,还是用专门的算法书比较好,因为题永远只是辅助。

4 《网络是怎么连接的》 写的比较通俗易懂,由点即面的,个人感觉比较好理解,但是最开始没有一个宏观的网络概念。如果是为了面试的话,专栏或者博客可能来的快一些。

5 《图解TCP/IP》也是,如果是为了面试的话,专栏或者博客可能来的快一些。不是为了面试的话,可以细读一下,写的挺有意思的。

6 《图解设计模式》 感觉是同类里面最好的,比较精简,同时很全面,每个设计模式都配有Demo,读起来也会比较顺畅。

7 《Head First 设计模式》 这本书被称为设计模式的神书,确实它会引导我们去一步一步的解决问题,可能这个问题已经被解决了,然后我们才会恍然大悟,原来我刚才使用了设计模式,但是较厚,为了面试的话,不推荐,时间充裕的话,可以仔细看看,写的确实不错。

8 《算法图解》用python写的,算法入门书,比较薄,看起来还是比较轻松的。

9 《深入理解计算机系统》殿堂级书,建议找个时间刷一遍,但不是找工作的时候,太厚了,只看过几章。

10 《算法导论》殿堂级书,用很多数学的方法去论证算法的可行性,建议找个时间刷一遍,但不是找工作的时候,原因同上。

11 《码出高效 Java开发手册》建议刷一遍,写的特别好,涵盖了很多内容,书很薄。

12 《阿里巴巴 Java开发手册》也就是阿里规约,规范代码,建议看一下。

13 《Java编程思想》 有时间可以看看,但是不适合作为一本Java入门书,我Java入门的时候是学校的教材和培训机构的讲义,没啥好书推荐的。惭愧。

【总结】以上就是我求职期间看过的书,不敢对书的内容有什么评价,有些书非常好,但是不适合求职期间看。

【刷题】 个人的话题刷的不多,leetcode 110道,牛客网70道,去掉重复的题大概150道,算法算入了个门,刷题有很多种策略,龟派和兔派,我是先兔派(想10秒,想不出来就马上看答案,看最优解)刷了100道左右,然后就高频的题进行龟派的刷法(尽量时间、空间复杂度更低,方法更多的去完成)。

六 【如何看待培训机构与外包公司】

培训机构:个人觉得培训只是学知识的一种途径,我培训过,然后找了第一份实习,并不歧视,但是要注意的是,【不要把培训机构当作一根救命的稻草】,不要过分的相信培训机构,要有自己的思考,一定要努力学习技术,技术有了工作自然就有了,靠包装是走不远的。

外包公司:有些用人单位会歧视上一家工作单位是外包公司的员工,而且外包工资真不高,跟校招没法比(不是歧视外包,实话实说)。

要注意,如果你面试的时候把面试官百分之百(指的是所有轮面试,1 2 3 轮加起来)题都答出来了,你就要考虑该不该去了,可能你进去了也没有多大提升。

要求应届生有产出的公司,让应届生上来就干活的公司也要考虑一下你所能得到的成长,因为大部分企业的校招生进去之后都是当作后备骨干来培养的,机会会非常的多,切莫舍本逐末。成长环境是最重要的,而不是每个月多个1、2千的薪水。

七 【如何准确定位】

这个就不多说了,每个人心里都有自己的定位,投简历的时候不要怂,多投,多尝试大厂,然后双非渣本的同学(没错,就是我),你自己可以调侃你自己是渣渣,但是面试的时候或者是准备面试的时候,别看轻自己,你自己都觉得你自己不行,面试官为什么会相信你的能力呢?

八 【面经笔经】

京东(java软开实习)

学校的经历

有什么良好的编程习惯和代码风格

泛型可以被继承吗?举个例子

JVM内存模型的理解 用过那些数据结构,

谈谈你的理解 mysql数据库多个字段都存在索引时,查询操作时应注意哪些问题

是否自己写mapper/dao/pojo?有没有可以自动生成的方法

mybatis拦截器的使用

spring mvc中如何使用自定义的注解

mysql事务的底层实现原理

mysql中innodb的索引结构

mysql中锁的应用

如何自定义数据库连接池 假设自定义的数据库连接池有10个空闲链接,此时共有12个链接请求,剩下2个链接如何处理,如果想实现等待,如何去设计。

是否进行过sql优化,具体说一下如何优化的

常用的编译工具,经常使用的快捷键

voltile和synchronize的区别

CMS和G1

SSM中前后端交互问题,json在其中的作用,它是如何在前后端进行传递的?

不同项目中可能用到的jar包版本不同,在发生版本冲突的时候,如何去解决

如何把自己的jar包上传至maven

前端会写吗

javaScript中的对象,是否有类的概念

ajax可以设置为同步吗

总结:感谢在我实习的时候捞了我一把,也真的学到了不少东西。最感谢的公司。

众安保险(java软开 )

擅长的语言

项目中主要写前端还是后端

项目前端数据如何展示?是前后端分离吗

用到的框架?

接触过SpringBoot吗

讲一下GC的理解

项目中如何保证事物

Java8的新特性

Volatile和Lock

项目中用到了哪些设计模式

如何保证分布式架构项目中的数据一致性

如何实时保证分布式架构项目中的数据一致性

算法:给一个整数n,代表n个左括号,和n个右括号,判断合法的排列组合有多少种?

总结:算法写的一般,当时用的全排,然后用栈来判断合法字符。面试体验特别好,但是需要去实习,不能发校招offer,所以非常遗憾,比较推荐。

头条(java软开 ,火山小视频 && 抖音):

抖音:

Gc

手写Web Socket

红黑树

手写跳跃表的插入过程

写一下TCP滑动窗口的算法

B树和B+树

linux的使用

TCP拥塞控制

算法: 每k个一组,反转链表

总结:面试体验很好,面试官给推荐了2本书,编程能力有待提升,手写除了WebSocket之外其他的基本都写不出来完整的。

火山:

一面: Gc

jvm分区

对排序算法的了解

手写块排,归并排序,分析时间复杂度,空间复杂度

证明块排是稳定的排序算法

arraylist源码分析

算法: 去除链表中的重复项 1 -> 1->2 ->3->3->4 结果 2->4

总结:答得还可以,然后一直在面试中,醉了。

映客直播(服务器软开 java转golang):

笔试:比较简单,有一道题比较深刻: 内存1G,需要计算1G的数据排序,哪种排序方法效率最低,当时选的是冒泡,因为涉及到频繁的数据交换,其实应该是归并,因为归并不是原地排序,多占用的内存空间,会与磁盘进行频繁的页交换,造成卡顿。

面试:

实习的感受

学校的经历

手写二分法

手写图

手写图的广度优先算法

手写图的深度优先算法

总结:深度优先没写出来,广度写的也不是很流畅,图方面的知识看的太少了。

面试官:特别喜欢你,但是我可能不会给你过,蓝瘦。十分推荐去,真的会把应届生当成后备骨干去培养。

北森云计算(.net软开,saas方向):

一面:

list arraylist linkedlist

二分查找分析

redis 结构

线程同步,异步,互斥 临界段 线程状态 线程方法

Gc

Mysql 索引

设计模式

算法:两数之和

总结:一面比较简单,面试官还给讲了saas,c#和java的区别等。

同程艺龙(java软开)

自我介绍 之前打比赛的经历

c语言会吗?

arm指令了解吗?

java反射的应用

用反射来获取成员变量的时候,遇到成员变量本身是一个对象,该怎么做。

用过什么锁,

了解分布式系统中的锁吗,使用场景

arrayList和linkedList的区别和使用场景

重写equals

操作系统中的页和索引中的页一样吗

http协议

mysql数据库中的索引

redis中的分布式锁

Spring mvc的处理请求过程

游览器缓存

前端数据渲染用的什么?用到模板引擎了吗?

redis中的分布式锁,如何保证的

框架那哪种用的多,

简单说说springboot

单例模式的实现方法,区别,每种的特点

可以用反射来创建多个单例模式的对象吗

实习的经历和项目

为什么选择同程艺龙,不留在京东

算法: 两个链表,其中只有1个重复的元素,找到这个元素。

总结:offer call了,不出意外应该是会去,第一是这个公司给人感觉不错,新人体系很完整,并且非常喜欢一面的面试官,不出意外应该会分到一个部门,第二是不想折腾了,希望可以有一段时间沉寂下来,学些东西。

九【总结】

写这篇面经主要的目的就是为了给学弟学妹们说一下如何准备春招/秋招,因为来学校的互联网企业太少了,希望我踩过的坑,学弟学妹们能不要踩,虽然咱们学校不是特别出名,但是总体来说也算不错,加油。

——————————————————————————————————————————————————————

另外:觉得有帮助可以关注博主,定期分享一些leetcode高频算法,Java源码解读,Java基础知识等等。

猜你喜欢

转载自blog.csdn.net/Kirito19970409/article/details/86689680
今日推荐