这是我们在编码生涯中绝对必须阅读的书籍的完整列表。 无论您是新开发人员还是经验丰富的开发人员,始终都有获取新知识和采用良好实践的空间。 让我们知道您的想法,如果您还有其他建议,请给我们评论。
- Sandi Metz的 POODR
Ruby中的实用面向对象设计是关于编写可维护的,精心设计的代码。 在教给学生JavaScript的同时,本书中的学习内容与任何语言都相关,并且可以帮助学生和初级开发人员迈向出色的,面向对象的软件工艺。


2. Martin Fowler的 重构
重构是重构现有代码以使其更具可读性,可维护性和可扩展性的技术,并且在软件工程中是一项极其重要的技能。 完善的代码库使您更有信心进行更改和引入新功能,从而降低了出错风险,并且使其他人可以轻松地采用和修改您的代码。 这本书是重构的圣经。 Bill Wake的“重构工作簿”中还提供了一些出色的JavaScript示例。
3. Dave Hoover和Ade Oshineye的 学徒模式
本书不仅仅涉及编写代码,还涉及了解如何学习和创造自己的机会,以发展成为一名出色的软件工程师。 本书中的课程源于作者自身的经验和成为新手开发人员的障碍,并提供了宝贵的信息以帮助您精益求精,并保持自己的积极性和热情。 我们采访了戴夫·胡佛(Dave Hoover),他在曼彻斯特守则(Manchester Codes)给我们的学生们一些鼓励的话:


4. 你不认识JS:凯尔·辛普森(Kyle Simpson)
我们要求所有学生阅读这本书(6个系列中的第一个),作为对编程和JavaScript基本概念的介绍。 如果您打算进行编码冒险,或者甚至是有经验的开发人员,本系列文章的目的是提供对JavaScript的完整深入了解,包括范围,对象原型,类型,异步JavaScript和ES6。 好处是可以在GitHub上免费阅读。
5. 道格拉斯·克罗克福德(Douglas Crockford)编写的 Javascript The Good Parts
如果您选择只阅读一本关于JavaScript的书,请尝试阅读。 Douglas Crockford将JavaScript语言分解为基本原理。 它调出了JavaScript的所有优秀部分,并向读者建议应避免使用该语言的哪些部分。
本书中使用的语言简单明了,使所有经验水平的开发人员都可以使用。 复杂的JavaScript概念(例如闭包,作用域和原型继承)以清晰的方式进行了说明。
最后但并非最不重要的一点,它包括有关正则表达式模式匹配的详细部分,这可能有助于揭开正则表达式的神秘面纱。
6. Eric Evans的领域驱动设计
任何开始感到放心将代码块放在一起的程序员都将很快意识到,复杂性不是写代码,而是写可维护和可扩展的代码。 埃里克·埃文斯(Eric Evans)创造了“无处不在的语言”一词,这意味着在参与项目的主要参与者之间采用一种共同的知识。 这有助于减少混乱,同时解决复杂性。 这本书有时可能很罗word,但充满见识。 每个开发人员在整个职业生涯中都应该至少阅读一次。


7.设计模式:Erich Gamma的可重用的面向对象软件的元素
在您作为软件开发人员的职业生涯中,您会注意到两件事:首先,可以将一个解决方案应用于一系列类似的问题; 其次,一个问题可以有多个解决方案。 本书是可用于常见编程问题的高级,可重用解决方案的目录,以及有关它们或多或少合适的上下文的建议。 熟悉上述模式将为您节省职业生涯的时间。
8.清洁代码:敏捷软件技巧手册(Robert C. Martin)
与重构类似,本书不太关注代码的作用,而更多地关注代码的编写方式。 它充满了代码示例,它挑战读者识别每个代码片段的好坏,并涵盖了消除代码异味和编写更干净的代码的技术,从而使以后的工作更加轻松。
9. 罗伯·科纳里 ( Rob Conery) 的冒名顶替者手册
我们的毕业生证明您不需要计算机科学学位即可担任软件工程师。 但是对于自学成才的程序员而言,计算机科学可能是一件可怕的事情-直到现在。 本书由具有20多年经验的自学成才的程序员撰写,他受够了CS对话,它的目标读者是自学成才的开发人员,涵盖了一些核心概念,每个开发人员都将从熟悉中受益用。
10. Ron Jeffries的 软件开发本质
在任何项目团队中以开发人员的身份工作,您可能会遇到相同的问题,这些事情以某种方式完成,因为“这就是我们的方式”,因此项目最终会过度计划,承诺过多,且投放不足。 本书设想了软件产品团队可能面临的一些常见问题,并邀请读者考虑为什么事情按原样进行,以及如果简化了流程,如果您的产品始终准备好交付并且每个决定都是针对性的,将会发生什么情况持续不断地为产品增加价值。
曼彻斯特编码是唯一的兼职编码训练营,在英国北部教授全栈开发。 我们的存在是为了帮助缩小数字技能差距和技术行业内缺乏多样性。