如何准备Front-End Back-End岗位面试?

如何准备Front-End Back-End岗位面试?

Front-End和Back-End(前端和后端)是计算机科学(CS)中最常见的两个技术方向,也是目前市场上招聘需求巨大的CS岗位方向。本文将带你详细了解这两个岗位的职能特点,以及他们工作内容的异同。如果你想了解更多数据分析相关内容,可以阅读以下这些文章:
4个电商常用Customer Segmentation的方法
Market Basket Analysis:把握电商求职核心的购物篮分析是什么?
数据求职常出现的RFM是什么?如何影响电商行业营销策略?
听电商大佬跟你聊聊E-Commerce的数据人生

前端开发,就是要创造面向用户的部分的代码,并通过建立框架,构建沉浸性的用户体验。而后端开发者需要构建并维护服务器、应用还有数据库这几个组件,并提供多方面支持。

作为CS背景的求职者到底适合申请哪一类岗位?两种岗位的功能差别和面试差异在哪里? 

本次分享,我们邀请到资深导师来为大家讲解前后端岗位面试,带大家了解它们的特点和区别,以及面试时需要准备的不同事项,为大家提供专业的指导和建议。

什么是前端开发Front End Developer?主要工作职责是什么,需要哪些技能?

前端开发是软件工程师的一种,主要职责为开发前端界面,例如web、手机App这两种。大部分的前端工程师都是只web开发。

Web开发有三架马车:HDML,CSS以及JavaScript。因为项目规模的大型化以及复杂化,所以使用JavaScript前端框架来开发软件是十分流行的。掌握一到两个最为流行的JavaScript前端框架也是十分重要的,比如react。

另一个是mobile开发,mobile开发也是用户界面开发,需要掌握的知识与web有所不同。Mobile开发其中一个比较重要的就是编程语言。例如如果想要做IOS方面的,那么就需要了解Objective C, swift。

如果是安卓方面则需要了解Java。除了编程语言之外,还需要了解Mobile开发API。以IOS开发为一个例子,在IOS开发方面,界面上的API需要了解UI kit,手机数据库,core data等类似的API。

这里用美国一个科技大厂的实际工作经历举一个例子,比如目前我们在这个公司里负责前端web开发,这个时候PM提出在页面的右下角加一个floating bottom。在PM提出这个功能后,PM已经提前制定好方案了,作为工程师,在看到这种需求后就会看到相关的UI设计。

在这个阶段作为工程师,我们需要与PM, UI等共同合作,来把方案确定下来以及确定细节,还需要跟UI, UIS单独对接,从他们那边获取设计资源,例如图片、颜色以及具体的设计细节。这个步骤做完后,就进入了写代码的阶段,并把写完的代码交给UI方面检查。通过要求后,就进入到最后的release阶段。

前端开发日常中会需要处理项目经理提出的特定项目修改,需要对实际问题进行理解以及方案的沟通。例如,项目经理要求在地图中加入一个在建筑内部可以区分建筑内的露天区域的功能。

首先需要确定在建筑内部的多边形是不是露天区域,接下来需要跟后端程序员配合,能否获得对应数据,如何在现在界面上体现这个区别。

紧接着就需要跟后端工程师开会讨论制定方案。在方案确定后跟项目经理描述方案,确定无误后就可以进行开发流程。可以看到整个过程中需要很多沟通,如果其中一点交流不当的话,则会影响整体的开发效率。前端工作更多的就是和人直接沟通。

什么是后端开发Back End Developer?主要工作职责是什么,需要哪些技能?

后端开发,顾名思义。主要的工作职责就是实现后端的逻辑。大多数的时候都是实现API,提供服务器的授权,与服务器对接等工作场景。另外,后台工程师可能涉及与其他工程师在技术上的合作。

例如,为AT&T提供某个地区手机信号质量的数据,那么这个数据就要跟着AT&T的要求来做。这样就需要对已有的数据进行修改优化,然后发给AT&T。在这个过程中,后端工程师的技术职责就被延展开来,例如处理很多数据上以及技术上的数据对接问题。

后端工程师主要重要的能力可以分为两大块:

  • 1.架构能力
  • 2.算法能力。

架构能力主要体现在完成项目现有的需求的同时,可以实现程序的稳定性,并且可以适应未来的扩展。算法能力就是解决实际问题时来增加效率。

作为一个刚刚涉足后端领域的工程师,我们可以通过提升算法能力,架构能力这些软技能来提升自己,从技术方面来补充自己。

