0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件工程师面试前需要准备什么

工程师人生 来源:网络整理 作者:工程师吴畏 2018-10-24 09:49 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文作者 Connor Leech 是在湾区工作的一名 Web 开发人员,他在本文中面向那些正寻求找到一个软件工程师岗位的求职者,探讨了他们在面试环节可以采取的准备工作。虽然各个公司对于评估人才有自己不同的标准,但软件工程岗位面试大致可分为两类:特定领域知识面试和计算机科学基础知识面试。求职者了解公司评估方式之后,也就可以有的放矢,分别采取相应的准备策略。

作为一名软件工程师,能否通过技术面试对于自己的职业发展至关重要,但是求职者往往很难知道具体怎样去为面试做准备。因为不同的软件公司采用不同的方式对工程师进行评估,而在这种压力很大、同时又很重要的场合,毫无防备的前去面试似乎是最糟糕的一种状态。

幸运的一点是,这些技术面试通常可以分为两大类:特定领域知识面试和计算机科学基础知识面试。对于想走上软件工程师职业发展道路的求职者来说,了解这些评估人才的不同方法是很重要的一点,从而可以在他们最需要改进的地方采取措施进行进一步的提升。本篇文章介绍了每种面试类型可能出现的问题,以及你可以采取的准备措施。

特定领域知识面试

特定领域知识面试通常涉及到你最熟悉的技术领域的具体知识点。例如,如果你主要使用 Angular 1.x 进行前端开发,并且面试公司又有 Angular 前端,那他们就可能问你关于 Angular 控制器、指令和服务的相关内容。也就是说,你需要做好准备去建立、展示和讨论 Angular。

特定领域的面试重点关注的是你已经实际构建起来的东西,因此要想顺利通过这些面试,最好是你已经构建过相关技术的项目。你应该为自己的工作而感到自豪,不必感觉不好意思,而应该深入探讨具体项目的技术细节。项目最好是近阶段完成的,没人会愿意去听你去年写的那些代码,你自己也会对这种陈旧的项目感觉厌倦,面试效果也欠佳。

特定领域面试的另一个常见策略是看求职者能否构建一些非常棒的产品或者是排除实际存在的一些问题和故障。这通常是让求职者带回家去完成的一种测试,求职者一般有 24-48 个小时的时间来完成这些测试。例如,如果你是一名 Laravel 开发人员,并且你面试的公司恰好也使用 Laravel,那他们可能会要求你构建公司产品或者是公司定期创建的产品的微缩版本。对于这种带回家做的测试,做好投入大量工作的心理准备。准备好启动模板,不要抗拒去 Google 搜索答案,发送电子邮件寻求帮助和使用外部工具包这些做法。因为能否通过特定领域面试最重要的一个衡量标准是你能否构建出有效的产品。

计算机科学基础知识面试

计算机科学和基础编程面试明显不同于上文所探讨的特定领域面试。计算机科学和基础编程面试是为了评估你解决问题的能力,更多的是关注找到最佳解决方案的能力,而不是简单的去完成某些特定任务。因此,面试官通常也不会问关于你是谁、你过去的工作经历或者你构建过的项目方面的问题。对于计算机科学基础面试这一类型来说,面试官的工作就是评估你的原始编程能力,通常他们是通过数据结构和算法相关的问题来进行评估。

计算机科学基础面试的问题有章法可循。因为学习数据结构和算法需要大量的准备工作和长时间的学习,你需要了解你所选择的编程语言、数据结构和算法来解决问题。计算机科学基础知识面试通常可以用六种不同类型的算法来解决:

深度优先搜索算法/广度优先搜索算法

贪心算法

滑动窗口算法

分治算法

递归算法

动态规划算法

你需要研究每一种算法,可以在 Pramp 上与其他软件工程师一起练习面试和面试问题。应对面试是一门独立于软件工程师之外的技能,你可以通过练习和重复来提升自己在面试时的表现。

