普通本科进大厂的经验

公众号后台常常有朋友留言,让我分享一下进大厂的面试总结,今天就写一篇文章结合本身的经历谈谈。另外,上周发了一篇 ” StackOverflow 周报“ 你们反馈的效果不错,后续会继续更新。此次周报都是 Java 语言,没有看到的朋友能够点击去看看。回过来讲进大厂面试,这件事我打算按照时间的维度拆解一下,分红事前、事中和过后分别说说。html

事前

1. 算法的准备。算法是最基础的内容,也是进大厂的必备技能。一听到算法可能有些朋友比较头疼,我本身也是挺头疼的。一方面咱们平时工做直接写算法的时候并非不少,另外一方面学习算法要付出大量的时间,而且短时间内没有明显效果且枯燥。这方面准备我从大学就开始了,最开始看书,刘汝佳的《算法竞赛入门经典》,而后天天都在 UVA Onlie Judge 上面刷一道题给本身定的最低标准是不管多忙,天天必须刷一道,保证量不能少。至于为何量不能少,其实就是“破窗理论”,若是某一天你没坚持,有其一就有其二,长此以往就坚持不下去了,这项计划最后就废弃了,还好本身最后坚持下来了。毕业后参加工做仍然刷题,刷 leetcode,由于工做后时间相对没那么可控了,不能保证一天刷一道。因此,对于如今想准备算法的朋友,若是有时间天天刷刷题仍是有必要的,若是没时间或者就是为了应付面试能够买一些算法面试的课程,有针对性的突击效果会更好。从个人面试经从来看社招大部分岗位算法不会像校招那么难,掌握基本的算法,会算时间、空间复杂度,多反复练习,这一关没有想象的那么难。程序员

2. 工做内容。算法考察的是程序员的基础能力,而工做内容就是考察实践能力以及解决问题的能力。这块总结有两点,第一,须要对本身用的技术、框架的核心原理和运行机制要很是熟,若是有精力能看一些核心源码绝对是加分项。第二,要总结平时遇到的每一个问题,好比:内存溢出、系统不稳定、吞吐量低以及高时延等问题,除了要记录如何解决的,还要寻根溯源了解问题的底层原理,而且要上网多看别人是否遇到一样的问题以及是如何解决的。对于这两点我平时都有注意积累,但惟一的遗憾是没有及时的整理、输出。有些问题当时解决了,也了解背后的原理了,可是不及时记录致使时间长了之后基本上都忘了。因此这里强烈建议各位朋友必定养成善于总结、记录的习惯,一方面总结的过程自己就是提高的过程,另外一方面防止之后忘记。面试

3. 新技术。对于一些平时工做中没有用到的新技术也要有必定的了解。若是面试官提几个新名词,你都是“不了解”、“不清楚”之类的回答,那给人的感受就是你并非一个对技术比较热爱的人。对于工做 1-3 年的朋友,新技术虽然不须要熟悉底层原理,但起码知道技术的做用以及适用场景。而对于 3-5 年的朋友,最好可以了解新技术背后的架构设计是怎么样的,以及相对于现有技术的改进是什么。这一点其实我本身的作的是不够的,还须要继续努力。算法

事中

每一个公司面试流程不太同样,通常来讲,一面先自我介绍,而后再考察基础的算法、编码能力和技术或者框架的原理。二面考察实际的解决的问题能力,以及系统设计的能力。三面不太考察具体的技术,而是考察总体的素质,好比你对项目的总体掌握程度,对本身的角色和定位是否定识清晰,以及如何跟其余业务团队联动。HR面基本上就是最后一面了,固然这一面也很关键。下面分解说说每一个过程当中如何面对。架构

一面过程当中通常会给一个算法题目要求手写代码。首先先梳理思路,若是没有思路不必上来就写代码。若是这个算法题想了一段时间仍然没有思路,这时候可让面试官给你一些提示。这个阶段除了算法的正确性还要注意代码的书写规范,以及异常处理,这些都是体现程序员基本素质的地方。能够考虑先写伪代码,把算法思路理顺了、变量定义清楚、把异常状况考虑全了,最后把最终代码规整地写下来,这样会给面试官一个比较好的感受。毕竟面试官之后可能要跟你一块儿写代码,若是看到代码写的乱七八糟,变量名没有任何可读性,也不考虑异常状况,那他可能不太敢让你经过面试。对于技术或者框架的原理的考察没有什么技巧,就在于本身实际的掌握状况和积累,平时能够多总结,输出,面试的时候直接拿来复习效果更好。框架

