如何成为一个卓越的高级前端开发工程师师

如何成为一名卓越的前端工程师 - 囧克斯
如何成为一名卓越的前端工程师
看过之后非常有感触,很多观点都是自己长期非常坚持和认同的,所以翻译出来分享给更多的前端同学!
最近我收到一封读者来信让我陷入了思考,信是这么写的:
Hi Philip,您是否介意我问您是如何成为一名卓越 (great) 的前端工程师的?对此您有什么建议吗?
我不得不承认,我很惊讶被问这样的问题,因为我从来不觉得自己是个很卓越的前端工程师。甚至我入行头几年时并不认为自己可以做好这一行。我只确定自己比自己想象中还才疏学浅,而且大家面试我的时候都不知道从何问起
话虽这么说,我到现在做得还算不错,而且成为了团队中有价值的一员。但我最终离开 (去寻求新的挑战——即我还不能够胜任的工作) 的时候,我经常会被要求招聘我的继任者。现在回看这些面试,我不禁感叹当我刚开始的时候自己在这方面的知识是多么的匮乏。我现在或许不会按照我自己的模型进行招聘,即便我个人的这种经历也有可能成功。
我在 web 领域工作越长时间,我就越意识到区分人才和顶尖人才的并不是他们的知识——而是他们思考问题的方式。很显然,知识在很多情况下是非常重要而且关键的——但是在一个快速发展的领域,你前进和获取知识的方式 (至少在相当长的一段时间里) 会比你已经掌握的知识显得更加重要。更重要的是:你是如何运用这些知识解决每天的问题的。
这里有许许多多的文章谈论你工作中需要的语言、框架、工具等等。我希望给一些不一样的建议。在这篇文章里,我想谈一谈一个前端工程师的心态,希望可以帮助大家找到通往卓越的道路。
别光解决问题,想想究竟发生了什么
很多人埋头写 CSS 和 JavaScript 直到程序工作起来了,然后就去做别的事情了。我通过 code review 发现这种事经常发生。
我总会问大家:“为什么你会在这里添加 float: left?”或者“这里的 overflow: hidden 是必要的吗?”,他们往往答道:“我也不知道,可是我一删掉它们,页面就乱套了。”
JavaScript 也是一样,我总会在一个条件竞争的地方看到一个 setTimeout,或者有些人无意中阻止了事件传播,却不知道它会到页面中其它的事件处理。
我发现很多情况下,当你遇到问题的时候,你只是解决当下的问题罢了。但是如果你永远不花时间理解问题的本源,你将一次又一次的面对相同的问题。
花一些时间找出为什么,这看上去费时费力,但是我保证它会节省你未来的时间。在完全理解整个系统之后,你就不需要总去猜测和论证了。
学会预见未来的浏览器发展趋势
前后端开发的一个主要区别在于后端代码通常都运行在完全由你掌控的环境下。前端相对来说不那么在你的掌控之中。不同用户的平台或设备是前端永恒的话题,你的代码需要优雅掌控这一切。
我记得自己 2011 年之前曾经阅读某主流 JavaScript 框架的时候看到过下面这样的代码 (简化过的):
var isIE6 = !isIE7 && !isIE8 && !isIE9;
在这个例子中变量 IE6 为了判断 IE 浏览器版本是否是 6 或更低的版本。那么在 IE10 发布时,我们的程序判断还是会出问题。
我理解在真实世界特性检测并不 100% 工作,而且有的时候你不得不依赖有 bug 的特性或根据浏览器特性检测的错误设计白名单。但你为此做的每一件事都非常关键,因为你预见到了不再有 bug 的未来。
对于我们当中的很多人来说,我们今天写的代码都会比我们的工作周期要长。有些我写的代码已经过去 8 年多了还在产品线上运行。这让人很满足又很不安。
阅读规范文档
浏览器有 bug 是很难免的事,但是当同一份代码在两个浏览器渲染出来的效果不一样,人们总会不假思索的推测,那个“广受好评”的浏览器是对的,而“不起眼”的浏览器是错的。但事实并不一定如此,当你的假设出现错误时,你选取的变通办法都会在未来遭遇问题。
一个就近的例子是 flex 元素的默认最小尺寸问题。根据的描述,flex 元素初始化的 min-width 和 min-height 的值是 auto (而不是 0),也就是说它们默认应该收缩到自己内容的最小尺寸。但是在过去长达 8 个月的时间里,只有 Firefox 的实现是准确的。[1]
如果你遇到了这个浏览器兼容性的问题并且发现 Chrome、IE、Opera、Safari 的效果相同而 Firefox 和它们不同时,你很可能会认为是 Firefox 搞错了。事实上这种情况我见多了。很多我在自己
项目上报的问题都是这样的。而且这些解决方案的问题会在两周之后 Chrome 44 修复之后被体现出来。和遵循标准的解决方案相比,这些方案都伤害到了正确的规范行为。[2]
当同一份代码在两个或更多浏览器的渲染结果不同时,你应该花些时间确定哪个效果是正确的,并且以此为标准写代码。你的解决方案应该是对未来友好的。
额外的,所谓“卓越”的前端工程师是时刻感受变化,在某项技术成为主流之前就去适应它的,甚至在为这样的技术做着贡献。如果你锻炼自己看到规范就能在浏览器支持它之前想象出它如何工作的,那么你将成为谈论并影响其规范开发的那群人。
阅读别人的代码
出于乐趣阅读别人的代码可能并不是你每周六晚上会想到的娱乐项目,但是这毫无疑问是你成为优秀工程师的最佳途径。
自己独立解决问题绝对是个不错的方式,但是这不应该是你唯一的方式,因为它很快就会让你稳定在某个层次。阅读别人的代码会让你开阔思维,并且阅读和理解别人写的代码也是团队协作或开源贡献必须具备的能力。
我着实认为很多公司在招聘新员工的时候犯的最大错误是他们只评估应聘者从轮廓开始写新代码的能力。我几乎没有见过一场面试会要求应聘者阅读现有的代码,找出其中的问题,并修复它们。缺少这样的面试流程真的非常不好,因为你作为工程师的很多时间都花费在了在现有的代码的基础上增加或改变上门,而不是搭建新的东西。
与比你聪明的人一起工作
我印象中的很多前端开发者 (相比于全职工作来说) 都是自由职业者,有同类想法的后端开发者并没有那么多。可能是因为很多前端都是自学成才的而后端则多是学校里学出来的。
不论是自我学习还是自我工作,我们都面对一个问题:你并没有机会从比你聪明的家伙那里学到什么。没有人帮你 review 代码,也没有人与你碰撞灵感。
我强烈建议,最起码在你职业发展的前期,你要在一个团队里工作,尤其是一个普遍比你聪明而且有经验的团队里工作。
如果你最终会在你职业发展的某个阶段选择独立工作,一定要让自己投身在开源社区当中。保持对开源项目的活跃贡献,这会给你团队工作相同甚至更多的益处。
“造轮子”
造轮子在商业上是非常糟糕的,但是从学习的角度是非常好的。你可能很想把那些库和小工具直接从 npm 里拿下来用,但也可以想象一下你独立建造它们能够学到多少东西。
我知道有些人读到这里是特别不赞成的。别误会,我并没有说你不应该使用第三方代码。那些经过充分测试的库具有多年的测试用例积累和已知问题积累,使用它们绝对是非常明智的选择。
但在这里我想说的是如何从优秀到卓越。我觉得这个领域很多卓越的人都是我每天在用的非常流行的库的作者或维护者。
你可能不曾打造过自己的 JavaScript 库也拥有一个成功的职业发展,但是你从不把自己手弄脏是几乎不可能淘到金子的。
在这一行大家普遍会问的一个问题是:我接下来应该做点什么?如果你没有试着学一个新的工具创建一个新的应用,那不妨试着重新造一个你喜欢的 JavaScript 库或 CSS 框架。这样做的一个好消息是,在你遇到困难的时候,所有现成的库的源代码都会为你提供帮助。
把你学到的东西都记录下来
最后,但丝毫不逊色的是,你应该把你学到的东西记录下来。这样做有很多原因,但也许最重要的原因是它强迫你更好的理解这件事。如果你无法讲清楚它的工作原理,在整个过程中它会推动你自己把并不真正理解的东西弄清楚。很多情况下你根本意识不到自己还不理解它们——直到自己动手写的时候。
根据我的经验,写作、演讲、做 demo 是强迫自己完全深入理解一件事的最佳方式。就算你写的东西没有人看,整个过程也会让你受益匪浅。
Footnotes:
Firefox implemented the spec change in
on December 1, 2014. Chrome implemented it in
on July 21, 2015, which means Opera will get it shortly. Edge shipped with this implemented on July 29, 2015. A Safari implementation appears to be .
You can refer to
for a future-friendly, cross-browser workaround to this issue.
感谢分享,博客主题也很清爽。
添加新评论 &
我发起的开源项目
: 请问下什么时候会出2的稳定版本?
: 阿姨的网站字好大,看得眼睛发胀。。。
: 冒险岛服务端奇迹mu服务端传奇外传服务端风云无双服务端神迹服务端
英雄王座travia服务端暗黑修仙...
: React仅仅是View层,太薄了;而Vue则封装了额外的功能,且比React的那套工具链轻便好用。
: [...]Vue.js 源码学习笔记[...]
: [...]Vue + webpack 项目实践[...]
: 用了虚拟dom,用了jsx,照着抄了react的这些东西,有意义吗?
: 期待just-vue的开源
: 我上次见过你 在css开发者大会上面
能不能出一套前端工程化构建的教程啊
: 人生规划挺有趣~新手如何成为优秀的web前端开发工程师? - 开源中国社区
当前访客身份:游客 [
当前位置:
程序设计之道无远弗届,御晨风而返。———— 杰佛瑞 · 詹姆士
很多前端初学者总会问以下两个问题:
第一种一直在问:如何学习前端?
第二种总说:前端很简单,就那么一点东西。
我从没有听到有人问:如何做一名优秀、甚至卓越的WEB前端工程师。
今天达妹带你详细了解成为一个优秀的前端工程师,都需要具备哪些特质?
何为前端工程师
前端工程师,也叫Web前端开发工程师。他是随着web发展,细分出来的行业。Web前端开发技术主要包括三个要素:HTML、CSS和JavaScript!
  HTML 甚至不是一门语言,他仅仅是简单的标记语言!
  CSS 只是无类型的样式修饰语言。当然可以勉强算作弱类型语言。
  Javascript 的基础部分相对来说不难,入手还算快。
&&&&此篇文章中就HTML、CSS、JS都有哪些区别?进行了全面的解读!
  前端开发的入门门槛其实很低,与服务器端语言先慢后快的学习曲线相比,前端开发的学习曲线是先快后慢。也正因为如此,前端开发领域有很多自学成“才”的同行,但大多数人都停留在会用的阶段,因为后面的学习曲线越来越陡峭,每前进一步都很难。
现在市场很需要优秀的、高级的前端工程师。
一方面是因为这是一个比较新的细分行业,而且前端程序员大都自学一部分,知识结构不系统;另一方面,大学里面没有这种课程,可以加入web前端学习群:前面数字是五一四,中间数字是一六七,后面三位数字是六七八,将数字串联起来,了解学习更多在学校学不到的技术干货。
如何学习前端知识
  我们生活在一个充满规则的宇宙里面。社会秩序按照规则运行,计算机语言几乎全部是规则的集合。计算机前辈们定义规则,规则约束我们,我们用规则控制数据。大部分时候,对数据的合理控制,来自于你对规则的掌握。
  学习 HTML,CSS 应该先跟着书仔细、扎实的学一遍。然后就需要做大量的练习,做各种常规的、奇怪的、大量的布局练习来捆固、理解自己的知识。
  而学习 Javascript 首先要知道这门语言可以做什么,不能做什么,擅长做什么,不擅长做什么!
  如果你只想当一个普通的前端程序员,你只需要记住大部分 Javascript 函数,做一些练习就可以了。
  如果你想当深入了解Javascript,你需要了解 Javascript 的原理、机制。需要知道他们的本源,需要深刻了解 Javascript 基于对象的本质。
  还需要深刻了解浏览器宿主下的 Javascript 的行为、特性。
&&&&初学者全面了解JavaScript,用心读这篇文章 掌握六大JavaScript框架,薪水就是比同级别高!
  作为一个优秀的前端工程师还需要深入了解、以及学会处理 Javascript 的这些缺陷。
优秀的前端工程师应具备什么条件
  首先,优秀的Web前端开发工程师要在知识体系上既要有广度和深度!做到这两点,其实很难。所以很多大公司即使出高薪也很难招聘到理想的前端开发工程师。技术非黑即白,只有对和错,而技巧则见仁见智。
在以前,会一点Photoshop和Dreamweaver的操作,就可以制作网页。
成为一个优秀的前端工程师,都需要具备哪些特质?
现在,只掌握这些已经远远不够了。无论是开发难度上,还是开发方式上,现在的网页制作都更接近传统的网站后台开发,所以现在不再叫网页制作,而是叫Web前端开发。
  Web前端开发在产品开发环节中的作用变得越来越重要,而且需要专业的前端工程师才能做好,它的主要职能就是把网站的界面更好地呈现给用户。
&&&&优秀的Web前端开发工程师应该具备快速学习能力
&&&&Web发展的很快,甚至可以说这些技术几乎每天都在变化!如果没有快速学习能力,就跟不上 Web发展的步伐。前端工程师必须不断提升自己,不断学习新技术、新模式;仅仅依靠今天的知识无法适应未来。Web的明天与今天必将有天壤之别,而前端工程师的工作就是要搞清楚如何通过自己的Web应用程序来体现这种翻天覆地的变化。
  说到这里,我想起了一个大师说过的一句话:对于新手来说,新技术就是新技术。
  对于一个高手来说,新技术不过是就技术的延伸。
&&&&优秀的前端工程师需要具备良好的沟通能力
&&&&因为前端工程师至少都要满足四类客户的需求:
  1、产品经理。这些是负责策划应用程序的一群人。他们会想出很多新鲜的、奇怪的、甚至是不可是实现的应用。一般来说,产品经理都追求丰富的功能。
  2、UI设计师。这些人负责应用程序的视觉设计和交互模拟。他们关心的是用户对什么敏感、交互的一贯性以及整体的好用性。一般来说,UI设计师于流畅靓丽、但并不容易实现的用户界面,而且他们经常不满前端工程师造成 1px 的误差。
  3、项目经理。这些人负责实际地运行和维护应用程序。项目管理的主要关注点,无外乎正常运行时间、应用程序始终正常可用的时间、性能和截止日期。项目经理追求的目标往往是尽量保持事情的简单化,以及不在升级更新时引入新问题。
  4、最终用户。指的是应用程序的主要消费者。尽管前端工程师不会经常与最终用户打交道,但他们的反馈意见至关重要。最终用户要求最多的就是对个人有用的功能,以及竞争性产品所具备的功能。
&&&&&&要做优秀的前端工程师,还需要继续努力:《高性能网站建设指南》、《Yahoo工程师的网站性能优化的建议》、“YSLOW”性能优化建议、《网站重构》、《Web开发敏捷之道》、“ jQuery 库”、“前端框架”、“HTML5”、“CSS3” 这些都要深入研究!
  万事开头难!如果你能到这个境界,剩下的路自己就可以走下去了。
  人们常说:不想当裁缝的司机,不是个好厨师。
  在成为一个优秀的前端工程师的道路上,充满了汗水和辛劳,如果你对前端开发有更多的见解以及不同的意见,欢迎留言将您的见解分享给所有web前端开发爱好者。---来源于微信
共有0个回帖
更多开发者职位上
有什么技术问题吗?
默默学习中的其它问题
类似的话题写给想成为前端工程师的同学们_前端开发_【传送门】
写给想成为前端工程师的同学们
来自:十年踪迹的博客作者:十年踪迹链接:/post/to-be-a-good-frontend-engineer.html前端工程师是做什么的?前端工程师是互联网时代软件产品研发中不可缺少的一种专业研发角色。从狭义上讲,前端工程师使用 HTML、CSS、JavaScript 等专业技能和工具将产品UI设计稿实现成网站产品,涵盖用户PC端、移动端网页,处理视觉和交互问题。从广义上来讲,所有用户终端产品与视觉和交互有关的部分,都是前端工程师的专业领域。2005年的时候大多数网页长这样:现在的网页一般是这样的:前端工程师的发展之路和前景是怎么样的?前端是一个相对比较新的行业,互联网发展早期(1995年~2005年)是没有专业的前端工程师的。随着互联网的发展,大约从2005年开始,正式的前端工程师角色被行业认可,到了2010年,互联网开始全面进入移动时代,前端工程师的地位越来越重要,前端领域的技术发展也越来越快,各种新的思想、设计模式、工具和平台都快速发展,对前端工程师的技能要求也越来越高。有一些数据可以说明前端行业的发展迅速。在2010年之后最流行的新编程语言中有相当部分和前端有关,比如 Dart、Clojure、CoffeeScript 和 TypeScript。作为前端最重要的编程语言 JavaScript,在最近几年里不论是代码量还是关注数都稳居 Github 平台热门编程语言榜。行业对前端需求量持续增加,前端程序员薪水在行业里面处于较领先的位置。近年来最流行的编程语言很多都是JavaScript替代语言JavaScript在最热编程语言 TOP10近几年互联网公司前端团队每年扩张一倍JavaScript工程师平均薪水排名在程序语言工程师收入前10前端工程师需要什么样的知识和技能?有人说前端工程师的技术栈是这样的:还有人说是这样的:实际上前端工程师最核心的技能还是:在一个典型的互联网公司的产品研发流程中,前端工程师和其他角色的关系大致上是这样的:前端是最接近产品和设计的工程师,起到衔接产品和技术的作用,前端为用户可以看到的部分负责,所以也是最接近用户的工程师。在多终端的时代,如果一个产品同时支持PC、移动端,前端工程师还需要和更多的角色打交道:JavaScript 对于前端是最重要的技能,所以优秀的前端工程师要有扎实的JavaScript基本功。而JavaScript这门编程语言也是目前程序设计领域炙手可热的宠儿,如今的它不仅仅只是用来开发Web,还可以用在各个方面。JavaScript 可以用在“树莓派”这类智能硬件芯片开发前端工程师也是软件工程师,所以软件工程师的基础知识也是非常重要的,这些基础知识包括:数学计算机体系操作系统数据结构和算法编译原理HTML和CSS也是前端工程师非常重要的基本功,很多同学,尤其是喜欢写代码的同学容易忽视 Markup Language,实际上 ML 也是 UI 相关的领域里面很重要的内容,不应该被忽视。HTML: The Living StandardHTML & CSS有同学问说:“前端工作需求很多,老是改来改去,实际的技术点并没有多少,产品决定业务逻辑,从事底层基础服务会不会更有挑战和职业未来?”的确,越贴近业务和产品层面上的工作,需求差异性越大,可能改动越频繁。不仅仅是前端改来改去,PHP服务端做业务的同学也面临这样的问题,业务逻辑改来改去。越底层通用性越强,改动相对较少。不过事情都是有两面性的,首先可以这么想想,是底层基础服务的市场大还是互联网业务和产品的市场大。其次,基础服务的通用性很容易达成,而产品层面上如何通用化,如何在业务驱动的产品研发中利用工程化和工具化提升开发效率,这其实是一个很难的问题。丰富的互联网产品已改变和正在改变着我们的生活,然而作为产品的创造者,工程师们怎样让自己过得更好,这个领域值得研究。另外,不要觉得实际的技术点没有多少,举几个例子:实现曲线和曲面动画,计算地图的最短路径,让png静态图片类似于gif图一样做局部的运动,抽奖游戏,物理效果的HTML5游戏,3D图表,增强现实的WebGL视频流处理等等,这些都是在前端领域中遇到的实际问题。就 JavaScript 来说,在实际项目中设计最合适的模型高效率解决现实问题本身就很有挑战。作为一种典型的新生代编程语言,JavaScript 特性丰富,使用灵活,性能优良。面向对象、函数式编程、各种设计模式、MVC 和 MVVM,这些本身就有足够的吸引力。前端要解决界面和交互问题,实际上UI层面上的问题一直是软件工程方面的一个难题,因为UI不停地在变化。浏览器各个版本的兼容性、Web 标准、移动设备、多终端适配,给了前端工程师很大的挑战,对前端工程师的能力也有很高的要求。许多UI问题有不只一种解决方法,许多问题有非常巧妙的思路和精彩的解决办法,前端在工程师群体里是属于非常有创造力的一个群体,因为这个行业需要丰富的创造力和想象力。前端工程师还是Web标准的制定者、实践者和推动者,而现在的W3C标准不仅仅局限于浏览器,还包括各种手持智能设备,车载设备、智能家居等等。在未来万物互联的时代,前端将不仅仅是网页上的工程师,而是所有人机交互领域的工程师。前端工程师的学习和成长前端领域发展很快,各种新技术新思想不断涌现,这是一个好现象。但是前端发展太快也带来一些问题,比如有同学就问到我究竟应该学些什么,Angular.js、React、Node.js、ES6、ES7、CoffeeScript、TypeScript……似乎永远有太多东西需要学习,有些东西好像还没学明白就被另一些新的技术取代而“过时了”。其实还是那句话,前端工程师首先是软件工程师,基础是最重要的,如果基础不扎实,一切应用技能就都是“浮云”。前端的基础是什么?HTML、CSS、JavaScript基本功,数学、算法、数据结构、操作系统、编译原理基本功。一个优秀的前端工程师必须要有自己擅长的领域,并且钻研得足够深入,同时要有眼界,能“跨界”。可以以前端作为职业,但千万不要把自己的技能限制在前端领域,因为有很多东西,只有站在前端之外,才能看得更清晰,更透彻。学东西千万别盲目跟风,大家都在谈AngularJS就立即跑去学习,过几天大家都谈React了,就又放下AngularJS去学习React。前端领域知识点很多,值得学的东西也很多,聪明的同学懂得花时间学习成体系的知识并且研究得足够深入,因为只有这样才能从中总结出规律,形成方法论,这样才能最大化学习的价值。知识的正确用法 —— 一个领域里面的大师永远不会是另一个类似领域的菜鸟这次前端星计划布置的一个实现带有农历和节气的万年历,有些同学卡在农历计算上,大约70%的同学懂得去网上找代码,但只有不到1%的同学真正弄明白农历计算的原理。在面试的时候,面试官问到如何做前端性能优化,有的同学能够拿雅虎的性能优化军规回答得头头是道,反复强调使用工具压缩静态资源,但是自己搭建的博客的nginx服务却没有开启gzip。都知道说要合并静态资源,要减少HTTP请求,然而为什么要减少HTTP请求,减少请求之后预计能改善多少性能,获得多少收益呢?需要弄明白这些问题,也需要深入了解HTTP协议本身。还有一个更有趣的问题,大家都说写HTML的关键是语义化,那么到底什么是语义化呢?这个问题难住了不少同学。标签要符合语义,这个答案看似简单标准,但什么样的标签才是符合语义?强调用 strong 不用 b?那如果有个外星文明,它们的语言里 strong 相当于地球的 bold,bold 相当于地球的 strong,那么它们究竟该用 strong 还是用 b?我们说 i 标签是斜体的意思,那为什么 fontawesome.io 拿它做 icon font 的标签,这是不是“反语义”的?过去很多地方农村有一种民间的染坊,制作染布的染料。这种染房里面有一口很大的铁缸,通常都要有一个身体非常强壮的工人拿一根很长的铁棒在染缸里面用力地敲击,敲得越响,制作出来的染料颜色越鲜艳。 为什么越用力敲打铁缸染料就越好?染坊的人说这是祖祖辈辈传下来的经验,而事实上也是如此,真的染料的颜色和敲打用力有很大关系。直到有一天,一位从村里走出去学化学的大学生,弄明白了原来只需要在染料中加适当比例的铁屑,就能让染料和含铁元素氧化物产生化学反应而变得更鲜艳。原来祖祖辈辈传下来的“仪式”实际上在真实原理面前只是一种信仰和宗教。同样,如果我们不去了解技术的本质而止步于应用,那么我们就只是技术宗教的信徒。所以在周爱民老师的《JavaScript 语言精髓与编程实践》中说,计算机语言如同祭司手中的神杖,神杖换了,祭司还是祭司,世人还是会把头叩得山响。祭司掌握了与神交流的方法,而世人只看见了神杖。由兴趣选择前端在我学程序设计的最初,我学习的是C语言,然而整整一本书除了教我如何在黑洞洞的控制台上输出 Hello World 和各种其他字符或者用键盘输入一些什么然后依然是字符输出外,就没有什么其他的内容了。学习了一段时间之后,我的内心一度是崩溃的,因为我觉得这和我想得不一样,学了那么多知识,我都不知道自己究竟算不算是“学会”了C语言,因为在我看来,那些丰富多彩的操作系统和各种应用软件和黑洞洞的控制台之间明显还有着非常巨大的鸿沟。事后回想起来,当时的想法当然是幼稚可笑的,那时候的我并不知道程序语言和运行环境之间的区别,对操作系统、用户API、硬件接口、网络服务等等都完全不了解。然而这并不能怪我,因为C语言的教程并没有任何一言半语来告诉我这一点,我也不知道学习了C语言的语法之后接下来还应该学习些什么。相对来说,Web开发更吸引我,因为不需要安装任何环境,只需要在文本编辑器里面输入一些字符,保存后打开浏览器,马上就能看到丰富的视觉效果,这就是前端的优势,你所做的努力立即就能看得见。相对于死板的输入输出,Web开发在界面可见的一层要丰富多彩得多,这一点吸引了我,如果这一点也能吸引你,让你着迷,那么你就适合学习前端。在选择前端作为职业之前,要明确判断自己对前端开发的确感兴趣,选择做前端,应该是确认自己喜欢和适合做前端,而不是为了一份看起来体面而且薪水不菲的工作。如果你对构建丰富多彩的界面、处理各种交互逻辑不感兴趣,甚至厌烦,那么最明智的选择是放弃成为前端工程师的想法 —— 因为选择一个自己不喜欢的职业,为之忍受数十年直到退休,实在是一件很悲催的事情。对在校学生,我们看重哪方面能力?有同学问,360前端是否一定要求实际经验的学生,在这里我可以回答:否。对于学生,我们比较关心的是:基础:包括数学、算法、数据结构、计算机相关基础的掌握。学习能力和学习方法:如何学的前端,学了多久,学到什么程度,遇到过什么问题,是如何尝试解决这些问题。兴趣:对前端的兴趣如何,这一点可以体现在很多细节上。有一个反面的例子比较常见,一般来说我会问学生最近在关注什么前端新知识,有的学生会说我关注某某某,但当我再问他究竟关注到什么程度,会发现他实际上根本没有在这项新知识上花费多少时间。如果你对感兴趣的问题都不花费时间,如何证明你自己对前端的“兴趣”呢。解决问题的能力:遇到难题如何解决的,遇到没接触过的问题是如何思考和最终解决的。从这里可以判断出同学有没有前端思维,这些问题没有标准答案,我们不追求某些“官方思路”,看重过程而不是结果。关于简历,有同学提到说现在似乎很多公司都希望学生会点 Node.js,会点 React,我自己不会该怎么办。我想说的是,我们并不要求学生必须会这些。相反,我个人更鼓励学生利用时间打好基础。简历上写自己真正擅长的内容即可,我们不会因为在你的简历上看不到 Node.js 或者 React 就忽略你。只要你真心热爱前端并用心学了,你应该明白如何用前端基础来打动我。有的学生喜欢在简历上堆砌词汇,实际上这一点不见得好,因为如果你写了一个你自己一知半解的东西,最后在面试中被面到了,一定会得负分的。技术本身是有深度的,A 同学说“我知道React但没用它做过东西”, B 同学说“我用AngularJS写过一些个人的小项目”, C 同学说“我上个月使用弹性布局的思路来写我的博客,结果在Android系统4.1版本的Webkit浏览器下出现了一个显示bug,最后我是这样这样解决的”。你们说 A、B、C 三个同学我们会选择哪个同学?面试是一个彼此交流的过程,我们希望看到大家在前端领域的能力和潜力,“知道”一件事,并不是一种有价值的能力,尤其是在知识廉价的互联网时代。我们的同学千万不要像背书一样去死记硬背一样东西,而应该真正用心去学。我们的高等学校不仅仅教授大家知识,还有如何真正学习和做研究,不是吗?如果你对前端真的感兴趣并有潜力,花点小心思,你该知道如何学习它。以下摘自:《》简历怎么写1个人信息个人信息这块主要填写的是基本信息,主要用来判断你的条件是否满足某些硬性要求。一般需要填写的是姓名、年龄、性别、婚姻、电话、学历、邮箱、QQ、博客地址、工作年限、所在城市、籍贯,颜值高的同学可以附上相片,其他其实没必要写太多,像身份证号码、宗教、政治面貌、父母亲职业这些都不需要写到个人信息里面。在这里要特别提醒的是3个事情:1.联系电话需要反复确认是否是正在使用的号码;2.邮箱尽可能用使用QQ邮箱,QQ邮箱收邮件可以第一时间知道(当然,前提必须是你设置了微信提醒和QQtips弹出)。之前网上有炒作过简历放QQ邮箱会被鄙视的话题,相信我,大部分面试官或者Hr不会在意你用什么邮箱的,更在乎你能力行不行。3.QQ号码是为了验证用,加好友时不要出现某些莫名奇怪的提问验证。“猜猜我是谁”还能回答,要是一堆火星文就不知道咋说了2工作业绩工作经历是一个比较重要的内容,先展示下我经常收到的反面案例截图从简历上来看,我们确实可以看到这位同学工作了3年,但我们却没办法看出他3年的工作经验积累在这里,甚至可以理解成一个经验用3年。在同样工作三年的简历里面挑,我为什么要选他?好的工作经历其实应该这么写1、介绍一下公司名称和在职时间。  2、用简单的语言描述一下你的项目。  3、评价你做这个项目的业绩如何(当然是要往好的方面去)  4、描述下你在这里面主要有什么影响力的东西例如,这样的写法虽然还是比较简单,但与前面的见光死简历一对比,给人的印象就不一样了。在这里要特别提醒的是:1、工作经历这一块是后面面试的内容之一,所以千万不要弄虚作假。要不很容易露马脚直接被刷掉2、如果你不是应届生,实习经历也要写进去的话,最好注明下。免得让面试方觉得跳槽太频繁。3作品展示作品展示这块我建议展示内容不要超过五个,而且必须是自己的代表作。我曾经从招聘网站自动过滤的简历堆里面捞出一个不错的简历,就是因为他的作品展示有几个一看就感觉好nb。有链接的话,最好能够直接从简历上可以点击过去。有些工作三四年的同学还把大学的程序练习代码都拿出来,这个真心就没必要了。4影响力展示影响力这块一般可以通过分享来体现。简历上可以列举一些你在写过的文章,可以直接访问的页面可以直接贴地址。如果无法直接访问可以考虑保存成附件一起打包提交过去。  如果参加过一些业内技术分享会,例如webrebuild,前端圈,w3ctech的同学,也可以将参加的时间及分享的内容列一下,将ppt作为附件加进去。  当然,如果你有github或者博客地址,也记得在此处写下。5荣誉列表这块是有助于从侧面让面试官知道你的能力及影响力的,例如“年度最佳新人”。所以如果有的话,可以写一下,列举一下获奖原因,最好能够将评语也写进去。如果没有的话,不写也没关系。6简历的排版与格式不要使用某些传统人才网站生成的word文档,那种看起来真的好累。当然也不要特别地去装饰,不用专门在word文档里面拉升一个大牡丹图当背景。  如果是纸质简历,白纸黑字,如果可以,尽可能加入一些你应聘公司的元素。例如以前大学我找工作的时候,页眉处基本会放一个应聘公司的logo。这个可以显著提高简历通过率。  使用mac生成文档的同学记得要试发一下邮件,保证win系统下文档不会乱码。  另外作为前端,我们更希望是把简历当作作品提交过来的。曾经有位同学将他的简历包装成一个minisite提交过来,技术印象加分妥妥!简历的投递是不是简历写得好,就一定可以成功通过呢。当然不是啦。  除开实际个人能力问题,简历的投递也是很关键。常见的简历投递渠道其实有几种:  1、传统的人才招聘网站  2、拉勾网、秒聘网等新型招聘网站  3、QQ群等社交网络  4、公司官网  我们比较推荐各位使用后三个投递渠道。  传统的人才招聘网站存在的问题是面试方看简历免费,但拿联系方式要钱。所以大部分时候,面试官其实不会到上面去找简历(因为找到又联系不上)。  第二三种渠道双方获取信息都是免费的,而且不少公司也开始有内推奖励,会有不少人去通过第二三种渠道去发布招聘信息。通过个人渠道可以更快更好的得到招聘1V1服务,更好地帮你推动整个应聘流程。●本文编号169,以后想阅读这篇文章直接输入169即可。●输入m可以获取到文章目录今日微信公号推荐↓↓↓ 更多推荐请看《》涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。传播计算机学习经验、推荐计算机优秀资源:点击前往《》点击阅读原文,了解野狗
觉得不错,分享给更多人看到
前端开发 微信二维码
分享这篇文章
前端开发 最新文章
前端开发 热门文章

我要回帖

更多关于 前端开发工程师培训 的文章

 

随机推荐