2017年前端工程师应该学习什么
作者:Artem Sapegin
编译:胡子大哈
翻译原文:http://huziketang.com/blog/posts/detail?postId=58aaa33bfc5b7f63e8c23f68
英文原文:2017 is the year that front-end developers should go back and master the basics
** 转载请注明出处,保留原文链接以及作者信息**
在我们所生活的这个快节奏的世界里,人们都倾向于把自己的时间用在进行一些新的创造上,然后再互联网上讨论它们。
我并不是说不该这样做,而是我认为我们应该适当的慢一点,把注意力也放在一些不会改变世界那么大的事情上。这不仅会提高我们的工作效率、提升我们传递的价值,而且也会使我们学习那些新工具、新方法更快。
这篇文章结合了我的的经验和我的新年祝福,也非常希望能够得到读者的建议和反馈。
学习如何写可读性强的代码
我们大部分的工作并不在于写新的代码,而是在于维护已经存在的代码。这意味着你会更经常地读代码而不是写代码,因此,你需要为了下一个阅读你代码开发者优化你的代码,而不是为了编译器优化你的代码。
我推荐下面三本Amazing的书,按这个顺序来,从短到长。
- Dustin Boswell 的 《编写可读代码的艺术》,英文原版在这里 The Art of Readable Code。如果对印刷要求不高,这里也有 影印版。
- Robert C. Martin 的 《代码整洁之道》,英文原版 Clean Code: A Handbook of Agile Software Craftsmanship
- Steve McConnell 的 《代码大全》,英文原版 Code Complete: A Practical Handbook of Software Construction
深入学习 JavaScript
当有一个新的 JavaScript 框架,而这个框架又比以往的任何框架都优秀的时候,我们很容易陷入一种状态——学习该框架,而不是学习语言本身。如果你正在使用一个框架,但是不理解他是如何工作的,那么请停下来,开始学习这门语言,知道你理解了你所使用的这个框架的工作原理。
- 作为起始读物,Kyle Simpson 的系列图书《你不知道的JavaScript》是一个很好的选择,你可以购买,也可以免费 在线阅读。
- Eric Elliott在 2017 JavaScript的学习主题 中给出了一个长长的学习列表。
- Henrique Alves 列出了一些在 学习React之前应该知道的事情 (实际上是任何框架)。
- Mike Pennisi 的博文 JavaScript Developers: Watch Your Language。——理解在新 ECMAScript 特征中的 TC-39 过程。
学习函数式编程
多年以来,我们希望在 JavaScript 中使用类。现在终于可以了,但是我们再也不想用它们了。我们要的是函数!甚至在写 HTML 的时候,也使用函数(JSX)。
- Kyle Simpson 的 Functional-Light JavaScript。
- Frisby 教授的函数式编程电子书 《JavaScript 函数式编程》,英文版:Mostly adequate guide 。还有他的 免费在线视频教程。
学习设计基础知识
作为前端开发人员,我们在团队中是离用户最近的,甚至比设计师还近。如果你需要设计师来检查你放到屏幕上的每个像素,那么一定是你出了什么问题。
- David Kadavy 的 《黑客与设计:剖析设计之美的秘密》,英文原版在这里 Design for Hackers: Reverse Engineering Beauty》,还有一套 免费教程。
- Tracy Osborn 的视频教程 Design for Non-Designers
- Nathan Barry 的 Design of Web Applications。
- Jason Santa Maria 的 On Web Typography,亚马逊上也可以买到,链接在这里。
- Alan Cooper 的 The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
- 这里还有几篇关于 UI 动画的文章: How to Use Animation to Improve UX,Transitional Interfaces。
学习如何和同事一起工作
我们之中的一些人选择编程是相比于同人打交道,更喜欢同电脑打交道。但是不幸的是,这并不是工作之道。
我们并不是在隔离的环境下工作,通常要和其他开发者、设计师、项目经理沟通,甚至有时候还需要和用户沟通,这显得非常困难。但是如果你想要知道你在做什么事情以及为什么做这件事情,沟通是非常重要的。而你所做的事情,正是你的价值体现所在。
- John Sonmez 的《软技能:代码之外的生存指南》,英文原版在 这里。
- Robert C. Martin 的 《代码整洁之道:程序员的职业素养》,英文原版:The Clean Coder: A Code of Conduct for Professional Programmers
- Jim Camp 的 Start with No: The Negotiating Tools that the Pros Don't Want You to Know
学习如何为他人写文档
我们与同事或者其他人沟通的很大一部分都是通过文字来的。任务描述,任务注释,代码注释,git 提交,聊天信息,邮件,博客,微博等等。
想象一下人们需要花多少时间在阅读和理解这些信息上。如果每个人能通过自己清晰简洁的表达来节省他人理解的时间,那工作环境和效率将会得到很大的改善。
- William Zinsser 的 On Writing Well: The Classic Guide to Writing Nonfiction
- William Strunk and E. B. White 的《风格的要素》,英文原版在 这里。
- Orwell 的 Rules on writing。
- 俄语版很赞的 Glavred课程。
学习传统计算机科学的智慧
前端开发不仅仅是做酷炫的动画下拉菜单,它比以前更加复杂。臭名昭著的“JavaScript 疲劳”一部分就源于我们要解决的问题复杂性的增加。
这也意味着,作为前端工程师也是时候学习这些经过了几十年发展演变的非前端知识了。同时,这也是我希望从你们那里得到一些建议的地方,你们觉得前端工程师,从以往的计算机科学中应该学习哪些知识呢?
这里列出我自己的一些建议资源:
- Coursera 上的 像一个计算机科学家一样思考问题。
- DHH的 五本对我影响最大的编程书。
你想推荐给我什么呢?2017年,你将要学习什么呢?希望你也能分享你的计划出来。
我最近正在写一本《React.js 小书》,对 React.js 感兴趣的童鞋,欢迎指点。