如何成为一名卓越的前端工程师?

最近看到了一篇鸡汤文《How To Become a Great Front-End Engineer》(原文地址http://blog.mcbird.cn/2015/08/15/How-to-Become-a-Great-Front-End-Engineer/),是来自Google的前端工程师-Philip Walton 分享的自己关于如何成为优秀的工程师的一些观点,看完很有感触,里面的每一条观点都能给人带来一些深刻的认识,而且我在博客园开通博客并开始写博客也是受到这篇文章的启发,希望通过博客记录下自己的所学、所想以及一些感悟,希望自己能在前端工程师的路上能走得更远。接下来我将对文章《How To Become a Great Front-End Engineer》里面的每一条观点谈谈自己的看法,记录下来以让自己在将来感到迷茫的时候,可以来这里寻找一下方向。

Don’t just solve problems, figure out what’s really going on.

我对这一句话的解释是:不要仅仅是解决问题,更要找出问题的根源所在。在编程过程中,我们总会遇到各种各样的问题,我们不要因为运气好解决了问题而沾沾自喜,而我们要做的是深入到问题里面去,查找问题出现的根源,时刻保持疑问,思考解决问题的方法有多少种,最终选择一个最优解决方法。就比如我们在前端开发的时候,为什么有时候相同的代码在IE6浏览器跟其他标准浏览器的表现不一样,通过google一下,我们发现问题是IE6对一些样式不兼容,然后我们可能在CSS代码中,通过hack写法单独对IE6写一个样式,然后重新打开IE6浏览器看一下,问题是解决了,可是这种解决方法是最好的吗?我们不能满足于解决问题,更要深入研究它,通过查阅资料寻找新的解决办法,最终挑选一个比较好的解决办法。

Learn to anticipate future changes to the browser landscape

学会预测浏览器领域将来会发生的变化。原文作者举了一个例子,早在2011年的时候,他在一个非常著名的 javascript 框架看到下面这样一段源码(大致如此):

var isIE6 = !isIE7 && !isIE8 && !isIE9;

我们现在看来,这一行代码我们并不能判断用户访问页面的浏览器是不是IE6,但事实上这一行代码的作用当时就是用来判断浏览器是不是IE6的,没错,在IE10出来之前,这一行代码是正确的,然而微软会继续升级IE浏览览器,如后来推出的IE10、IE11浏览器,现在这行代码就要失效了,要想这行代码不出问题,必须将代码改成:

isIE6 = !isIE7 && !isIE8 && !isIE9 && !isIE10 && !isIE11;

所以我们在写代码的时候,也要考虑到浏览器的发展变化,编写搞可维护性的代码,你要学会预测将来可能会发生的变化,即使将来发生了,你的代码要依然能够正常工作。

Read the specs

阅读官方文档。我们都知道官方文档是最具有权威性的,我们中国人看到的大多数编程指南都是根据官方文档编写的,然而一些翻译人员的各方面能力参差不齐,所以最终写出来的书并不能更好地启发读者,可能会让读者对一些规范的理解产生一定的误解,作者所举的例子是跨浏览器的兼容性问题,在此就不做介绍了。我们要做的是尽可能提高自己的英语水平,然后尽可能多地去查阅官方文档。有时候大家所以为对的,其实并不一定符合官方文档解释的。

Read other people’s code

阅读别人的代码。这无疑是一种非常好的学习方式,在前端开发过程中,我们通常会遇到代码不正常工作的状况,也许之前自己已经解决过相同的问题了,然后你用之前使用过的方法去解决问题,这对你的进步是毫无益处的,你要做的是去google一下这个问题,看看别人是怎么解决这个问题的,阅读一下别人写的代码,从中获取一定的启发,从而提升你的编程能力。而且在现实生活中,我们都是在别人写的已经存在的代码的基础上工作的,对别人的代码进行修改、添加。所以阅读别人的代码的习惯与能力是个人成长历程中所必需的。

Work with people smarter than you

跟比你聪明的人一起工作。在中国有句谚语“近朱者赤,近墨者黑”,大概是有这个意思吧,作为前端工程师,他们的知识体系大都是通过自学完成的,在自学过程中往往缺少与别人进行交流,所以写出来的代码通常比较糟糕,同时又没有代码写得比你好的人的指导,所以在很长一段时间你也觉得不会有多么大的进步。然而跟经验比你丰富的人一起工作,你就能获得更好的成长,因为别人会吐槽你的糟糕的代码,让你无地自容,然后怒火燃烧,斗志昂扬,当然你应该明白我这是开玩笑的,我想表达的是,你跟比你聪明的人一起工作,至少会有人审查你的代码,然后给你提出有建设性的意见,让你写出更优秀的代码。

Reinvent the wheel

重复造轮子。这并不意味着不让你在编程的过程中使用其他一些优秀的库(比如jquery)来提高你的开发效率,但是你要想成为优秀的前端开发工程师,你更应该做的是成为这些优秀库的维护者(开发者),而不仅仅是使用它们,单纯的使用那些优秀的库并不能让你理解问题的核心。唯有自己尝试去写一些自己的库,并且不断维护、优化代码,这样你才能学到更多,何不尝试一下呢?

Write about what you learn

把你学到的东西写下来。这个很重要,这也是我写下这篇博客的原因之一。

虽然自己写得并不好,而且写下来并不一定会有人看,但这是记录自己成长历程最好的方式了。把学到的或者不理解的东西记录下来,而且有的知识,可能你觉得自己已经理解了,但是当你通过博客写下来的时候,你才发现事实并没有掌握好。

所以坚持写博客,或许能强迫你更好地理解你所学到的知识。

时间: 2024-10-10 21:40:44

如何成为一名卓越的前端工程师?的相关文章

阿里P7谈:如何成为一名卓越的前端开发工程师!

Hi Philip,您是否介意我问您是如何成为一名卓越 (great) 的前端工程师的?对此您有什么建议吗? 我不得不承认,我很惊讶被问这样的问题,因为我从来不觉得自己是个很卓越的前端工程师.甚至我入行头几年时并不认为自己可以做好这一行.我只确定自己比自己想象中还才疏学浅,而且大家面试我的时候都不知道从何问起 话虽这么说,我到现在做得还算不错,而且成为了团队中有价值的一员.但我最终离开 (去寻求新的挑战--即我还不能够胜任的工作)的时候,我经常会被要求招聘我的继任者.现在回看这些面试,我不禁感叹

如何成为一名优秀的前端工程师 (share)

一.技术的必须的 作为一名最基础的前端工程师你必须掌握HTML.CSS和JavaScript.三者必须同时精通,类似我这样对前端知识一知半解的,一遇到问题就停下工作就四处搜索解决方案的,首先就算不上一个合格的前端人员.像我这样的如果当了前端工程师那工期肯定是不能保证的.合格的前端工程师第一要学会的就是在没有任何外来帮助的情况下(包括搜索引擎),能够完成大多数任务. 以下知识点是作为一个前端工程师必须了解和熟悉的: DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动. DOM操作

如何成为一名优秀的前端工程师

一.技术的必须的 作为一名最基础的前端工程师你必须掌握HTML.CSS和JavaScript.三者必须同时精通,类似我字样对前端知识一知半解的,一遇到问题就停下工作就四处搜索解决方案的,首先就算不上一个合格的前端人员.像我这样的如果当了前端工程师那工期肯定是不能保证的.合格的前端工程师第一要学会的就是在没有任何外来帮助的情况下(包括搜索引擎),能够完成大多数任务. 以下知识点是作为一个前端工程师必须了解和熟悉的: DOM结构——两个节点之间可能存在哪些关系以及如何在节点之间任意移动. DOM操作

如何成为一名优秀的前端工程师(转)

web前端工程师 分类: Web开发应用 一.何为Web前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发工程师,主要职责是利用(X)HTML/CSS/JavaScript/DOM/Flash等各种Web技术进行产品的界面开发.制作标准优化的代码,并增加交互动态功能,开发JavaScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验. Web前端工程师成长之路——知识汇总 图1.

如何成长为一名优秀的前端工程师

小A和小B都是应届毕业生,一起进入了一家互联网公司做前端.半年过去了,小A进步神速,他写的JavaScript代码在组里挑剔的的老员工看来都挺不错:可读性好,模块化程度高,而且有大量的测试.反观小B,他的代码总是一团糟,还经常搞出莫名其妙的bug.每次做code review时,大家对小B的代码都特别头疼. 年底考核的时候,组长让小A分享一下他入职以来是怎么学习前端并快速成长的,小A不好意思地给大家分享了自己的一点学习心得: 首先,前端工程师必须得熟练掌握HTML.CSS和JavaScript.

web前端工程师

Web前端开发工程师是一个很新的职业,在国内乃至国际上真正开始受到重视的时间不超过7年.Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征.在互联网的演化进程中,网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主. 2005年以后,互联网进入Web 2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化.网页不再只是承载单一的文字和图片,各种丰富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好

前端工程师需要掌握以及具备的/////////////转

下面的内容(摘自https://gist.github.com/ourai/6411507)是一名优秀的前端工程师需要掌握以及具备的—— 开发技术 程序 标准规范 ECMAScript HTTP 知识储备 作用域/闭包 数据结构 算法 编程范式 函数式 面向对象 基于原型 面向方面 设计模式 软件架构 MVC MVVM 安全 XSS CSRF 富互联网应用程序 编程语言 JavaScript ActionScript CoffeScript 页面 标准规范 W3C 知识储备 网页设计 排版 响应

写给初学前端工程师的一封信

大家好: 应波波的邀请写一写我对这个话题的想法.从去年开始不少朋友让我帮忙介绍前端工程师,绝大部分忙都没帮上,原因是真找不到人.我当时是这么跟他们分析的:过去的客户端以browser为主,所以html/css/javascript是唯一选择,现在可是mobile first,于是大量前端开发者被native开发分流,以及原本想做前端工程师的后备力量应届生们也选择学native开发,导致前端人荒.随着情况改变,H5(HTML5的大众昵称)在传播上体现的商业价值巨大,无论是创业团队还是巨头自然重视这

前端工程师如何搞定设计

前端是一个承上启下的职位,正因为其位置的特殊性导致其必须了解设计和后台的一些基本知识.本文并非教大家如何取代设计的工作,而是讲解前端如何更快更便捷的实现一些简单的设计任务,在没有设计师的情况下如何利用工具解决UI呈现的问题,让工作事半功倍. Photoshop使用 大多数前端工程师都有过切图的经历,也就是将设计师制作的PSD等格式的图片按照需求切成项目需要的大小并实现页面的呈现,那么作为一名合格的前端工程师,我们有必要了解并熟练的掌握Photoshop的一些功能,下面介绍下几个实用的Photos