面试轰炸机就是这样吧

我是程序汪

共 6090字,需浏览 13分钟

 · 2021-08-19

感谢程序汪铁粉的分享,当然程序汪也帮粉丝电话分析了一些问题,欢迎其他粉丝分享你的面试或学习经验,大家一起交流




眼界不够开阔

个人情况简介

基本概况

本人坐标新一线城市,某电(211)本科计算机软件工程专业科班,大三在校生,英语等级CET6,自学Java,大概从4月15号开始找实习(相对来说比较晚),说一下找实习情况:

刚开始没有找实习经验,投了20多家,收到字节、阿里、华为、美团、招联、携程、CVTE、便利蜂等笔试邀请,快手、拼多多、联想、小红书等一直处在简历筛选,估计是因为时间投的太晚,没岗位了。

目前面试通过:华为、腾讯、阿里、美团,其它的都拒了。在西安拿到了腾讯CSIG区域研发中心、华为的明确offer意向。考虑到目前还在大三,可能经常需要回学校,考虑到地域因素,拒掉了阿里三面、招联以及其它外地公司的面试邀请。

实习总结

复盘一下个人实习经历和心路历程:一直明确了不考研所以在有关实习还是考研的问题上没有过多纠结。第一次找实习,什么都不懂就开始海投,觉得只要有公司要就行。后来慢慢对实习地点、福利待遇等有了要求,又开始拒绝面试邀约。个人觉得大三在校生找实习最好是在本地实习,原因有下:

  1. 大三暑假实习时间太短,有的公司不愿意要
  2. 本地学生实习时间更长,同等技术条件下可能更具竞争力。

其实对于实习生,在学校都没有定向的培养课程,基本都是大类基础课,这些课程基础夯实才是谈条件的资本。另外有个项目十分加分,对项目有十足的了解,就可以在面试中更能有话说(水时间),减少被问到不会的技术问题的概率。前提是对项目有很深的了解,并大概知道可能被问到的扩展。不懂装懂的项目都是白搭。

关于面试的基本流程

面试的时候基本分为几个大块流程:

自我介绍 + 项目 + 基础知识 + 算法手撕 + 反问

自我介绍:作为一个暖场环节,参考有很多,总之我认为要抓住一点:让面试官觉得你就是这个岗位的不二人选,你和这个岗位不论从哪个方面都是匹配度最高的。另外介绍要流畅,不要磕磕绊绊的。

项目:实事求是,大概率问到扩展,主要考察真实性和语言表达能力。

算法手撕:边说边交流思路,别自己闷头写,别出现重大错误,选择合适自己的编码环境,比如说有的公司面试可能在牛客,让写代码的时候,你可以询问是否可以用本地编译器写代码。个人认为熟悉的编译环境能提高发挥,比牛客手撸白板好多了。。。

反问环节:基本上大体方向把握住,不作死就不会死,不要问过格的问题,举例我常问的:

  1. 根据您的经验,实习生大多在哪些方面有不足?
  2. 贵部门的业务?

关于具体知识点

算法

算法绝对是压箱底的操作。话不多说推荐书:

  1. 剑指offer
  2. 算法4

基本上面试问到的都是常规的算法,有时涉及到海量数据处理。

本人leetcode刷了可能只有20来道,属于佛系选手,剑指offer倒是看了不下三遍,且都能手敲,主要是被其中精妙的算法吸引。本人对这块不是特别懂,只能说多敲代码好处多多。


我是程序汪 公众号 回复 算法

获取优质的算法PDF资料

八股文:语法基础 + 数据库 + 操作系统 + 计算机网络 + JVM + Linux + 设计模式、系统架构设计等

这一部分基本都是八股文。推荐几本书籍,多背,多练,主要是找到知识点之间的联系,先看具体的知识点,最后依靠自己的记忆整合在一起,做到知识迁移,举个例子:

知识的串联:tcp协议 -> 面向连接 -> 三握四挥 -> 四次挥手过程 -> time_wait和close_wait ->产生原因 -> 拒绝服务攻击 -> 大量time_wait解决方案 -> HTTP服务器keep-alive参数等 -> 具体参数设置 -> ... ...

刚开始看面经的时候可能都是分散的知识点,慢慢串联起来,由浅到深,加深理解。仅个人方法。

推荐书籍

书不在多而在精,某一个方面的可能买了很多但不看,还不如好好看一本。

  1. MySQL是怎么工作的
  2. redis设计与实现
  3. 计算机网络:自顶向下方法
  4. 深入理解Java虚拟机
  5. 鸟哥的Linux私房菜

操作系统我用的就是大黑本,硬啃。Java基础语法我从大二就看的程序汪之前分享过的Java学习路线,里面的知识点罗列的很详细。我打印出来每解决一个就打一个勾,这样过来的。


我是程序汪 公众号 回复 路线

获取详细的Java学习路线