二面时面试官会让你介绍平时工做中遇到的哪些问题以及怎么解决或者优化的。做为求职者应该先简单介绍一些业务背景,以及遇到的问题,而后再说说本身的优化方案,最终落脚点是对业务的提高是怎么样的以及技术上有什么样的成长和积累。由于优化每每是要结合业务的,而面试官不太了解你的业务场景,因此回答问题以前先言简意赅地介绍一下业务场景,既能够给面试官一个比较好的体感,又显得本身的回答逻辑清晰,更有条理性。这个环节若是网上有些优化场景与你的业务相似也能够说说,这其实也是本身学习能力的一个体现。在你的介绍过程当中面试官确定会打断你问你一些问题,对于不一样经验的求职者,面试官考察的重点也不太同样。我本身的理解是这样的,对于1-3年经验的人重点考察原理是什么,怎么优化的;对于 3-5 年经验的重点考察原理为何是这样,而不是那样。若是面试提问了一个本身不会的问题,不要说 ”我不知道“,应该说”这个问题以前没关注过,我先思考一下“。给本身一点时间思考一下,你能够假设本身在作设计时若是遇到这样的问题你可能会怎么作,即使不会也能够谈谈本身的想法和理解。若是真的没有任何思路,就诚实的说“我不知道”就行了,但这个“我不知道”跟以前的不同,这个是通过本身思考以后的结果。记得我去某团面试遇到过一个问题 “运行 Spark 任务,会指定 CPU core 个数,你怎么知道系统必定会给这个任务这么多的 CPU core”,我想了下确实不知道,而后面试官一笑,说 “我也不知道”,固然这并无影响我拿 offer。二面可能会有系统设计问题,由于谈本身的业务每每是本身熟悉的,这时候面试官会给你一个他们的业务场景,问你如何设计,可能存在的问题以及优化。这个时候就要先深刻思考一下,而后跟面试沟通需求和问题,不断地完善设计。这个过程重点突出本身的思考以及和面试官的沟通。学习

三面要注重你对本身项目总体的把握,清晰的知道本身的角色和定位,以及与其余业务团队的职责边界。切忌不要对现团队有负面的评价。以前面某东面试官就提过这样一个问题,“你对如今团队最不满意的地方是什么”,相似的问题要考虑清楚再回答。即使现团队确实很差也要客观评价,不要掺杂过多的我的情感。优化

HR面要好好重视,他们每每有一票否决权。HR 可能不太了解技术,因此对于技术和业务的介绍必定要熟练、自信,不要让人家以为你不专业。其次,要凸显你的工做经验以及在团队中的沟通、协做能力。最后谈薪资是你们比较关心的,可是对于这块我没好建议,个人经验是能够多面几家,对于想去的公司指望薪资能够保守一些,对于不想去的能够报的高一些,面几家你对本身的薪资水位就有个大概的估计了。这个阶段面试的心态总结俩字:自信。编码

过后

其实一次面试的经验总结很是宝贵,经过一次面试你就知道本身哪些方面表现的很差,哪些方面表现的让面试官满意。对于表现很差的地方要查漏补缺,避免二次跌倒。对于表现好的地方更好进行总结,由于这会是你下一场面试打动面试官的亮点。能够把本身要表达的东西画个思惟导图,而后不断在脑海重复它,不断地强化。多面试几轮你会发现你的表达愈来愈流利,愈来愈自信。spa

上面都是我本身经历总结的,我本身也是这样作的,这份总结更适合工做 5 年内的朋友。固然这可能不是什么万能钥匙,毕竟我本身也有面试失败的时候,但参考一下对你绝对是有帮助的。目前经济环境很差,建议各位换工做也要谨慎一些,很差轻易裸辞。但愿正在面试的朋友都能顺利。

 

欢迎关注公众号「渡码」,分享更多高质量内容

相关文章
相关标签/搜索