我自己是不太想做这个分享的,因为本人一贯高开低走,肯定是身死人手为天下笑(我记得是贾谊的过秦论)。
我这次分享以后,肯定一堆大佬说:你XX啥都不会,问你XX你答的XX,你脸不红吗??就你这个水平的还找工作,你学的啥????建议你转行。
不过我自己脸皮厚。再说大家现实也不认识是吧。
面试评价:面试官态度很好,我的框架回答的一坨X,我写的代码普普通通。
面试内容:
面试还是是一道题,难度的话还是中等……时间30分钟。
题目简化下一句话:找到长数组中包含短数组所有的元素的最短子数组(短数组元素各不相同),返回左右端点。
华为题库深不见底,统统都是中等题……每次都是新的……
开始写代码,我突然发现:我忘了集合咋求并集了!!!!!!!!!,考试的时候忘了集合&咋用了!!!于是用了if……左右指针也弄错了一次……
大家凑合着看……(我优化了一下自己写的代码)
big = [6,5,9,0,2,1,3,5,7,9,1,1,5,8,8,9,7] small = [1,5,9] set2 = set(small) minLen = 10000 ans = [] for i in range(len(big)): for j in range(i, len(big)): set1 = set(big[i:j + 1]) if set1 & set2 == set2 and j - i + 1 < minLen: minLen = j - i + 1 ans = [i, j] print(ans)
用了20分钟写了个暴力……我老脸都丢尽了
八股
然后问自己做的啥,我照实说了。
问了一下自己如何排查故障的。
然后理所当然的开始八股(本人不擅长八股),我也开始变身不知道先生:
第一,kill -9是如何传递的???
这个我不知道,所以我说:我不知道,可能是linux给进程一个信号量,让java自己kill。如果kill不掉可能就直接把线程占用的资源给释放。百度了一下,似乎对了
第二个问题:问的是线程之间的通信。
我就知道一个共享内存,然后再说了一个进程结束自动发送型号给另外一个端口。
于是面试官继续问:那么如何保证A进程的数据是给b的??
我表示:我不知道。(其实我觉得可能是消息队列或者端口通信)
第三个问题问的是:如何排查端口异常?端口由哪个进程负责??
我:第一,开发知道,看开发给的开发文档。第二,切换root查看端口进程到底由哪一个程序侦听。
面试官:好像这样可以(似乎他们不用这个技术……他们有自己的工具??)
问:如何查询程序现在有多少个线程?
我:这个……直接手撕代码吧……(XX的我咋知道华为如何查线程的?本地开个debug看堆栈???)
第四个问题:如何排查故障??
我的回答:查日志,java会有堆栈溢出的日志。看在哪一行出现的问题,是什么问题。如果是数据丢失那么就提供报文。
第五个问题:
你用过XX测试工具吗??
我:不知道。
第六个问题:问我如果线程释放了下一次起来还要用某个变量咋办?
我:这个持久化到磁盘吧???用JSON存一下或者直接序列化,进程是kill掉那么是必须持久化的。
面试官:不杀进程。
我:static(static似乎可以吧,所有类共用一个值)
第七个问题:
你用过XX工具吗?
我:我不知道。
第八个问题:
mysql如何查询连接数和谁用的这个连接?
我的回答:show processlist,里面有ip地址和执行的sql。
第九个问题:如何启动一个线程?
我: extend 多线程类和 implements Runnable(我忘了多线程类是哪个了,天天runnable了)
第十个问题:问Java的垃圾回收机制。
这个我不说我咋答的,用坨作为修饰是比较合理的。我只知道一个gc,一个定时清除,老年代我自己没回答,怕说错。
最后面试官问:你有什么问题
我问:这个是啥项目组呢?
面试官说:我不知道,我是交叉面试的。也就是你第一面的是你要去的那个部门,第二面是交叉面。我不负责你的部门,也不知道你的上一家是咋谈的……
我表示理解。
菜鸡伤不起啊……我是真的不知道。补习基础去……
面试的一些其他细节
大概一个周前,有个电话和我做意见约谈。意思是这样的:我们华为意见放弃了正式招聘,所有的人都是德科OD转正式员工,所以不要有意见。
然后就问了问期望薪资。
期望薪资是没得谈的:华为都是定级制,入职以后看表现给级别。
德科也说过:机考还有心理测试的时候多考几分有助于定级。德科似乎入职都是13或者14级。
长沙这边。
我稍微改了改简历,等待的时候大量华为的OD来找我。一个周七个,今天就三个。
我问了一下,就是华为是公司,德科是od外包,德科招聘不到的,就把岗位给中软、软通面试。
稍微问了一下,得出的结论是一致的:一次只能面一个。
比如说:你面试的是上海的岗位,然后再上海的岗位没有通过的时候,你不能面试其他任何华为的正式岗位。
等得我人傻了。
然后问了一下,他们说给我优先考虑南京的岗位。我说:那长沙不是有吗???
然后od的回答是:hr要过年的嘛。可能有刷kpi的嫌疑。那边也不是不面试你,而是等到过年以后。也就是:过年前先把人拉到过个好年,过年后在进行面试。
我:懂。(kpi这种东西都有的)
第二个是:长沙这边压级压得比较重,他认识一个刚毕业的985硕士压14级,难受不?
第三个是:业务比较简单,对你发展不利。
我:懂。
本人不对获得的信息做任何真实性保证,大家自己判断。
然后是:背调这个事情,华为似乎对空窗期要一个解释。
我是12月15号离职的,现在是25号,然后给od说,od说如果有两个月以上的空窗期不太好,一个月可以。
???两个月都不行的吗???
面试结果
本菜鸡定级14,等最后两面。按照我的性格估计还有概率挂。
定的是Python测开。java的基础还得继续补。
od说了:哥们你的机考400,一面二面是真的惨,得分很低。(一面答得不好可能面试官不太高兴,二面我面试python逮着Java狂问,谁顶得住)
但是你机考满分啊!!!加分太多了!!!!!所以凑合14。
总结一下:机考是一个分,心理测试一个分,一面二面写代码,写出来肯定有下一面。每个面试笔试一个分,最后把学校的加分啥的加起来,这些分加起来确定你是否能够入职和级别。(但是我不知道如果一面二面代码没写出来是啥结果,会直接挂还是咋地),所以是14。
面试要学历证明,要四六级、身份证、要半年流水,还有一些文件要签。
我大学的时候考了4次,第一次420(425分过),最后441低空飘过。没有过四级的哥们麻溜去补吧。华为要,浙江宇视也要,除了要学历还要四六级。不过四级很恶心。
总结一下华为:机考3个代码,性格测试;一面写代码说思路,八股,给评分;二面交叉面写代码说思路,八股,给评分。面试考题和得分会决定你是否能入职和定级。
不过细节是:一面二面没有时间复杂度要求,大家能暴力就暴力(华为二面给我搞困难要求30分搞定,面试官你不看题难度的吗???)面试就一个小时,写代码至多给你半个小时……复杂度写了就当没看见行了
然后OD劝我:但是你得补一下薪资水平,你之前要的太低了。你知道你的薪资涨了多少吗?2.5倍(其实3.5倍都有了)啊!!!!薪资要的低代表水平不行啊!!
你说长沙工资低,那也不是这么个低法啊!!!你的薪资比我们最低的级别的最低工资还低。你说你之前工作的XX,人家也算正规几千人的大企业,就这么点谁信啊???
这是我某个月的工资条:
我也不知道为啥:我做的是妥妥的运营商的项目,去的是和华为有关系的X潮,搞的是每个月几个亿的数据(虽然是简单的增删改查,系统也差),XX的工资给5K还发不齐!(如果愿意的话去看之前的评论)
最后无语了,给od说:项目和项目不一样啊。
湖南这边的薪资,0基础或者一年基础的java开发基本上期望薪资是6-8K(我看过……2000人的公司,啥公司我就不说了,银联外派、普本,银行),硕士刚毕业拿的8K。
X潮一年经验的开发是:单休到手10K(不是外包,正式的java开发)。工作十年的开发薪资都不到20K。你一个工作一年的人的薪资,直接薪资就爬到十年开发的头上来了,你觉得可能吗?
测开不能给的比开发高吧?搞Python的不能比搞Java的薪资还高吧??所以给个10K8K的正常吧?
刚才X潮的给我补了大概1400多的工资……可能是之前少发的工资,或者本人的年终????2333钱给了就拿。
最后
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/290539.html