软件工程师必须阅读哪些书籍?

这是我经常遇到的一个问题,尤其是从刚开始作为软件工匠的旅程的同事或朋友那里得到的问题。 我应该读什么书才能成为更好的开发人员? 我需要读书吗? 我认为这是一个很好的问题,在我成为一名软件工程师时,我问了很多导师。 问题在于,许多人针对不同主题提出了不同的建议。 他们建议的所有书籍本身都是伟大的,但没有人能给我列出那些必不可少的必不可少的必不可少的必读书籍。 好吧,我从导师那里学到了很多东西,并且意识到,对于我建议的许多不同书籍,我仍然需要学习很多东西。 我决定开发一个例程,以便在我的专业领域(软件工程)中每月阅读一本书。 多年来,我汇总了一份清单,我相信该清单对于希望成为顶级开发人员的任何人来说都是必读的。 现在让我指出显而易见的一点–仅阅读清单上的所有这些书籍都不会使您成为一名出色的开发人员。 这将伴随多年的经验,并将这些书中的原理应用于实际实践中,并在现实世界中发展您的问题解决能力。 但是,阅读这些书将帮助您避免许多开发人员在职业生涯早期犯下的重大陷阱和错误。 我希望有人会刚开始就告诉我有关这些书的信息,但是我很幸运多年来找到并阅读了这些书。 您可能已经在大学里读过其中一些关于计算机科学或工程课程的书。 也许当时您并不认为它们很重要,但是我可以直接说一遍,我已经使用和应用了这些书中每本的许多原理。 我还要指出,这并不是一个详尽的清单……每年都会出版许多好书。 这些只是对我自己和我的职业生涯影响最大的人。 而且,这些语言大多与语言无关,可以使用许多软件语言中的任何一种来应用。…

我如何才能更好地阅读并将这些想法牢记在心?

我倾向于忘记很多我也读过的东西,尤其是在内容不立即适用时。 为了帮助我更好地记住和内化我所关心的非小说类材料,我使用的一些具体技术包括: 阅读一章后,记下该章的关键要点。 将一章压缩成简明的注释,迫使我有意识地思考材料及其实际中哪些部分很重要。 这些注释还提供了一种资源,可帮助我在几个月后确实想查看时快速刷新对材料的记忆。 有些人喜欢在书本页边空白处书写笔记。 我更喜欢在Evernote(产品)iPhone应用程序上做笔记,该应用程序会自动同步到我的计算机。 在电话上做笔记还具有很好的属性,它迫使我对如何简洁地表达关键概念做出明智的选择,因为在电话上打字不是那么快。 寻找对此主题感兴趣的人或阅读过同一本书以进行讨论的人。 我和我的朋友们定期开会,讨论在某人公寓里吃饭的书籍/论文讨论俱乐部。 进行有关该书的对话会引入其他人在阅读该书时可能会获得的新见解和联系,或者可能浮出相关主题或相关书,从而更好地理解该材料。 回顾原始阅读中的书面注释显然有助于这些讨论。 有时,我也会从与人交谈(不喜欢一个故事吗?)中读过的书中自愿选出一些有趣的故事或研究,而且我发现许多故事通常都是新话题的不错的对话起点我认识的人 共享故事通常会引发问题或引发围绕该主题的其他话题,因此它们是在书上进行讨论的另一种方式。 利用书中的知识来写关于Quora的一两个答案。 如果这本书很好,那么我可以参考这本书来回答任何问题。 有时,这些答案也需要引用其他来源,我发现这些来源可以进一步帮助巩固我从原著中获得的任何知识。 我想做的更多相关活动是,在我读过的有趣的书上写文章,这是与他人分享思想的好方法,同时也可以巩固我在脑海中所读的内容。…