美文网首页
程序员面试那些事儿

程序员面试那些事儿

作者: 尹学姐 | 来源:发表于2023-03-17 21:25 被阅读0次

    作为一个参加过十几家大厂面试,且几乎零失败的选手,今天想跟大家聊一聊「程序员面试的那些事儿」。

    面试流程

    首先说一下「面试流程」,大家心里有个底。一般大厂的面试流程主要包括:

    投简历 -> HR和部门经理筛选 -> 3-4轮技术面试 -> HR面试 -> 聊薪资 -> 发offer。

    1. 投简历

    投简历分为自己投和内推。自己投简历,可以去脉脉、boss直聘等网站上找相关企业的招聘岗位,然后直接线上投递简历。

    如果公司里有认识的人,可以找他们内推。如果不认识,也可以去脉脉上找这些公司的人内推。内推可以赚内推费,一般大家都很愿意内推。

    内推的好处对应届生还是蛮大的,有些公司可以「直接免笔试」,进入面试环节。

    对于社招的话,好处应该是过HR的简历关比较容易(有些内推可以直接给部门Leader),且后续有人可以帮忙跟踪面试进度。

    所以如果能内推,最好还是走内推的途径。

    社招也可以找猎头,一般猎头手里会有比较多的岗位,而且有些猎头会帮忙去argue薪资,不过这个很看猎头的水平。

    2. 简历筛选

    一般公司的简历都会经过HR的初筛,主要看学历、背景是否符合岗位要求。

    然后HR会把简历给到用人部门的经理,进行二次筛选。如果部门经理觉得ok,会交由HR来跟进面试流程。

    3. 技术面

    大厂技术岗位通常都有3-4轮的技术面。职级不同,可能数量会有所不同。

    第1-2面:基础技术面

    • 面试官通常是跟你同级别的同事,有些公司可能只有1轮。
    • 主要考察「计算机基础」、「八股文」、「项目经历」等。
    • 通常会有写「算法题」的环节。

    第3面:深度技术面

    • 面试官通常是你的上级,可能是你的「直属上级」。
    • 主要会围绕你之前做过的项目进行「架构层面」的考察,比如「如何做技术选型」、方案的优缺点比较等。
    • 可能会出算法题,但是算法题一般不难,更多的是看你对项目的理解。

    第4面:技术架构面

    • 面试官通常是你的+2,也就是上级的上级,很可能是部门的「技术负责人」。
    • 这一轮面试很少会涉及具体的技术细节,通常会就一些「大的方向」展开讨论。
    • 比如对xx技术的看法、印象最深刻的项目、未来职业发展规划等。

    4. HR面

    HR面就比较轻松啦,主要会问一些比较主观问题,比如个人的优缺点、如果意见和上司不一样怎么处理、为什么换工作等。

    关于「为什么换工作」这个话题,通常不要说当前公司如何不好、领导如何差劲等理由,最好是从个人发展的角度出发,找一个理由。

    比如觉得公司晋升无望、发展天花板比较低、做的事情和自己的个人发展方向不匹配等等。

    5. 聊薪资

    到这个环节,恭喜你,offer基本就稳啦。

    通常是负责招聘的HR来谈薪资,大概会问你现在的总包多少,在这个基础上希望涨幅多少等。

    这个时候提的涨幅,尽量比你的「心理预期要高一些」。

    可以提前准备一下当前的「总包」数据,包括月薪、奖金、股票、期权等等。股票按照当时的价格进行计算。

    面试准备技巧

    1. 准备简历

    准备简历是找工作的第一步,也是一个很好的梳理自己做过的项目,整理知识体系框架的好机会。

    简历主要包括:

    • 个人信息
    • 教育经历
    • 专业技能
    • 工作经历
    • 项目经历
    • 荣誉奖项(可选)
    • 研究成果(可选)
    • 专业认证(可选)

    1)个人信息

    个人信息需要包括名字、联系电话、邮箱、求职地址、求职岗位等信息。

    PS:联系电话一定要填写正确,HR会通过这个电话和你进行后续的沟通。

    2)教育经历

    这个没什么好说的,就一句话:「如实填写」。

    因为一般大公司在入职之前都会进行背调,简历造假是很难通过背调环节的。

    3)专业技能

    这个地方列出来的专业技能,一定是你「非常熟悉」且「有把握能讲好的」。

    因为面试官大概率会拿着你简历的这部分,挑选他感兴趣的内容,向你提问。

    所以,你可以有意的,在这里列出「擅长的方向」,「诱导」面试官往你擅长的领域去提问。

    这个部分在你的面试过程中是需要「动态调整的」。

    比如在面试的过程中,发现自己对某知识点掌握并不深入,总是容易被面试官问住。那么就可以将这个技能点先从这一part中移除,避免后续再被问到回答不上来。

    4)工作经历

    工作经历部分也是「如实填写」即可。

    5)项目经历

    项目经理部分是整个简历的最「重点部分」,也是需要花费最多时间的部分。后面我再单独出一篇文章讲讲项目经历应该怎么写。

    2. 准备面试

    一般客户端面试需要准备以下几个方面的内容:

    • 刷题算法
    • 项目经历
    • 基础知识

    1)刷题算法

    可以参考我前面的一篇文章Grind75题目总览来准备,先把「Grind75」的题都刷一遍,找到自己薄弱环节在哪,再针对性去补充相应的知识点。

    如果是第一次准备算法的同学,建议先去看看相关「书籍」,对基本的数据结构和算法有了解了,再开始刷Leetcode。

    不建议基础不好的同学直接去啃「算法导论」这种书籍,因为这本书难度还是比较高的,而且需要花费很多的时间。可以从「剑指offer」,「程序员面试宝典」等开始看起。

    2)项目经历

    简历上写的所有项目,一定要能解释清楚,所有用到的技术都要会。

    有些同学可能觉得自己都会了,但其实一问起来就漏洞百出。可以找相同方向的同学、朋友等,帮忙进行「模拟面试」,来测试自己是否对简历中所写的项目完全掌握。比如Android开发的同学,就可以找一个同是Android开发的朋友,来帮忙进行模拟面试。

    另外,需要重点准备几个「亮点项目」,比如最难的项目、最有成就感的项目等等。这些项目面试的过程中肯定会被问到,所以最好提前准备。

    需要重点准备的项目:

    • 时间近的项目:越近期的项目越容易被问到
    • 和面试岗位交集多的项目
    • 独立负责的项目

    3)基础知识

    关于基础知识八股文的准备方法,我认为最好的方法就是「列大纲」,进行系统性复习。后续文章我会分享我在找Android高级工程师岗位时准备的复习大纲。

    总结

    今天的文章就先写到这里啦,后面我会出几篇相关的文章,包括简历上的项目经历如何写,面试临场如何发挥等等,也会分享我当时准备面试收集的材料给大家~

    感兴趣的同学可以先点个关注,我们下期再见❤️~

    相关文章

      网友评论

          本文标题:程序员面试那些事儿

          本文链接:https://www.haomeiwen.com/subject/bnotrdtx.html