由于前端技术更新步伐太快,我们花了大量时间尝试各种新技术然后在网上撕逼。不是说这样不对,只是我觉得咱们应该慢下步伐,然后看看那些一直保持稳定的经典内容:它们可能会大幅提升我们的工作效率,也能让我们更好的理解不断涌现的各种新的工具。
这篇文章是我的经验与对新年期望的一篇杂糅。我乐于分享自己的想法也热切希望大家能提出各种意见。
学习如何写可读的代码
读者中可能有些人和我一样,大部分时间用在修改已有代码而不是写新的代码上。这意味着比起写代码你需要花费更多时间在读并理解已有代码上,然后你需要优化你代码,不是面向解释器优化,而是为了下位需要维护该代码的程序员。
我推荐下面这几本书——按书的厚度排序(译注:有中译版的替换成中文的了):
深入学习 JavaScript
每周都能看见一些比上周更好的框架,我们很容易就将大部分时间耗费在学习这些框剪而不是语言本身上。如果你在使用某个框剪却对其工作原理一知半解甚至全然不知,是时候停下来学习语言本身,然后去深挖一下日常使用的那些工具的原理。
- Kyle Simpson 的书 You Don't Know JavaScript 是个很好的起点。可以在线免费阅读。
- Eric Elliott 的清单:2017年要学的 JavaScript 主题
- Henrique Alves 的清单:学习 React 之前需要了解的东西(实际上是学习任何框架之前需要了解的东西)
- Mike Pennisi的 关注一下你们的语言,JavaScript 开发者们!
学习函数式编程
曾几何时我们一直期待 JavaScript 中有类,突然之间大家又把注意力移开——我们只想要函数!我们甚至用函数写 HTML 了(JSX)。
- Functional-Light JavaScript —— Kyle Simpson 写的介绍 JavaScript 函数式编程的书
- 教授 Frisby 的 Mostly adequate guide to functional programming ebook 和他的免费课程
学习设计相关知识
作为前端开发者,我们比团队中任何人甚至设计师都更贴近用户。如果需要设计师一点点检查你实现出的产品,这肯定是你的锅。
- Hacker 学设计:一本书 和 一门课
- Design for Non-Designers —— Tracy Osborn
- Design of Web Applications —— Nathan Barry.
- On Web Typography —— Jason Santa Maria
- The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity—— Alan Cooper
- 关于 UI 中动画的几篇文章:How to Use Animation to Improve UX, Transitional Interfaces
学习如何与人协作
我们中一些人从事编程是因为倾向于与计算机而不是人打交道——很不幸,这个行业并不全然这样。
我们很少自做自事:我们需要与其他开发者、设计师、项目经理甚至用户交流。这很难但是必要的,因为我们需要搞清楚自己在做什么以及为何需要做它,它是我们做的事情价值的基石。
- Soft Skills: The software developer’s life manual —— John Sonmez
- The Clean Coder: A Code of Conduct for Professional Programmers —— Robert C. Martin
- Start with No: The Negotiating Tools that the Pros Don’t Want You to Know —— Jim Camp
学习写作
我们与同事及其他人的很大一部分交流是书面的:任务描述,代码注释,Git提交信息,即时通讯、邮件、博客等等。
想一下人们要花多少时间阅读和理解这些信息。如果你能精炼清晰的表达,会给他人节省多少时间。
- On Writing Well: The Classic Guide to Writing Nonfiction —— William Zinsser
- The Elements of Style —— William Strunk and E. B. White
- Orwell’s rules on writing
学习计算机经典理论
前端开发已经不仅是做带动画的下拉菜单这种事的时代了。它变得越来越复杂,一方面是由于臭名昭著的 “JavaScript fatigue” 增加了我们处理复杂任务的难度。
Saul:“最近过得咋样”
我:“精疲力尽”
Saul:“家庭?”
我:“不是,JavaScript”
然而,这意味着我们得学习非前端开发者的前辈们几十年积累下来的经验和智慧。下面是我强烈推荐的两本书:
- Learn To Think Like A Computer Scientist course —— Coursera 上的课程.
- 对我影响很深的五本编程书 —— David Heinemeier Hansson