今天看到一篇好文章《前端开发工程师如何在2013年里提升自己》,各大网站疯狂转载。经多番查找,文章原文出自w3ctech:【译】前端开发工程师如何在2013年里提升自己,英文原文:Talks To Help You Become A Better Front-End Engineer In 2013。
2013年,新的一年开始了。抖擞精神,好好开始新一轮的学习吧!
下面是我阅读这篇文章中提到的ppt和video所做的部分翻译以及学习笔记。
一. 基础部分
第一篇文章:How to Stay Up to Date on Web Stuff, Chris Coyier
1. 推荐了三个网站:
- CODEPEN
- ShopTalkShow: A Web Design and Development Podcast
- CSS-Tricks
2. 推荐一本书:The Manual
3. 关于How to Stay Up to Date on Web Stuff这个问题,作者认为隐含着如下潜台词(subtext),而作者也针对这些潜台词给出相应的回答:
潜台词一——给我一些容易的事情来做(Gimme Something Easy):
- Web Design Weekly
- CSS Weekly
- Sidebar
- JavaScript Weekly
- HTML5 Weekly(http://html5-weekly.com/ 这个链接打不开……)
- RWD Weekly
潜台词二——我担心糟糕的决定(I'm worried about making bad decisions):
在开始一个项目开发之前,需要从工作流(Workflow)、开发语言(Languages)、预处理程序(Preprocessors)、框架(Frameworks)、类库(Libraries)和工具/软件(Tools/Software)这几个方面来考虑。
关于应当选用什么样的技术,需要问自己几个问题:
- 该技术适合用于该项目吗?
- 使用该技术只是为了短期内显得很酷还是一个长期而又正确的决定?
- 这个技术失败的代价是什么?
- 整个团队会对该技术感兴趣吗?
- 是否需要雇佣有过该技术经验的新人?
- 围绕该技术进行开发、维护和关注讨论的社区有多大规模?
接着应当考虑以下几点:
- 关注该技术的领头人
- 查看GitHub上关于该技术的庞大资源
- 了解你经常听说的技术
- 考察该技术所在社区的规模
- 衡量该技术研究需要花费的投入
- 雇佣能做出良好决策的人
潜台词三——我正在变老(I'm getting old):
作者分析有这种变老的感觉可能并不是真的变老,而是疲惫了。所以需要自己想办法重新打起精神来。
4. 如何做出正确的决定?
- 充足的睡眠(9-10小时)
- 清楚地列出所有可能的选择
- 考虑每一种选择的结果(部分需要依赖直觉)
- 做出一个最好的选择然后坚持实现它
- 观察该选择的发展态势
作者强调:最重要的选择是超越技术的!
- 你选择与谁一同工作?
- 我的态度是什么?
- 我正在尝试培养什么文化?
- 我是否让用户体验来驱动选择?
- 我是否正在搭建人们喜爱的产品?
- 我是否正在写着人们想读的内容?
作者还指出:在工作中做决策。关于这个问题作者给出四个例子。
例子一:是否开始使用按钮字体(icon font)?
- 单色(single-color)可以吗?
- 性能变好还是变差?
- 该技术使开发速度加快还是减慢?
- 我们能否处理所有可达的问题?
- 我能否找到为我工作的人?
- 我能否自己搭建?
- 它们对我的客户而言看上去是否更好?
例子二;是否使用HTML5新特性?
- 浏览器是否支持?
- 需要注意哪些怪异的问题?
- 需要哪些新特性?
- 我有哪些控件?
- 哪种回退按钮是可接受的?
例子三:是否使用Sass?
- 切换平台的代价是什么?
- 我们是否能让整个团队都做好准备?
- 学习曲线大致什么样子?
- 其他人关于Sass有何看法?
- 使用Sass有何其他优势?
例子四:应该支持哪些浏览器?
- 查看一下YOUR给出的数据
- 当前的使用趋势是什么?
- 支持的代价是什么?
- 我们从支持某种浏览器中能获得什么?
- 做个数学计算来衡量一下是否值得。
作者还强调:要时刻了解新技术、新趋势,如IcedCoffeeScript,它是CoffeeScript的超集。
5. 作者最后又给出一些推荐链接(有些前面已经提到的这里不再重复):
下面是twitter的关注:
- Elijah Manor: @elijahmanor
- Lea Verou: @leaverou
- Mike Taylor: @miketaylr
- Divya Manian: @divya
- Ethan Marcotte:@rwd
- Ben Alman: @cowboy
- David Walsh: @davidwalshblog
- Scott Jehl: @scottjehl
- Jeff Starr: @perishable
- Mat Marquis: @scottjehl(原文这里是否写错了?)
- Simon: @simurai
- Hakim El Hattab: @hakim
第二篇文章:A New Baseline for Front-End Developers, Rebecca Murphey
1. 上面给出的是Rebecca的ppt版文稿的链接。这里是blog版文章的链接。
2. 作者通过列举近年来的前端开发变化,指出前端开发中的重点由一些细枝末节转向工具。因为我们需要自动化(automate)、流水线化(streamline),并使我们的过程防弹化(bullet-proof)。
3. 作者推荐的学习要点:
- JavaScript:作者提供了一套测试来评估大家对JavaScript的掌握程度。一个好的前端开发工程师不仅要知道JQuery、基本的原生JavaScript,还要了解JQuery-less JavaScript、原型继承、函数绑定、Backbone基础、Ember、canJS等。同时推荐了三本学习JavaScript的书籍《Eloquent JavaScript》、《JavaScript: The Good Parts》(JavaScript语言精粹)和《JavaScript Patterns》(JavaScript模式)。
- Git&Github:要全面充分地学会使用git,不仅了解如何创建复制新资源、建立分支和本地合并,而且要能够创建协作工作流、提出请求和代码复查。
- 模块化&构建:不仅要知道将脚本内容放置在<head>标签之外,限制http请求总数,通过压缩来减少http头部负载,还要了解AMD、RequireJS/Almond、UglifyJS和闭包编译器(Closure Compiler)。
- 开发工具:开发者可能已经在工作中使用console.log、console.dir、可编辑的CSS、网络标签以及Firebug或Chrome的开发者工具。但他们还需要了解断点和单步调式的方法、$0、时间轴(timeline)和概述文件(profile),以及其他浏览器。
- 命令行:无论开发者是否喜欢命令行这种方式,他们都有必要了解ack、ssh、find、curl、git和npm,还要能够为经常使用的命令创建别名。
- 模板(templates):开发者可能对采用非HTML方式从服务器端发送数据有所了解,也可能对通过字符串一次性全部插入DOM来构建HTML的方式有所耳闻,但他们还需要知道多种多样的模板类库和折衷,以及RequireJS text!插件。
- CSS:我们可能了解CSS很难维护,也知道应该模块化CSS,最后提交时还应当合并和压缩CSS。但仅有这些是不够的。我们还需要了解SASS、Stylus、LESS、用于纯CSS优化的RequireJS。
- 测试:我们都了解测试的重要性,但往往不知从何入手。这里作者建议通过模块化的方法来简化测试,即使像婴儿学步一样也比压根不进行测试要好得多。
- 自动化(automation)
- 代码质量(code quality):我们都知道代码中微妙的缺陷非常糟糕,也了解项目应该有自己的样式。但我们还要了解JSHint、pre-commit hooks、editor插件。
- 文档:w3schools.com的文档可能不是那么充足,我们还需要知道MDN、dochub.io。(搜索js内容时在前面加上mdn或者在duckduckgo上搜索时用!js)
下一篇文章:前端开发工程师如何在2013年里提升自己——阅读笔记(二)