计算机科学基础知识面试通常遵循的那些问题结构对于求职者来说只有通过几个小时的练习和准备才能发现。即便这些知识中的一部分并不适用于日常的编程任务,但只要你坚持这样做,你就能抓住更多的面试机会,就能收到更多公司发来的 offer。如果你的目标是获得更多的工作机会,那你一定要看一下《Cracking The Coding Interview》这本书,并且查看这一免费的面试资源来进行相应的准备工作。

哪种方法适合你?

作为一名正在寻找工作的软件工程师来说,在构建产品、学习新工具和练习面试之间存在着一定程度的相互冲突。选择关注哪一点其实取决于你所寻找的工作类型,如果你想进入 Google、Twitch、亚马逊、Uber 或 Square 等大型知名科技公司工作,那你基础知识一定要过关。在这样的情况下,你是否构建过最好、最复杂的产品其实并不重要,如果你无法通过计算机科学基础知识面试,那这些大型科技公司是绝对不会雇用你的。

相比较而言,小型初创企业通常是在与时间赛跑,他们会争取快速的构建出产品、推出产品并且推向市场。因此,这些公司通常会实行特定领域面试方式,因为他们希望了解捏可以构建什么样的产品,你最拿手的技术又是什么。

如何了解公司面试类型

在进行公司面试时,与你对接的招聘人员或者公司联系人就是你最好的朋友。你可以直接向他们询问关于公司的招聘流程以及他们用于评估候选人的标准等方面的问题。对于求职者来说,了解公司在招岗位的信息是非常重要的一点,因此他们需要主动提出这方面的问题并且仔细研究招聘职位描述信息。软件工程岗位招聘通常有好几个环节,可能包括电话面试、共享桌面远程面试和现场面试环节。

如果面试环节包括共享桌面远程面试这一环节,那最有可能考察的是求职者的计算机科学基础知识。他们会提供给求职者一个需要解决的问题,面试官会在这个过程中观察求职者的操作,求职者也可以解释自己的想法。

带回家做的项目通常考察的是特定领域的具体知识,这在一些机构和初创企业的招聘中比较常见,求职者需要在 24-48 小时内有所成就,之后再对你的代码进行展示。

普通的电话面试通常了解的是求职者的态度,进行相应的沟通并了解一些背景信息、招聘人员很难通过这已通电话获得有关你能力方面的信息。

现场面试可以涵盖任何问题,但通常是整个面试过程的最后一个环节。所以到这一环节,你应该是对你面前的这个机遇以及求职公司所用的评估方式有了一个清晰的认识。

想了解各个公司使用的是哪种类型的面试,你可以通过浏览 Glassdoor、Angel.co 上的评论或者是通过 Linkedin 联系公司当前员工的方式来获知。

小结

求职者可以通过与求职公司的招聘人员和联系人员交谈,来了解大致的面试过程。如果你不熟悉数据结构和算法,可以通过 Pramp 进行练习。做好心理准备,你可能需要细数你过去的工作经历和你已经构建而成的软件。要想在软件工程领域找到一份新工作,构建过令人惊叹的产品与了解计算机课科学基础知识这两方面同等重要。

“你越是不自信,就越是需要认真地采取行动。” – Tara Ploughman

记住这一点,并不只是公司在面试你,同时你也在面试这个公司。面试过程中你需要去处理的问题和工作往往与你被聘用之后,在这个岗位上需要去完成的工作类似。所以,你需要思考这样几个问题:他们为你安排的挑战是你所喜欢的工作类型吗?这个公司的人好吗?他们尊重你的时间和能力吗?如果这些问题的答案都是否定的,那你可以考虑寻找别的工作机会了。了解自己的长处和短处,并且享受这个找工作的过程。面试是一个很好的认识人的方式,也可是一种学习到新技术并且了解自己需求的途径。

