渣本的春招修仙之路


概述:

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

目录:若是只想看某一部分能够直接去看,跳过一些冗余的废话
java

1 为何是【介于春招和秋招】
python

2 【求职渠道】mysql

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

4 【技术栈】想要在北京找一份中厂校招/大厂实习,须要具有什么技能
程序员

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

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

7 【如何准肯定位】
面试

8 【面经笔经】
ajax

9 【总结】

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

由于秋招的时候,找了一份实习,就没考虑秋招的校招岗位,因此就错过了秋招,找工做的时候特别尴尬,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 轮加起来)题都答出来了,你就要考虑该不应去了,可能你进去了也没有多大提高。

要求应届生有产出的公司,让应届生上来就干活的公司也要考虑一下你所能获得的成长,由于大部分企业的校招生进去以后都是看成后备骨干来培养的,机会会很是的多,切莫舍本逐末。成长环境是最重要的,而不是每月多个一、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基础知识,软件破解与推荐,等等。

相关文章
相关标签/搜索