每个程序员都应该读的书
StackOverflow 上有一个问题:每个程序员都应该阅读的最具影响力的书是什么:
实际上这个问题已经结束了,但这是一个非常受欢迎的问题。 第一个人给出了一大堆书的清单,看起来确实很吓人,但都是相当经典、有影响力的书。 在这里,我将列出一些我认为您必须阅读的内容。
还有很多,这里就不一一列举了。 你可以看看其他的答案,我发现我好像读了很多书,但也有很多书我没读过,这个问答对我来说也很有用。
中学生计算机专业所需知识
计算机专业应该知道的,每个计算机专业的中学生都应该具备的知识,网址是:
本文作者 Matthew Might 是法国佛罗里达理工学院计算机大学副院长。 他获得了博士学位。 2007年毕业于佛罗里达理工学院。计算机科学的课程很复杂,但随着时代的变化,课程的构成也在变化。 如果不加思考就直接套用现有的计算机专业课程清单,可能会忽略一些将来可能显得重要的知识点。 因此,马太试图从四个方面来总结,从而得到本文的内容。
中学生要想找到好工作需要了解什么?
中学生要想找到一份一辈子的工作,需要知道什么?
中学生进入研究生需要了解什么?
中学生需要知道什么才能造福社会?
这篇文章不仅对刚毕业的中学生有用,对有工作经验的人也同样有用。 这里我将这篇文章的内容总结如下。
首先,对于我们每个人来说,一个作品集(Portfolio)会比一份简历(Resume)更有意义。 因此,在你的简历中,你应该写一些你的项目经历,或者一些开源软件的贡献,或者你完成的软件的网址等等。最好有一个自己的个人网站,里面包含你所拥有的一些东西做好了,你自己的技能,经验,还有你的一些文章和想法会比简历更好。
其次,计算机专业人员还必须学会如何与人沟通,包括如何撰写演示文稿以及在面临批评时如何与人争论。
最后,他培养了计算机专业人员在各个方面所需的硬技能:工程物理、Unix哲学与实践、系统管理、编程语言、离散物理、数据结构与算法、计算机体系结构、操作系统、网络、安全、密码学、软件测试、用户体验、可视化、并行评估、软件工程、形式化方法、图形、机器人、人工智能、机器学习、数据库等。 详细阅读本文以了解计算机专业知识的概述。
本文第三部分简单来说就是一个知识资源引导库,给出了每项技能的方向和重点知识点。 通过点击本文中的相关链接c++程序员简历,您可以学到很多东西。
LinkedIn高效的代码检查方法
LinkedIn 的 HighEffectiveCodeReview 提示(LinkedIn 的高效代码审查方法)位于:
对于CodeReview,我有一篇文章《从CodeReview谈如何做技术》,里面描述了为什么CodeReview是一个非常重要的东西。 明天推荐的文章是LinkedIn的相关实践。
本文介绍了LinkedIn内部实践的CodeReview方法。 具体来说,LinkedIn的代码检查有以下特点。
我觉得这个方法真的很棒。 因为,我见过很多次,Reviewer会说不了解对方代码的背景或者说代码量比较大,很难做CodeReview,但是他并没有找到相应的方法来解决这个问题问题。
LinkedIn为提交代码编写文档的方式是一个非常好的方式,因为为代码提交者编写文档的过程似乎是一个重新组织的过程。 我个人的经验是,在写文档的时候,我通常会发现自己的东西很复杂,应该简化代码,所以我就回去改代码。 是的,写文档就是写代码。
编程语言与代码质量研究报告
GitHub 上的 ALarge-Scale Study of Programming Languages and Code Quality,一份关于编程语言和代码质量的研究报告,位于:
这是一项有趣的研究。 四个人从 Github 分析了 728 个项目、6300 万行代码、近 30,000 个提交者、150 万次提交和 17 种编程语言(如右图)。 之后,他们想要找到编程语言对对软件质量的影响。

之后,他们还对编程语言进行了分类,想要找到不同类型编程语言中的bug。 如右图所示:

此外,他们还对很多开源软件进行了降维,如右图:

对Bug的类型也做了降维,如右图:

分析方法我就不多说了。 我们来看看相关结果。
首先,他们得到的第一个结果是,从 bugfix 提交的数量来看,C、C++、Objective-C、PHP 和 Python 中有很多与 bugfix 相关的提交,而 Clojure、Haskell、Ruby 和 Scala 有很多提交。错误修复提交明显减少。
右图为各语言的Bug情况。 如果您看到负数,则意味着低于平均水平,如果您看到正数,则意味着高于平均水平。

第二个推论是,函数式编程语言的错误比大多数其他语言要少得多。 具有隐式类型转换的语言比强类型语言的错误要少得多。 函数式、静态类型语言的程序比函数式、动态类型语言的程序出现错误的可能性要小得多。
第三,研究人员想要澄清错误的数量是否与软件的领域有关。 例如,业务类型、中间件类型、框架、lib 或数据库。 研究表明没有相关性。 下图展示了各个语言在不同领域的错误率。

第四,研究人员想查明错误类型是否与语言有关。 事实上c++程序员简历,错误的类型和语言之间存在很强的相关性。 右图展示了各个语言不同bug类型的情况。 如果您看到负数,则表示低于平均水平;如果您听到正数,则表示高于平均水平。

事实上,这份报告可以作为你评估语言时的参考。
电子书:《C++软件性能优化》
OptimizingSoftwareinC++-AgnerFog-PDF,C++软件性能优化,
本书是所有C++程序员都应该读的书。 本书重点讲述了语言层面、编译器层面、显存访问层面、多线程层面、CPU层面……讲述了如何调优软件性能。 这确实是一本经典的电子书。
AgnerFog 还撰写了其他几本与性能调优相关的书籍。 您可以从以下网站下载它们:
今天推荐的内容比较干,需要大家慢慢吸收经验。 最好从中学习并在实践中使用它。 相信会有更多的感受和收获。 如果您对其他内容感兴趣,请给我留言。 当我收集推荐内容时,我会自觉地注意整理。