译注:2016的最后一天读到这篇文章,虽然标题是关于JavaScript的,但是作者所列出的几点当中除了JavaScript语言本身之外的其他几点我觉得对其他语言的开发人员也具有参考价值,所以简单翻译一下,算是做个笔记。
由于我们所处生态系统的快速发展,我们倾向于花时间尝试最新的发明并在互联网上进行讨论。我不是说我们不应该去做这些事情,但是也许我们应该放慢一点来看一下这些不变的事情:它们将极大的提高我们的工作质量和价值,并且帮助我们理解这些新的工具。
这篇博客是我个人经验的和新年愿望的组合。在我分享它的同时我希望能够听到您的建议。
学习怎么写可读的代码
我们工作的大部分内容是修改已有的代码,而不是写新的代码。这意味着你读代码要多过写代码,所以你需要尽量为下一位程序员优化代码,而不是为程序解释器优化代码。
在这里我推荐阅读这三本惊奇的书--按照由短到长的顺序:
- The Art of Readable Code(中文版:编写可读代码的艺术),作者:Dustin Boswell。
- Clean Code: A Handbook of Agile Software Craftsmanship (中文版:代码整洁之道),作者:Robert C. Martin。
- Code Complete: A Practical Handbook of Software Construction (中文版:代码大全), 作者:Steve McConnell。
深入学习JavaScript
当每周都有一个新的JavaScript框架比现有的框架都更好的时候,把你的大部分时间用于学习框架而不是语言本身会容易的多。如果你正在使用一个框架,但是你不能理解这个框架是怎么工作的, 那么停下来并开始学习语言,直到你理解了你所使用的工具怎么工作为止。
- 一个很好的起点是Kyle Simpson的系列读物:You Don’t Know JavaScript,你可以在线免费阅读。
- Eric Elliott 也有一个很长的阅读清单:JavaScript topics to learn in 2017。
- Henrique Alves 也列出了一个清单:在使用React之前你应该知道的事情(事实上任何一个框架都是如此)。
- Mike Pennisi 的JavaScript Developers: Watch Your Language。
学习函数式编程
数年来,我们希望JavaScript支持Class。现在JavaScript终于有了这样功能但是我们已经不再使用:我们需要的是函数!我们甚至在写HTML时都使用函数(JSX)。
- Kyle Simpson的Functional-Light JavaScript。
- Frisby教授的Mostly adequate guide to functional programming ebook以及他的免费课程。
学习基本的设计
作为个前端开发人员,我们离用户比团队中的任何成员都近,甚至设计人员也没有这么近。如果设计人员需要确认你所呈现在屏幕上的每一个像素点,你正在做一些错误的事情。
- Design for Hackers: 图书,免费课程。
- 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。
学习怎样和人协同工作
我们中的一部分人从事编程工作,是因为我们喜欢和计算机而不是人交流---不幸的是,事情并非如此。
我们几乎不会孤立的工作:我们必须同其他开发者、设计者、经理有时甚至还需要和用户交流。如果要真正理解你正在做什么以及而为什么要这么做是非常困难的,但是这非常重要,因为这就是体现我们工作价值地方。
- 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,E. B. White
- Orwell’s rules on writing。
- 俄语版的:Glavred course。
学习老的计算机知识
前端开发不再仅仅是动画展示一个下拉菜单。已经变得比以前复杂的多,由于我们需要解决的问题变得越来越复杂,前端开发已经变成了臭名昭著的“JavaScript fatigue”的一部分。
然而,这些意味着是时候去学习几十年以来非前端开发人员所建立的计算机知识了。这里我也最需要您的推荐。
- Coursera的Learn To Think Like A Computer Scientist课程。
- David Heinemeier Hansson 的The five programming books that meant most to me。
好了,您准备推荐什么?2017您准备学习什么?