失败和被拒本来就是生活的一部分,所以在任何时候,都要保持积极的心态,努力争取那些你所能控制的部分,对于超出自己控制的部分不要去过多的理会。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件工程师
    +关注

    关注

    8

    文章

    243

    浏览量

    21679
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    你知道电子工程师,到底分几种吗?

    第一种,硬件工程师:他们擅长画原理图、选元器件、调板子,是电路的专家、产品项目的“总导演”!第二种,软件工程师:脑子里全是代码,天天跟驱动、算法打交道,芯片怎么跑,他们说了算。第三种,固件工程师
    的头像 发表于 04-20 08:52 14次阅读
    你知道电子<b class='flag-5'>工程师</b>,到底分几种吗?

    电子工程师的双标瞬间 #电子 #电子爱好者 #电子工程师 #扬兴科技 #双标

    电子工程师
    扬兴科技
    发布于 :2026年03月02日 18:04:13

    什么是BSP工程师

    一、嵌入式系统 要明白什么是嵌入式软件工程师,我们先从嵌入式系统(嵌入式设备)说起。维基百科上对嵌入式系统的定义如下: 嵌入式系统(Embedded System),是一种嵌入机械或电气系统内部
    发表于 01-13 06:54

    工程师变身AI“指挥者”,吉利与阿里云的软件开发变革实验

    1975年,IBM工程师Fred Brooks在《人月神话》中提出软件工程的核心难题:随着系统规模和团队规模增长,复杂度会呈指数级上升。他的结论是, 软件工程“没有银弹”,没有单一技术能带来数量级
    的头像 发表于 11-13 10:43 485次阅读
    <b class='flag-5'>工程师</b>变身AI“指挥者”,吉利与阿里云的<b class='flag-5'>软件</b>开发变革实验

    人工智能工程师高频面试题汇总:循环神经网络篇(题目+答案)

    后台私信雯雯老师,备注:循环神经网络,领取更多相关面试题随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以
    的头像 发表于 10-17 16:36 831次阅读
    人工智能<b class='flag-5'>工程师</b>高频<b class='flag-5'>面试</b>题汇总:循环神经网络篇(题目+答案)

    硬件工程师面试必会:10个核心考点#硬件设计 #硬件工程师 #电路设计 #电路设计

    硬件工程师
    安泰小课堂
    发布于 :2025年09月23日 18:00:33

    招镶入式工程师1个,硬件工程师一个,

    东莞市研生科技有限公司是一家蓝牙方案公司,主营蓝牙方案的设计开发,产品包括蓝牙BLE/4G透传/AI智能体方案开发,因公司发展需要需对外招聘嵌入式软件开发工程师,对蓝牙音频/BLE以及智能IC读卡器有三年实操经验,能单独完成项目
    发表于 08-29 02:14

    电子发烧友工程师看!电子领域评职称,技术之路更扎实

    论坛分享,没评职称只能做基础电路调试;评上 “中级电子工程师” 后,被纳入公司传感器研发组,主导的低功耗电路设计方案,还被收录到电子发烧友 “优质参考设计库”,薪资涨幅达 35%,同时获得了 TI
    发表于 08-20 13:53

    做了电子工程师之后,最好拍的视频出现了#硬件设计 #电子DIY #电子工程师

    电子工程师
    安泰小课堂
    发布于 :2025年06月24日 17:45:57

    硬件工程师面试/笔试经典 100 题

    分享一些常见的硬件工程师面试/笔试题。公众号后台回复关键字:100题,可获取完整的PDF。--END--免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系,谢谢!加入粉丝
    的头像 发表于 04-30 19:34 1644次阅读
    硬件<b class='flag-5'>工程师</b><b class='flag-5'>面试</b>/笔试经典 100 题

    问,成为硬件工程师需要几只手?#硬件工程师 #YXC晶振 #扬兴科技 #搞笑

    硬件工程师
    扬兴科技
    发布于 :2025年04月25日 17:15:37