面试题目分享

举例几个有参考意义的。

美团北京广告推荐算法测试开发实习生一面(48min)4.30

投测试是因为刚开始投,没什么经验,先试试水。

面试官小姐姐人很好,很温柔~

1.   面试官先介绍了下部门,然后让我做自我介绍

2.   项目介绍

3.   项目中主要负责什么模块

4.   介绍一下你负责的模块,主要用了什么技术栈

5.   对登录是怎么测试的(首先测试易用性,输入为空的处理,是否有空格,长度限制防止SQL注入和跨站脚本攻击,是否允许特殊字符等等,从功能性、易用性、性能、安全性、兼容性等方面说)

6.   密码是明文存储的吗(估计想问MD5加密,我自己编了个算法课上的加密方式)

7.   http和https有什么区别,答曰https进行了安全强化,对http加上了安全层套接字。问,还有吗?加密、认证(数字签名)、完整性保护。

8.   http和https端口号知道吗?80和443

9.   MySQL索引知道吗,为什么要用索引,索引有什么好处,B+树索引结构说一下,他和B树有什么区别说一下。

10.  MySQL用过join吗,说一下left join 和right join。

11.  MySQL语句写的多吗,现在有两个学生,每个学生有三门课的成绩,这样数据库就有六条记录,怎么查询单门课的平均成绩?答曰groupby+avg

12.  Java异常了解多少?能说说几种异常分类吗?答曰IO异常,空指针异常,数据越界异常,堆内存溢出异常等。问曰,能不能按照分类说说?(应该是IOException和RuntimeException)。

13.  你怎么知道哪一段代码要用try catch处理的?

14.  问曰异常用try-catch块处理,为什么要抛出?Java异常处理的目的是提高程序的健壮性,使得程序不会因为异常而终止。另外获取异常信息也为程序的开发维护提供了方便。一般通过异常信息很快就能找到出现异常的代码。

15.  自定义异常使用过吗?

16.  一段代码有可能同时有多个异常,是分开处理吗?

17.  手撕代码,合并两个有序链表,特别简单,只能说牛客手撕白板这方面太菜了,面试官给了好多提示才调通,建议要么苦练手撸白板,要么询问一下能不能用本地IDE。

18.  问实习时间,期末考试是不是要回西安。

19.  反问环节,问表现,答曰沟通方面很清楚,Java基础稍差(这块当时还没怎么复习)。问实习生做什么,答曰部门有很多,比如质量管理测试,工具组(开发测试工具)等,面试官本人在工具组,说我面试的base是北京的广告推荐算法测试组,说二面应该是那边的小leader面,让我问二面面试官(可我感觉自己都到不了二面)。

二面邀请,拒了。

阿里巴巴IOS开发实习生一面(45min)


最近阿里的瓜大家都吃到了吧,技术岗位还好很安全的,销售部门就......

1.   作为项目经理,遇到核心成员手上有别的事怎么办?

2.   操作系统进程和线程的区别?

3.   操作系统,哲学家就餐和读者写者描述一下,怎么解决?

4.   怼笔试题目

5.   大学期间学了啥课?

6.   软件工程这门课学了啥?

7.   我看你说软件工程学了瀑布模型,说一下?

8.   进程调度策略,某个优先级高的资源不愿意释放资源怎么办?

9.   介绍实习生培养机制

10.  你是怎么抗压的?举个例子?

11.  我看你说了解基本的安全性问题,都有哪些?

12.  反问,我想问的面试官已经介绍过了,如实说了

不问会的,就问一些学过课程的边边角角,有压力面的意思。

阿里巴巴IOS客户端实习生二面(25min)

午休打电话,叫醒服务,感觉面试官非常忙,问了几个技术性问题,也没深问。

1.   自我介绍

2.   介绍下影响最大的项目

3.   问项目具体,负责了哪些模块,代码量如何

4.   项目有没有买票、退票等功能,如何实现

5.   问几个技术问题吧

6.   说一下JVM运行时数据区域,自己说,也没深问

7.   说一下常见的垃圾回收算法

8.   说一下初始化一个类的过程

9.   问网络,http请求码都有哪些,这个我当时没懂他的意思,因为他用了一个我没听过的术语。。。说有set-cookie。。。后来想面试官可能想问的是其实就是状态码,就是301 302 404 这些。。。

10.  五层模型简单介绍一下。

11.  说一下常见的排序算法,说了十个

12.  快排稳定吗,复杂度是多少说一下,能手撕吗

13.  设计模式了解多少

14.  你说你有一定的代码品味体现在哪里

15.  你认为什么样的代码是架构优雅的代码

16.  幂等和非幂等的概念知道吗,啥叫幂等,啥叫非幂等

17.  IOS开发用Obc,有接触过吗(没有)

18.  反问:阿里实习生还有几面 答要不要加面需要和一面面试官商量

