├── images └── slack.png ├── coding.md └── README.md /images/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fex-team/interview-questions/HEAD/images/slack.png -------------------------------------------------------------------------------- /coding.md: -------------------------------------------------------------------------------- 1 | ## 编码题 2 | 3 | 良好的编码能力是对工程师的基本要求,也是我们招聘时的重要参考,请在以下几道题中挑选任意一道来回答。 4 | 5 | 基本要求: 6 | 7 | * 后端可以使用任意自己喜欢的语言,比如 PHP、Python、Java 或 Node。 8 | * 请记录下你在解决这个问题过程中的思考,你是如何一步步解决的,以及遇到哪些技术问题和感想等。 9 | * 将源码放在 github 上。 10 | 11 | 建议:使用各种你认为最优秀的技术(工具、框架、库等),展现你的知识面。 12 | 13 | ### 题目一:在线网盘 14 | 15 | 实现通过 Web 管理本地文件夹的功能,需求如下: 16 | 17 | * 配置将某个本地文件夹作为主目录。 18 | * 前端展现可以类似百度网盘(或者 Windows 资源管理器及 Mac Finder 等),可以修改文件名、创建文件夹、上传文件、删除文件等。 19 | * 更多功能可以自由发挥,包括展现方面可以自己设计。 20 | * 可以思考一下如何更好的管理文件?是否有更好的信息展现方式? 21 | 22 | ### 题目二:在线聊天室 23 | 24 | 实现类似 [slack](https://slack.com/) 的实时在线聊天室,它可以: 25 | 26 | * 创建一个 room,任意人加进去聊天 27 | * 可以发消息和删除消息 28 | 29 | 其实这个应用可以做很多扩展,具体改做什么功能你来决定,比如: 30 | 31 | * 支持多种消息类型,比如 Markdown、表情 32 | * 上传文件、贴图等 33 | * 桌面提示 34 | * URL 预览 35 | * @ 功能 36 | 37 | slack 的截图如下,不过不要求完全照抄界面。 38 | 39 | ![slack](images/slack.png) 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 注意 2 | 目前发现有其他人以 FEX 团队名义进行招聘,发出的邮箱皆为私人邮箱。 3 | 4 | 为防止在投递简历出现误会,在此提醒各位注意: 5 | 6 | * FEX 团队没有以任何「个人名义或邮箱」进行招聘。 7 | * 所有简历都以投递到 fex-hr@baidu.com 为准。 8 | 9 | ## FEX 的面试过程 10 | 11 | 我们一般会有 3 轮面试,对于高级别的工程师可能会有 4-5 轮面试。 12 | 13 | ## 我们可能会采用哪些方法来面试 14 | * 代码编写笔试 15 | * 问答式 16 | 17 | 过程遵循 [STAR 面试法](http://www.baidu.com/s?ie=UTF-8&wd=star%E9%9D%A2%E8%AF%95%E6%B3%95 "什么是STAR面试法") 。 18 | 19 | ## 我们喜欢什么样的面试者 20 | 21 | * 基础扎实 22 | * 从多年的经验看,那些发展好的同学都具备扎实的基础知识 23 | * 比如只懂 jQuery 不懂 JavaScript 是不行的哦 24 | * 如果了解计算机基础会更好,因为我们将面临很多非前端技术的问题 25 | * 主动思考 26 | * 被动完成任务的同学在这里进步会很慢 27 | * 你需要有自己的想法,而不是仅仅完成任务 28 | * 爱学习 29 | * 前端领域知识淘汰速度很快,所以最好能经常学习和接触新东西 30 | * 有深度 31 | * 遇到问题时多研究背后深层次的原因,而不是想办法先绕过去 32 | * 比如追踪某个 Bug 一直了解它本质的原因 33 | * 有视野 34 | * 创新往往来自于不同学科的交集,如果你了解的领域越多,就越有可能有新想法 35 | 36 | ## 我们喜欢问的问题 37 | 38 | 以下会列出一些我们常问的问题,请提前做好准备。 39 | 40 | 需要注意的是,校招和社招的是不一样的,校招会更加关注基础知识,而社招会更加关注之前做过的项目情况。 41 | 42 | ### 项目相关 43 | 44 | 面试其实说白了就是根据一个人之前的经历,来判断出后续这人会做得怎样,如果你之前从没做成过一件事情,凭什么让别人相信你之后能做成呢?因此无论哪里的面试都会问你之前做过的项目 45 | 46 | 项目可以是多人协助开发一个产品,也可以是自己个人做过的业余应用,只需介绍 1、2 个就够了,需要注意的是 1 + 1 != 2,做了两个平庸的项目不如做了一个好项目 47 | 48 | 一般来说会问如下几方面的问题: 49 | 50 | * 做过最满意的项目是什么? 51 | * 项目背景 52 | * 为什么要做这件事情? 53 | * 最终达到什么效果? 54 | * 你处于什么样的角色,起到了什么方面的作用? 55 | * 在项目中遇到什么技术问题?具体是如何解决的? 56 | * 如果再做这个项目,你会在哪些方面进行改善? 57 | 58 | ### 技术相关 - 1 面 59 | 60 | 技术一面主要判断对基础知识的掌握 61 | 62 | * 描述一个你遇到过的技术问题,你是如何解决的? 63 | * 这个问题很常见,有没有遇到过很不常见的问题?比如在网上根本搜不到解决方法的? 64 | * 是否有设计过通用的组件? 65 | * 请设计一个 Dialog(弹出层) / Suggestion(自动完成) / Slider(图片轮播) 等组件 66 | * 你会提供什么接口? 67 | * 调用过程是怎样的?可能会遇到什么细节问题? 68 | * 更细节的问题推荐参考 69 | 70 | ### 技术相关 - 2 面 71 | 72 | 技术二面主要判断技术深度及广度 73 | 74 | * 你最擅长的技术是什么? 75 | * 你觉得你在这个技术上的水平到什么程度了?你觉得最高级别应该是怎样的? 76 | * 浏览器及性能 77 | * 一个页面从输入 URL 到页面加载完的过程中都发生了什么事情?越详细越好 78 | * (这个问既考察技术深度又考察技术广度,其实要答好是相当难的,注意越详细越好) 79 | * 谈一下你所知道的页面性能优化方法? 80 | * 这些优化方法背后的原理是什么? 81 | * 除了这些常规的,你还了解什么最新的方法么? 82 | * 如何分析页面性能? 83 | * 其它 84 | * 除了前端以外还了解什么其它技术么? 85 | * 对计算机基础的了解情况,比如常见数据结构、编译原理等 86 | 87 | ### 兴趣相关 88 | 89 | * 最近在学什么?接下来半年你打算学习什么? 90 | * 做什么方面的事情最让你有成就感?需求设计?规划?具体开发? 91 | * 后续想做什么?3 年后你希望自己是什么水平? 92 | 93 | ### 主动性相关 94 | 95 | FEX 和很多其它团队不一样,我们没有 PM 天天跟在你后面催你做事情,所以你需要自主去发现和解决问题,主动性是我们最看重的软素质之一 96 | 97 | * 在之前做过的项目中,有没有什么功能或改进点是由你提出来的? 98 | * 是否有参与和改进其它开源项目 99 | 100 | ## FAQ 101 | 102 | * 公开面试题不怕面试者精心准备么? 103 | * 面试题大多是开放性问题,是无法准备的 104 | * 如果真的精心准备,在各方面都能答好,那说明做事态度认真且努力,这正是我们需要的品质,因为我们相信一个人不是一成不变的,可以不断学习和进步,只要 ta 肯努力 105 | * 我只会 CSS/HTML,或只会 JavaScript,可以么? 106 | * 不行,而且很多内部项目还需要用 PHP 107 | * 如果投递简历后 2 周都没面试消息,意味着没筛选通过么? 108 | * 首先,你确定简历提交到的是「Web 前端研发部」,而且我们正在招聘 109 | * 如果符合前面的条件,很遗憾,或许是我们招满了,或许是你暂时不适合我们部门,但这不意味着你不能改进,请继续努力 110 | * 如果面试不过,可以提供后续发展建议么? 111 | * 可以,请发邮件到 fex-hr@baidu.com 咨询,我们会尽量抽时间回复,但不能保证回复所有人 112 | * 有疑问如何咨询? 113 | * 可以在这个项目中提 Issues,或发邮件到 fex-hr@baidu.com 上 114 | 115 | ## 参考 116 | 117 | * [Front-end Job Interview Questions](https://github.com/darcyclarke/Front-end-Developer-Interview-Questions) 118 | 119 | --------------------------------------------------------------------------------