后端开发发展了很多年,有大量的模式型的框架性的东西可以直接拿来学习以及使用。后端开发是分为几套体系的,其中最为流行的就是screen开发框架,编程语言则为Java。

前后端开发工程师的面试流程有什么特点?

前后端面试中比较突出的一个特点就是,目前技术性面试是比较同质化的。各个公司都会非常侧重算法。面试流程也主要都为第一轮筛选,电话面试,网上题目,最后就是线下面试。

前后端面试主要的不同也就是最后这一轮的on-site面试。在最后一轮on-site面试面试官会问具体的与前端以及后端岗位相关的问题,技术,以及项目等。

与大厂不同的是,一些独角兽公司面试流程会很长。面试算法考的非常全面,且十分注重交流能力。比如当遇到问题时,解决框架是什么,如何处理问题,如何分析问题,如何跟团队交流问题,因为后端岗位在处理问题时可能不只是一个人的问题,还需要与前端的人交流。

前后端开发工程师的面试考核的重点有哪些?

以前端面试为例,考核除了算法以外,重中之重的就是HTML, CSS 以及JavaScript。如果想要准备技术内容,可以从这三点进行准备。大厂岗位一般是不分具体的前端或者后端的,但是可以在面试前与负责人沟通从而来了解岗位对于前端需求强,还是后端需求强。另外,前端项目还十分注重项目,以及项目经验。

后端主要考察的是对于不同问题处理的解决方案,比如缓存或者分库问题等。后端问题是十分考究自身的经验的。那么如果自身经历不足,该如何补充?网上有很多技术性论坛和经验分享的帖子,了解现实中的例子以及他们提供的解决方案会对求职者有所帮助。

在准备后端面试的时候,最重要的就是能够具体的、系统的体会整个项目,了解为什么会用到这个项目,为什么会产生这个问题,以及这个问题产生后有没有一直的解决方案,不同的解决方案之间有哪些好处以及劣势。

如何高效准备前后端岗位面试?

首先,算法为重中之重,在面试前端岗位时,算法一定会被考察到,且算法考察占比很大。

除了算法之外,在面试前端时,项目也是十分重要的。如果之前做过前端相关项目,可以把这些项目列出来,并且在面试时做一个简单的demo。还有就是一直提到的三个技术HTML, CSS 以及JavaScript,学习并了解一个流行的Java框架。

前端面试者会注重项目,但是后端会注重经历。项目和经历还是有很大的区别的,项目是做成的东西,经历是解决的某个问题。例如在遇到问题后把问题解决,这可能就代表着了解关于这个问题的所有知识。这个经历可以为不同项目的同一个问题,也可以为同一个项目的不同问题,重点在于问题本身以及如何分析,应用以及解决这个问题。

非CS专业转行计算机岗位,有什么建议?

老生常谈,还是需要从算法的准备开始。这个是说多少遍都不为过的。

除了算法,计算机技术知识可以日常多做积累,在空闲时间内写写代码,做些项目。项目可以是网上项目,学校项目,或者自己的小项目。基于自己的专业,可以做一些POC(proof of concept)项目。转专业时,除了算法,最重要的一点就是经历的缺失。

POC就是说把想法实现成demo的形式。比如做一个手机APP的小程序,也是有后台,手机app以及有数据库的。这样的小项目虽然不能放在简历上,但是对于一个出入计算机行业的人,帮助对于计算机行业的了解是有非常重要的作用的。

众所周知,留学生想要在北美找工作的话主要有两个航道,第一个为CS相关,主要为软件开发工作。还有一个就是数据类的工作。如果决定转行的话,需要第一个考虑转行转到哪个行业对于我们来说更好适应,难度较小。找到最适应自己的转行行业。如果是在校学生的话,可以选择找一些CS方面的课程先上一下,提前了解CS专业知识,做一些项目。

在上了一些CS课程后,我们还需要在自己的简历上向HR显示自己是一个合格的候选者。这个时候就可以选择跟随导师工作来增加经验,从事些实习工作。

还有一个十分重要的是就是需要去Leetcode上刷面试题目。每一家公司对于技术的要求是不一样的,就如我们刚刚分享的,前端后端虽然整体上互相关联,但是要求却大不相同。同学们可以根据自己申请工作的要求来选择性的补充自己所或缺的经验与技能。

以上就是今天分享的全部内容了,希望对大家起到帮助,祝大家找工作更加顺利!你还可以订阅我们的YouTube频道,观看大量数据科学相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

Recap 作者:Peter Mei
美工编辑:过儿
校对审稿:冬冬
公开课回放链接:https://www.youtube.com/watch?v=Fcp6xxHa6fE&ab_channel=AIPin