目前拿到的知名公司offer有腾讯和新梅大学(大众点评,美团)。一直想写一篇面对面的经文分享给大家,但是因为一些琐碎的事情一直拖延着。我今天花了一些时间来写它。很多人分享了很多面对面的经验,在很多社区也有很多有相关信息的面试题。很多面试题也有相关分析,但是光刷这些面试题不一定能找到你想要的工作。下面主要介绍一下我在面试前是如何准备的。我经历的一些面试是因为我是大三学生。从今年三月开始,我开始找工作。一开始不知道怎么办,就简??单的写了一份resume,里面有自己的一些相关学习经历。一开始选择了一些自己觉得不错的小公司,得到了一些面试的机会。第一次面试很紧张,不知道跟面试官说什么,不知道怎么自我介绍,不知道该做什么,做就是被问傻了。你可以想象,我不能很好地回答所有的问题,因为基本上面试官想到什么就问什么(他可能是一个准备好的问题,但我真的觉得我的第一次面试是他想到什么就问什么).面试完好好总结一下,然后就开始了第二家公司。如此反复几次后,我发现自己不那么紧张了,开始主动起来,推开面试官。所以现在回想起来,多面还是可以积累不少经验的。不管你的表达能力有没有提升,我遇到的面试官都很好。一开始他们可能会很紧张,但后来感觉就像在聊天。两个志同道合的人在聊同一个话题。在这个聊天过程中我也收获了很多以前不知道的东西。美国大学面试新体验美国大学面试官一定喜欢。其实,面试过后,你会发现自己不应该很紧张。美大的面试官很随和。具体的面试题我就不说了。基本上,我还是注重基础。然后最后20分钟左右用来聊一些经验。我在谈论一个话题。因为一开始讲了一些基础知识,然后讲了我项目中图片的动态缓存方案。一直在讲这个,最后提出了组件化的开发方案。我们一直在谈论这个。话题。收到通知就结束了。在第二方面,它是视频方面。在一个平台上,有视频,我在那个平台上写的代码,对方也能看到。我想给你一个建议。别人看你写代码你可能会紧张,但不要太紧张。慌了,正常玩我觉得还好,但是对方主要想看的代码风格是什么?是不是很规范,注释,还有一些变量的命名,这些是不是很规范?另外就是看大家的处理能力了。其实给你的问题都不难,都是一些简单基础的东西,不会让你现场写个麻烦的布局或者牛逼的特效。这次采访大约持续了一个小时,在最后的部分时间里,我聊了很多生活中的事情。比如,你来美国大学后想学什么?您对美国技术的哪个方面感兴趣?仅此而已,说说你喜欢的吧。整体两轮面试还是收获不少。毕竟现在在学校不知道外面的公司怎么样,通过面试还是可以学到很多外面的东西的。腾讯的面试经历腾讯的面试就是经过腾讯的笔试,然后一边,一边,***HR面试,然后等消息,最后拿到offer。笔试基本上是一些基础知识,比如数据结构、计算机组成原理、操作系统、计算机网络等等。上课认真听讲,笔试前刷刷题问题不大。腾讯这边主要讲了一些基础知识。我去面试了移动客户端,但是整个面试中移动相关的问题很少,主要是讲了一些基础知识。如果想拿到腾讯的offer,我觉得基础很重要。至于面试题,我觉得没什么好说的,因为这些题都不是固定的。面试官主要是围绕着你的简历跟你聊。你的简历说你的APP涉及到下载,那么网络一定要问,问什么?我觉得TCP、HTTP值得一问。有一本书叫《程序员的自我修养》。我觉得这本书如果有时间应该看看。看到很多人抱怨我去面试iOS,面试官竟然是Android。从我个人的角度来看,无论是iOS还是Android,在很多设计思路上都有很多共同点。的。只是说出你的想法。个人觉得思想还是很重要的。我对腾讯二面印象最好的就是面试官说的,挑一个你觉得还可以的项目,然后我们聊点东西。从这句话,我觉得很多人都能感觉到,第二次见面主要是聊你,一定要有一个project。并为这件事做好准备。也没有具体问题。每个人的项目都不一样,实施方案不可能完全一样。所以不可能谈论完全相同的事情。第二面的经验太多了,主要是认真准备一个项目。面试前的准备是我最想和大家聊的,因为要重点说说面试前的准备,或者说要准备什么。很多人在面试的时候不知道该说什么,也有很多人说要欺负面试官,不能被面试官欺负。但是怎么做呢?不让面试官说话吗?我们为面试官设置的问题?这一切都不现实吧?但是经过一些准备,我们还是有可能给面试官“指定话题”的。怎么做?举一些简单的例子,比如:你的简历上写着你对Socket有一定的了解,那么自然要谈TCP。你应该提前做好准备,你可以自己预测。当面试官让你听到你使用Socket的时候,你自然会去TCP。如何准备?网上查了很多人,经典的TCP就是连接时三次握手,断开时四次挥手。您还简要检查了什么样的三向握手和四向挥手,但这就足够了吗?为什么我们不做更深层次的准备呢?比如为什么连接了3次,为什么连接了4次?如果连接两次会怎样?三次握手中一共发送了三个数据包,那么它只是三个函数吗?再深入可能会涉及到TCP的头部结构,以及TCP连接,断开连接时SYN、FIN、ACK的有效值设置是多少?我相信你会因为说了这一切而得到加分。当然,你要说好,不代表面试前就可以查。你必须很好地理解它。这就是我所说的准备面试的意思。不为面试而面试,而是为面试学习和提升自己。我可以再举一个简单的例子。关于图片缓存,在iOS和Android中有很多动态图片缓存方案。如果简历上写着做过相关操作,我觉得还是值得一问的。知道你会被问到,你必须在面试前做好准备。在准备过程中,我觉得有必要总结一下我的解决方案的优缺点,以及你打算如何解决你的不足,或者你知道的一些知名的开源库是如何解决的。有什么可以借鉴的,所以我觉得一定要给分,至少你看过开源库,认真思考过。我看到有人问图片缓存怎么做的时候,他简单的说通过URL下载图片,保存下来使用。这个话题有很多值得一谈的地方。就这么说吧,我觉得面试官是不可能得到他想要的答案的。如果他没有得到答案,他必须去问你。这时候你明显会很被动,接下来就是被面试官逼走。有人会问我们能谈什么?让我举一些简单的例子。例如,图像缓存方案必须涉及图像的下载。既然是下载,那么如何回调下载进度信息呢?如果下载失败怎么办?下载完成后如何回调?下载肯定涉及到多线程下载,那么如何管理这些线程呢?线程管理器的结构是怎样的?甚至一个URL下载连接正在下载,另外一个地方发起了同一个URL的下载。在这种情况下,我认为为了节省资源,不应该再开一个新的线程来下载。那么你处理过这种情况吗?怎么做?其实,有很多值得思考和讨论的问题。对于缓存,你在做磁盘缓存?还是内存缓存?或两者?是否支持磁盘空间大小设置,图片有效期如何设置,图片清理工作。相信无论是iOS还是Android,那些大名鼎鼎的开源库都不可能简单的有一个清理计划。必须支持局部清理,或者说全部清理和局部清理的依据是什么?比如根据图片的有效期,我们需要在我们设置的有效期过后清理这部分内容。此外,如果所有缓存文件的总大小超过这个大小,那些过早的文件将按照文件最近修改时间的倒序每次递归一半被删除,直到缓存的实际大小小于我们设置的大小***使用空间。有很多事情值得一谈。当然,你感受得越深,理解得越深,你就会体验得越深,你就会表现得越好。刚才讲的东西我觉得讲20分钟是非常容易的,因为里面有太多的东西和值得注意的地方。准备一个项目,找到自己项目中的亮点,然后认真总结,看看别人的一些解决方案,看看自己有什么不足。你没有的是你方案的缺陷,看怎么解决。在我看来,缺陷还是很重要的。没有完美的解决方案,好的解决方案只能满足当前所有的业务需求。根据您的业务需求,谈谈您的设计理念。项目不需要太多,认真总结一个就可以了。关键是很多人做了很多项目,却没有认真去理解和总结一个。做了也没用。只是代码熟练度提高了。接下来要说的不是为了面试而面试,而是为了提高而学习。提高了,自然就能从容面对知名企业的面试。
