一直以来都有做开发的想法,个人情况就是了解的东西挺多,但不是特别深入,也没有什么项目经验。面了6家互联网公司,全部凉凉。究其原因,首先是项目经验不足,加上基础(例如计算机网络、操作系统等)掌握得不牢靠,对自己的定位不明确,导致学习得不够深入,以此总结,以此为戒。
腾讯客户端开发工程师
先是笔试,笔试分不定向选择题和3道编程题,本人只AC了最后一道。然后收到面试通知的时间是面试前一天晚上11:00(tencent还是挺拼的)。所以几乎没有准备,也知道自己的实力几斤几两,于是就去感受一下大厂的面试气氛。流程如下:
1.先是自我介绍
2.问了Android的开发经验,就把最近做的一个东西大概讲了一下
3.在实现的过程中遇到了什么问题,如何解决的
4.Activity的生命周期
5.Java的GC
6.怎么实现UDP的可靠传输
7.因为面试官看我了解的不是很深入,于是就问到了我Android中最擅长的一个部分
8.Android动画渲染
9.最后看我回答的不是很好,就接着问了一些基础问题,例如快速排序,计算机网络的一些协议。
最后面试官给出的建议就是:找工作应该务实(因为看我简历上写的研究方向是和深度学习有关的,说道现在的深度学习、大数据处于泡沫),要注重开发和基础(例如计算机网络、数据结构),虽然面试感觉很不好,但收获还是有的。
华为IT应用软件开发工程师
同样,先是笔试,笔试就只有3道编程题,本人只AC了第一道(好菜好菜)。3月20号左右笔试完,面试时间是在4月中旬,因为受到腾讯面试的影响,觉得自己反正都进不了,就没有认真对待,发现自己挺愚蠢的。流程如下:
1.自我介绍
2.问简历你做过的东西,什么架构啊,怎么实现的
3.快速排序(手撕代码)
4.看我提到了Android,就问了Android的架构
5.Java的GC
6.C++的纯虚函数和虚函数,以及多态的问题
7.C++变量的存储类型在内存的位置
8.写一个表达式,取int型变量的第n位(低n位或者高n位)
因为知道自己答得很差,按常理来说应该一面过了就会安排二面,然后面试官直接让我回去了,就知道已经凉了。也不能怎么样,只能怪自己没有好好重视基础,没有好好准备,只能默默向菊厂告别。
BIGO客户端开发
重头戏来了,这家公司的面试是我最有自信的一个,准备得也挺充分,面试的感觉也挺好,没想到等来的还是拒信,很是难过。广州这边的流程是,先去华工现场笔试,笔试分不定向选择题、代码修改、代码填空和2道编程题。几天之后收到面试的通知,地点在华工中心酒店。面试细节如下:
一面:(由于问题有点多,这里只记录了一些印象深刻的问题)
1.自我介绍
2.介绍你做的项目
3.原子操作(面试官写几个语句让你判断是不是原子操作)
4.在二叉树中找一个子树(手撕代码,一开始我还傻傻地和面试官说思路,面试官不屑地说我不要思路,我要你写出来),因为没做好手撕代码的准备,最后冷静,临场发挥写出了代码。
5.M级台阶,n种方案(一次走1步、2步、3步),有几种走法(手撕代码,第一感觉就是排列组合的问题,写完之后,忘了加异常处理,导致代码鲁棒性不高,简直是硬伤,貌似好像《剑指 offer上有》)
6.HashMap的实现,以及冲突的解决
7.还有一些零零散散的问题,记不得了
一面持续了大概一个小时,精力耗费已经过半,然后等待了15分钟左右进入二面
二面:(主要是问Java和Android)
1.自我介绍
2.面试官了解了一下我Android的情况,然后说,好吧,问你点基础的吧(感觉上是很nice,其实这已经是不打算要你的信号)
3.Activity生命周期
4.安卓四大组件,大概怎么用
5.Framelayout和Linearlayout布局的实现源码
6.Binder原理
7.Java的四个权限修饰符,不指定,默认是哪个
8.Android的消息机制(Handler)
9.线程和进程的区别
10.生产者、消费者问题
11.堆排序
12.操作系统LRU算法
13.设计模式(观察者模式)
14.一些若干线程的问题
15.内部类分几种,匿名内部类能否访问外部的资源
16.volatile关键字,原理
还有一些问题记不清了,二面面试官很和善,你不会的问题还会帮你解答,还说没事没事。二面持续了大概50分钟左右,二面面试官让我在外面等,这时候已经将近下午1:00了,感觉身体被掏空,HR让我回去等电话三面,因为到饭点了,当时以为稳了,其实就是一个幌子。过了一个星期都没有消息,然后主动出击问HR,最终还是Over了。最可惜的就是这次经历,感觉挺好的,就是不能如你所愿。
快手测试开发工程师
几天后收到了快手的面试通知,早在半个月前在牛客网做的笔试。面试是视频面试。
细节如下:
1.自我介绍
2.问了一些Linux的命令(权限相关的)
3.计算机网络,网络层有哪些协议,TCP三次握手详细描述
4.Http协议的一些问题
5.状态码代表的含义
6.数据库的SQL语句(不是简单的CRUD)
7.写代码在牛客网上的编译器运行,和二分查找相关的(由于本人误将>号写成了<号,导致程序运行与预期不相符,这也是面试大打折扣的原因)
8.如果一个App要更新,要从哪些方面测试
9.为什么要做测试
10.Android Activity切换时发生了哪些方法调用
大概记得的就这么多,其实测试岗也不是想象中的那么好面,在最后的提问环节,我问了面试官,如果我想做测试的话,应该做那些准备。他说,因为测试靠的就是发散性的思维,所以很多大厂在面试的时候,都会问一些考验发散性思维的问题,例如问题8。面了也将近一个小时,虽说颗粒无收,但还有有一丝丝收获的吧。
虎牙测试开发工程师
最坑的就是虎牙的面试,之前投简历的时候,直接筛掉了简历,不知道为什么突然打电话让我去面测试岗,但我投的并不是测试岗。将近一个半小时的车程到了欢聚时代的大厦,进了虎牙公司等了半个小时,面试让我做了自我介绍,然后看了我简历,说我做的东西和他招的不符合,我主要是做Java的,他是做Python自动化,没几分钟就委婉地把我给拒绝,面试官是一个年轻的小伙,虽说表达了他的歉意,但心里还是不爽了。最后面试官送我出公司门的路上,先是肯定了我,然后和我说,还是地做深入一些,反正就是好好学吧。
4399Web后端开发
最差的一次面试体验,面试官的轻浮态度让我直接想走人不面了。所以也没好好做总结,细节如下:
1.session和cookie的区别
2.状态码
3.浏览器缓存
4.实现下次自动登录
5.数据库,索引
6.有用过什么服务器
反正面试官对我的评价也不好,也没什么收获,反正就是好好学吧。
到这里,发现一个问题,凡是从安卓到测试到后端,能面的都面了,对自己没有一个明确的定位,没有专注于一个方向,深入去学习和了解,这是导致面试失败的原因之一。其次,就是自己的实践经验不足,开发岗很看中项目经验。当项目经验不足的时候,面试官就只能考察你的基础了,所以基础是最后一道防线,切记夯实基础。所以,现在先放低要求,去一个差不多的公司实习,积累经验,然后找准定位,深入研究,秋招再战。以此帖子作为自己这段经历的总结和对自己的警示。
点击作者姓名与作者大佬交流~
作者:丶簟纹灯影
来源:牛客网(www.nowcoder.com)
– 互联网名企笔试真题
– 校招求职笔经&面经
– 程序员/产品/运营求职实习信息
– 程序员/产品/运营学习交流社区