三面拒了,等了好长时间才来的。

华为5.13软开实习生一面

面试官人很好,苦于学校没有很好的面试地点,找了个家属区的租了俩点。约的是十一点半,十点半上去签到没一会就有一个机器人电话,让上页面面试。另外面试使用zoom。

  1. 自我介绍,说自我介绍做的还不错。

  2. 怼项目,一个简单的J2EE,问密码是否明文、多线程场景怎么实现,URL复制一下重新进入搜索页面,用户是否还需要重新登陆。——以上都不会,说了一些自己的推理,半对吧。

  3. 问GPA,问排名

  4. 问在学校获得过什么奖项。

  5. 数据结构没问。

  6. MYSQL问了连接操作的实现,解释一下左右连接是啥意思。

  7. 介绍下主键和外键,当我同时更新两个表数据,这两个表有外键约束,当我要更新数据时,应该先更新主键那个表的主键,还是先更新另一个表的外键?删除的时候呢?我表示不会,并说自己的推理:增加时应该先更改主键表,再更改外键,删除时相反。面试官说猜的大体上对,免了一劫。

  8. 最左匹配原则知道吗,举例说明一下。

  9. 我在索引查询里用到一个函数会导致什么情况?(属于索引失效的情况)

  10. 我用了函数,索引失效怎么处理?(函数索引。)

  11. 问Java,说下集合类有哪些

  12. Hashtable和hashMap线程安全问题。

  13. stringBuilder和StringBuffer的线程安全问题和使用场景。

  14. 多线程怎么保证数据一致性?

  15. 网络没问。

  16. 虚拟机没问。

  17. 算法手撕连续子数组最大和,十分钟搞定。

  18. 反问。

面完直接告知通过,等主管面。总的来说感觉更偏重于实操,侧重问实操能力,总体上觉得实习生面试比较常规,没有为难我。另外主管面不放了,纯聊天。

腾讯CSIG区域研发中心一面(5 / 18)


提前三四天约的一面,腾讯会议。

我用的Java,部门那边用golang。没多问Java的。面试这么多家体验最好的非腾讯莫属。

题目比较常规,基础八股文不少,项目没问。只是我面试时还没想到下一面是另一个极端。只有没太答上来的和少部分常规记住了,其它的忘了不少。基本是小的知识点聊到啥问啥,一问一答了一个点,能问几十个小问题。

  1. 自我介绍

  2. Linux:怎么看系统内存占用情况,命令

  3. 说说Linux管道的概念,知道Golang里的channel晓得吗

  4. JVM运行时数据区域说说

  5. JVM垃圾收集算法,说说你的理解

  6. 你提到的Stop the world?

  7. Java的封装,继承,多态,接口等概念,说说你自己的理解,你说的接口和抽象类有啥区别?

  8. 虚拟化了解吗?

  9. MySQL用的比较多,索引说一下你自己的理解?(又追问了几个更深的问题,尚在掌控之中)

  10. HTTP请求和响应报文格式说一下

其他的忘的差不多了,都还算常规,很多很杂的小知识点。

腾讯CSIG二面(5/19)

当天上午十点多打电话约当天的十一点半二面,面试官很好,全程乐呵呵的。基本没有八股文,有八股都也是拐着弯问。开放性题目多,扩展多,引导思考多。

1.   自我介绍

2.   学校里哪门课比较熟悉,我说计网等,选择性忽略,只问计网。。。

3.   说一下你对计网这门课,自己在学习过程中有什么理解

4.   UDP是一个怎么样的协议?TCP是一个有远见的协议,你认同吗,何以见得?(窗口和拥塞控制方面)

5.   数据库索引,MySQL索引说一下,我读一万条数据和一百条,有什么区别?

6.   项目连环问。。。给我问傻了

7.   项目你参与实现了哪?登录时的安全问题有了解吗?密码是明文传输吗?在数据库里是明文存储的吗?我输入一个密码,数据库怎么校验的?明文怎么匹配,如果我采用了加密怎么匹配,散列值怎么产生?你说的是服务器端数据库加密方式匹配,那传输过程中是不能用明文的对吗,这个怎么实现加密(估计想变着法问非对称加密,当时没想到,中午睡觉时后知后觉)?你说你使用的jsp页面间传参数,遇到了什么问题?jsp页面间传参数,为什么只能传递一个页面,而不能一直递归传下去,你想过原因吗(这个比较结合项目实际,参考意义不大)?你说的那个功能,为什么不用设置session实现?当时使用原生技术是出于什么样的考虑?(菜呗)数据库这块不是你负责的,你能大概说说有哪些表和它们之间的关系吗?你认为航班这个表中应该有哪些字段,为什么?

8.   你还有什么经历想分享的吗?

9.   反问

程序汪资料链接

欢迎添加程序汪个人微信 itwang007  进粉丝群或围观朋友圈

浏览 64
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报