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

    文章

    218

    浏览量

    21136
收藏 人收藏

    评论

    相关推荐

    面试题】人工智能工程师高频面试题汇总:机器学习深化篇(题目+答案)

    随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如机器学习
    的头像 发表于 12-16 13:42 1924次阅读
    【<b class='flag-5'>面试</b>题】人工智能<b class='flag-5'>工程师</b>高频<b class='flag-5'>面试</b>题汇总:机器学习深化篇(题目+答案)

    面试题】人工智能工程师高频面试题汇总:Transformer篇(题目+答案)

    随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如机器学习
    的头像 发表于 12-13 15:06 493次阅读
    【<b class='flag-5'>面试</b>题】人工智能<b class='flag-5'>工程师</b>高频<b class='flag-5'>面试</b>题汇总:Transformer篇(题目+答案)

    人工智能工程师高频面试题汇总——机器学习篇

    随着人工智能技术的突飞猛进,AI工程师成为了众多求职者梦寐以求的职业。想要拿下这份工作,面试的时候得展示出你不仅技术过硬,还得能解决问题。所以,提前准备一些面试常问的问题,比如机器学习
    的头像 发表于 12-04 17:00 848次阅读
    人工智能<b class='flag-5'>工程师</b>高频<b class='flag-5'>面试</b>题汇总——机器学习篇

    FPGA算法工程师、逻辑工程师、原型验证工程师有什么区别?

    ,还需要软件工程师、硬件工程师紧密合作,对整个系统进行集成和测试。 总的来说,FPGA 算法工程师着重于算法优化,FPGA 逻辑工程师专注
    发表于 09-23 18:26

    需要无刷电控硬件工程师

    需要无刷电控硬件工程师,地点东莞松山湖。最好有5-10年经验,大功率电摩电控。有意私聊。
    发表于 09-11 22:51

    正是拼的年纪|65岁电子工程师上班VLOG #65岁退休 #电子工程师 #搞笑 #上班vlog

    电子工程师
    安泰小课堂
    发布于 :2024年07月25日 11:31:02

    嵌入式软件工程师如何提升自己?

    的基础 嵌入式软件工程师需要具备扎实的计算机科学和工程知识。因此,在职业生涯的起步阶段,建议将重点放在学习基础知识上,包括数据结构、算法、操作系统、编程语言等。通过深入学习这些基础知识,打下坚实的理论基础,为将来
    发表于 06-12 11:20

    索尼诚邀软件工程师参与PS免费手游平台设计

    据悉,近日,澳大利亚知名媒体TweakTown发现,索尼互动娱乐正在为其旗下的PlayStation Studios Mobile招募一名资深的软件工程师,负责设计PlayStation的免费手机游戏平台。
    的头像 发表于 05-23 17:08 724次阅读

    嵌入式软件工程师和硬件工程师的区别?

    、机器人等。 定义和工作职责 嵌入式软件工程师的主要职责包括但不限于:设计、开发、测试和调试嵌入式软件应用程序,以满足特定硬件和软件要求。他们需要理解并掌握嵌入式系统的基本原理,熟悉相
    发表于 05-16 11:00

    大厂电子工程师常见面试题#电子工程师 #硬件工程师 #威廉希尔官方网站 知识 #面试

    电子工程师威廉希尔官方网站
    安泰小课堂
    发布于 :2024年04月30日 17:33:15

    Cognition发布首款AI软件工程师Devin

    据报道,Cognition公司今日公布了其首款人工智能软件工程师——Devin,掀起了打造软件模式变革的序幕。该产品在SWE-bench代码测验中展现出卓越表现,甚至超过了部分顶级人类工程师的水准。
    的头像 发表于 03-13 10:57 624次阅读

    优秀电源工程师需要哪些必备技能?

    提升电源开发效率。电源新手在学习初期,如果实验设备不足,可以利用仿真软件进行威廉希尔官方网站 模型搭建,从而快速、直观地了解电源的工作原理。2、器件参数选型参数选型时,需要工程师进行威廉希尔官方网站 关键参数的计算,计算方法可以
    发表于 01-29 11:29

    如何构建linux开发环境和编译软件工程、应用程序

    前文介绍了如何使用官方提供的镜像文件启动开发板,本文将说明如何构建linux开发环境和编译软件工程、应用程序。
    的头像 发表于 01-03 12:31 2053次阅读
    如何构建linux开发环境和编译<b class='flag-5'>软件工程</b>、应用程序