一、基本知识
我们生活在网际网路时代,你想知道的任何事情几乎都能在15分钟内找到相关资讯。可是,能找到资讯并不等于你会使用它。我认为所有前端工程师至少都应 该掌握某些基本的知识,才能有效地完成自己的工作。如果一遇到问题,就停下工作上网四处搜寻解决方案,怎么可能保证按期完成工作呢?听听,还有谁在说“我 不知道,但我可以上网搜到。”请这些同学把手举起来,让大家认识一下(immediately raises a flag for me.)。下面我列出一些基本的知识点,这些都是我认为一名前端工程师(无论工作年头长短)在没有任何外来帮助的情况应该知道的。
[list][*]
DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动。
[*]
DOM *** 作——怎样新增、移除、移动、复制、建立和查询节点。
[*]
事件——怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别。
[*]
XMLHttpRequest——这是什么、怎样完整地执行一次GET请求、怎样检测错误。
[*]
严格模式与混杂模式——如何触发这两种模式,区分它们有何意义。
[*]
盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。
[*]
块级元素与行内元素——怎么用CSS控制它们、它们怎样影响周围的元素以及你觉得应该如何定义它们的样式。
[*]
浮动元素——怎么使用它们、它们有什么问题以及怎么解决这些问题。
[*]
HTML与XHTML——二者有什么区别,你觉得应该使用哪一个并说出理由。
[*]
JSON——它是什么、为什么应该使用它、到底该怎么使用它,说出实现细节来。
[/list]
重申一下,上述这些知识点都应该是你应该“想都不用想”的东西。我一开始问的所有问题都是想摸清你对所有这些领域知识的掌握程度。虽然上面列出的这些知识点并没有面面俱到,但我觉得你至少应该掌握这些,才有可能跟我坐到一间办公室里来。
二、少量提问
我非常赞同面试者问的问题越少越好。反复问应聘者各种问题既不公平,也很无聊。我在任何一次面试中,通常只问三个大问题,但每个问题又会涉及我所能想到的多个方面。回答每个大问题一般要经过几个步骤,这样我就可以在每个步骤中穿插著问一些小问题。比如说:
现在有一个正显示著Yahoo!股票价格的页面。页面上有一个按钮,你可以单击它来重新整理价格,但不会重新载入页面。请你描述一下实现这个功能的过程,假设伺服器会负责准备好正确的股票价格资料。这个问题牵扯到一组我想要考察的基本知识点:DOM结构、DOM *** 作、事件处理、XHR和JSON。如果我要求你对换一种处理股票价格的方式,或者 让你在页面中显示其他资讯,就可以把更多的知识点包括进来。对于经验比较丰富应聘者,我也可以自如地扩充套件要考察的知识范围,最简单像JOSN与XML的区 别、安全问题、容量问题,等等。
我还希望应聘者给出的任何解决方案中都不要使用库。我想看到最原生态的程式码,你就当页面中没有包含任何库。你说你对哪个库了解多少多少,但我不能把 关于库的知识作为评判能力的因素,因为库是会随时间变化的。我需要的是真正理解库背后的机制,特别是能够徒手写出一个自己的库的人。
三、解决问题
做为一名前端工程师,最值得高兴的事莫过于解决同一个问题会有很多种不同的方法,而你要做的就是找出最合适的方法来。我在提问的时候,经常会在应聘 者解释完一种方法后问他们还有没有第二种方法。此时我会跟他们说,假设你的这个方法由于种种原因被否决了,那么你还能不能给出另一种方法。这样做可以达到 两个目的。
首先,可以测试出他们是否在毫无意义地复述书本中的东西。不能不承认,某些人确实有过目不忘的天赋,听他们在那里滔滔不绝地讲,你会觉得他们什么都 明白。可是,只要一跟这些人谈到怎么查询方案无效的原因,以及能否拿出一个新方案来,他们往往就傻眼了。这时候,如果我听到“我不明白这个方案为什么不够 好”之类的反问,心里立刻就明白我的问题已经超出了他们的能力范围,而他们只是想拿自己死记硬背的结论来蒙混过关。
其次,可以测试出他们已经掌握的(还是那句话,“想都不用想”)浏览器技术知识。如果他们对浏览器平台的核心知识有较好的理解,想出解决同一问题的不同方案根本没有那么难。
对一名前端工程师来说,这绝对是最重要的能力。前端工程师在工作中遇到本该如此却并未如此的难题(说你啦,IE6),应该说是一件很平常的事。一个方案无效就无计可施的人,做不了前端工程师。
考核应聘者解决问题能力的另一层原因,与我的个人喜好有关。在搞清楚应聘者知道什么不知道什么之后,我就会想着问一个他们知识领域之外的问题。这样 做的目的,就是想看看他们怎样运用已有的知识解决新问题。在解决问题的每一步,我也准备了一些提示,以防有人会卡壳打艮(在我面前15分钟一言不发,对我 评价这个人毫无帮助)。我真正感兴趣的,是他们能够从上一步前进到下一步。我希望看到一个人就在我眼前学到新知识。
注意:所有问题都与浏览器技术相关。我不相信出几道抽象的逻辑题,就能够考出某人解决Web技术问题的能力。在我看来,这无异于让素描大师画肖像(或者让刘翔跟博尔特同场竞技),没有意义,也得不到任何有价值的资讯。
HR一般不会面试太深的问题,主要是了解一下你之前的工作经历,更多的是你自己描述,中间可能会问一些初级的问题,比如,你为什么从上一家单位离职等类似问题。
一道web前端工程师面试题,求解答。这样的布局用绝对定位实现最合适,ABC的外层用相对定位,里边各列用绝对定位就可以。至于CBA且B宽度自适应,还是用绝对定位,但只定位C,A分部到两侧,中间的列margin设成左右列的宽度就可以。
web前端工程师如何才能硬气的跳槽?
web前端开发工程师想要硬气的跳槽,起码应该达到以下几点:
1.掌握扎实的技术基础,
需要掌握技术包括:HTML、CSS、JavaScript
HTML是Web程式设计的基础,HTML也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页档案本身是一种文字档案,通过在文字档案中新增标记符,可以告诉浏览器如何显示其中的内容。
维护大型的CSS程式码库并非易事,特别是那些随意散漫未经组织的CSS程式码极易变成一团乱麻,所以,应该掌握CSS命名规范,来帮助开发者编写优质的程式码。
2.深入理解前端工程化和元件开发
需要熟悉web前端框架—— React、Vue.js等,
React为我们提供了直接易用的,以状态为核心的前端应用开发方式,前端工程师应该会分析React内部工作原理,讨论React中简单元件、类元件等渲染流程。
Vue.js单元测试是应用开发中不可或缺的部分,日常开发中会用到的Vue.js单元测试的例子,所以应该掌握。
3.熟练掌握Web开发相关知识
至少熟悉一门后端语言,例如Node.js、Java、Go等
Node.js内部原理视非常重要的,应该明白Node.js的主程序是如何启动的、如何载入内建模组、os包如何实现等等。
4.对技术有热情,有一定前端架构能力或者技术深度具备团队合作意识强,能够多团队协作开发具备企业级大型前端应用开发经验更佳。
如何识别一个人是web前端工程师前端工程师需要懂得设计类程式码和js,有需要了解一些后台语言,例如PHP等。
如何实现成为web前端工程师的梦想1.入门阶段:能够解决一些问题的水平。有一定的基础(比如最常见的HTML标签及其属性、事件、方法最常见的CSS属性基础的JavaScript程式设计能力),能够完成一些简单的Web前端研发需求。
2.进阶阶段:将JavaScript、HTML、CSS之类的编码帮助手册里的每个方法/属性都通读几遍!只有将基础打好,以后的路才能走的顺畅。
3.入室:最强程式码,知道所有能够解决需求的各种方案,能够选择使用最优秀的方案满足需求。这个级别基本上产品开发程式设计中的程式码主力。程式设计师应该能够肯定的回答:对于这个需求而言,我的程式码就是最优秀的程式码。
4.注重细节,注意那些当前需求里没有明文给出的细节:程式码效能的差异、执行平台(浏览器)的差异、需求的隐性扩充套件、程式码的向后相容等等。
如何了解web前端工程师和UI设计师web前端工程师是不参与任何的设计,直接将网站美工制作的网站效果图使用ps按照效果图进行切片并使用、css、js等程式码进行网页的制作,最终编写出符合w3c标准的相容各个主流浏览器的静态页面,同时还需要按照后台开发人员的要求留下一些后台资料的介面。所以说网站前端工程师更多的是程式设计而不是设计。
UI设计师一般是学美术或者设计出身,精通photoshop、AI、AE等平面设计工具,其在网站开发过程的中的职责就是按照客户或者公司的需求设计出符合客户需求和介面或者颜色符合大众视觉的网站效果,如根据不同行业的需求设计颜色、设计介面风格等,其工作的最后成果就是网站的效果图。
web前端工程师进阶学习路线如何走less和sass什么时候学都行,1,2天就能学会。这个不著急,没有什么承上启下的作用,可以单独拿出来学。
bootstrap就是一个框架,把最主要的栅格系统看看就好。其他的大概了解能干啥就行,很多公司,是不让用bootstrap的,而是用原始码自己写。这个用一天的时间没啥问题。
node.js和angular比较重要,如果学会,算是上了一个台阶了。所以重点说说这个。
angular属于mvvm框架,一开始觉得angular挺复杂的,所以想学一个简单的,轻量级的,所以决定先学vue。但是在了解的过程中发现,很多的专业名词,没听过,或者理解不透。所以又开始从头学习node.js。在学习node.js的过程中又开始迷茫,发现了很多JS不懂的地方。
所以,又开始深入研究js的dom,函式,ajax,阵列等。总之用了很长的时间,浪费了很长时间。
最后总结一下啊。其实,没必要钻那么多牛角尖。
先做着vue的例子,不懂的地方,直接略过,很多时候,不理解的不懂的东西,用着用着,突然就能明白。照猫画虎先把VUE的例子跟着做一遍之后,同时梳理一下涉及到的JS知识点。能自己用vue做出几个小成品的时候,开始结合js研究node.js。之后再去涉及angular。
angular差不多有个大概了解的时候,反过头接着学vue,你会发现,又会发现很多新东西。
web前端这个东西特别有意思,当你达到一个高度,返回来再看以前的技术,会发现,哎呀,竟然又能发现新大陆。
厦门web前端工程师培训哪家好培训学校很多,没有具体的衡量标准的。但是可以从几方面去选择:
1 有很多优秀导师的
2 培养出很多优秀学员的
3 只做培训的,没有做其他的
4 做的比较久的。
北京WEB前端工程师培训哪个好建议找全程面授课程的地方学习,课程体系很重要,现在企业在用人方面讲究全栈的前端工程师人才,所在在课程选择上要慎重,学习内容要基于HTML5,要包含pc端+移动端+后端。这要才能学的系统,就业上才会有所保障。
面试其实就是一个不断选择与被选择的过程(不知道说的对不对)。不同公司的面试方式都有所不同,大多数人都有过多次面试的经历,前端面试也不外乎那么一些啦(好像有些废话的感觉)。
面试之前的小故事
HR会打电话过来我是××公司的,在××上看到你投到我们公司的简历,问你何时候有空约一个呗,然后说就星期*吧,既然都打电话请我面试了,好吧,那就约一个!
然后有些人会精心准备,不停刷面试题,整夜整夜的看着HTML/JS/CSS知识点,还有那些最新的、时髦的技术,看看到时候能不能唬住面试官而有些人对自己胸有成竹,哥那么多年的前端经验了,啥项目没有经历过,不就一个面试,怕啥呢。
很快或者很慢的来到那天。你打扮的清清爽爽漂漂亮亮的,打扮的好会有加分不,没错,第一印象也是挺重要的。途中有些人可能会还一直想着面试官会问啥题目呢,那啥**属性是什么来着呢,再次拿出手机默默的看起资料有些人可能就会想着公司不知道妹子多不多漂亮不呢,环境和福利不知道咋样,最好别碰到傻逼一样的面试官哎,不然这以后咋相处好呢。
来到公司,大小公司大家都见多了嘛,也是得看发展是吧,我们也不是肤浅的人,见到前台妹妹,哟,还不错哦。领你进会议室里,让你稍等一下,她去通知面试官,过了一会儿,不是面试官进来,那就是前台妹妹给您送来一杯水。面试官踱步向前,咦~,我是继续坐着呢,还是站着呢,还是站起来显礼貌一些嗯。
给面试的一般会是Team Leader或者非常资深的工程师。首先会让你自我介绍下,然后巴拉巴拉介绍自己,途中或者聊到面试官喜欢的`部分那就会中断问几个问题吧,介绍完自己,就进入正式的战斗了吧,一般会有2-3轮的回合。遇知战斗详情,请听下回分解。
哈哈, 开玩笑。以上瞎编胡造,如有雷同,纯属巧合。
这里就只谈谈前端技术的战斗回合吧,写的不好,请多见谅。
普通型
面试中问题会比较的零碎,html/js/css肯定都会有涉及。知识点不会有太大的规律,可能几个公司面试下来你遇到的问题一个都不带重复的。哎,前端的知识点就是乍一看深似海,仔细一看深似黑洞啊。问题好的话,一方面考察了面试人对前端接触的广度,深度的话也可以从中接触到一些。因为面试的时间有限,其实也非常考验面试官对一个人的洞察能力。
一般如果不是应届生的话,也就是会跟你交流你之前的项目,你担当的角色,你遇到的难题,怎么解决问题,用的框架,与其他工程师的交流沟通协作等等。 这些其实你心里肯定是有答案的(可能也有懵逼的),就看你的表达,能不能对上面试官的胃口。
进阶型
除了基本的问题,面试中会有一些明显设计过的题目。针对某几个知识点,或让你手写代码,或让你提供算法或思路。如果之前没有遇到过这类问题的话其实一下子真的挺难回答,或者直接懵逼了,或者回答不出面试官满意的答案。这其实对工程师的要求也是比较的高,不能只是单纯的切切页面,用用插件,需要对某一类问题或者模式或者算法有深入的了解,对问题的解决思路有很好的把握。
算法可能不是前端工程师的长项,但作为优秀的工程师,对算法的了解应该会只深不浅。
这种面试的题目既提现了公司对面试者的要求,也相对而言的会有所体现公司的水平。
出题型
题目比较的综合,会通过邮件发给你,或者有专门的页面提供,在面试之前让你2-3天的时间做完。题目可能是很有名的某一类交互,或游戏,或页面,或公司自己出的一类小东西。
因为非当场面试,所有有比较充足的时间来思考,来写一些代码。一般都会完成,所以其实比较的关注点就是对代码的质量,通过代码来考察面试者的思路以及代码**惯等等。
其未知性也比较多,可能因为有些东西可能没法通过代码来传递,沟通,其他的思路,或者题目的缺陷等等。所以这只是面试途中的一个小部分,大多数人其实都会能做的很好。
直接上机型
还有的就会直接给你某一个交互,或者一张静态页面,或者一个布局等等,直接给你台电脑让你当场写出来。写完之后再有所交流,说说自己的想法或者接着谈其他的。
当你写代码时候,其实暴露的东西也挺多的。你写的**惯,思路清晰不清晰,对代码的熟悉程度,可能你平时都是ctrl C + V的,这时候你咋办呢。
这个可能遇到的比较少,但也会是有的。
结束语
许多面试可能都会结合以上的几种类型,多方面的考察面试者,其实,大家都懂的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)