左耳听风_008_07_推荐阅读每个程序员都该知道的知识

你好,我是陈浩网名左耳朵耗子。

在整个为期一年的专栏内容中啊,我会一步步向你推荐一些有价值的内容供你参考。

这些内容有中文,有英文,也有视频。

他们都是我认为对我非常有价值的信息,我也希望他们能够对你有同样的帮助和启发。

今天呢我为你推荐五篇文章,第一篇是stack of flow,上面推荐的一个经典书单。

第二篇呢是美国某大学教授给计算机专业学生的一些建议,其中啊有很多的学习资源。

第三篇呢是令定的高效代码复查,实践是个很不错的方法,值得你去读一读。

第四篇呢是一份关于程序语言的bug数,相关的有趣的报告,可以让你对各种语言有所了解。

最后呢是一本关于CI加性能优化的电子书。参考资料:https://51gx.top/detail/263

这几篇文章呢我都在文章里给出的链接,方便你进行查看。

在stack上面啊,有用户问了一个问题,大致是想让大家推荐一些每个程序员都应该阅读的最有影响力的图书。

虽然这个问题已经被关闭了啊,但这是一个非非常热的话题。

排在第一位的用户啊给了一大串图书的列表,看上去主要是吓人。

不过呢都是一些相当经典,相当有影响力的书。

在这里呢我就重新罗列一些,我觉得你必须要看的。

第一本呢是代码大全,虽然说这本书有点过时了,而且后头可以垫显示器,但是这绝对是一本经典的书。

第二本呢是程序员修炼指导,这本书也是相当经典,我觉得就是你的指路明灯。

第三本呢是计算机的构造和解释,这是经典中的经典,也是必须要读的那第四本呢是算法导论,这是美国本科生的教材啊,这本书呢应该也是中国计算机学生的教材。

第五本是设计模式,这本书啊是面向对象设计的经典书籍。

第六本是重构,这本书呢是代码换位到和先应代码的最佳实践。

第七本啊是人猿神话,这本书可能有点过时了,但还是比较经典的一本书。

第八本呢是代码整洁制造,主要是讲细节之处的效率完美和简单,还有CI加两本经典的,不能再经典的书。

Effective c plus plus和more effective c plus plus啊,也许你觉得c加加简单,但这两本书带来的对代码稳定性的探索方式啊对你很有帮助。

因为这种思维方式同样可以用在其他地方,以至于后来的各种模仿者,比如effective java也是一本经典书。

那除了刚刚所介绍的书籍之外呢,unix编程技术、unix高级环境编程也是相当经典的书籍。

还有好多啊,我就不在这里一一列举了,你可以看看其他的答案。

我发现自己虽然读过好多书,但同样还有好些书都没有读过。

所以这个问答对我自己也很有帮助。

那介绍完了这个经典书单啊,接下来我再给你介绍一下我推荐的第二篇文章,名字叫做whatever computer sizence major说,意思是每个搞计算机专业的学生应有的知识。

这篇文章的作者是martil, mite是美国犹他大学计算机学院的副教授。

二零零七年呢在佐治亚理工学院取得博士学位。

因为计算机专业课程很多,所且还会随着时代的变化,科目的课程组成也在不断的变化。

所以,如果不经过思考,直接套用现有的计算机专业课程列表,就有可能忽略一些将来可能变得重要的知识点。

所以这里martitile力求从四个方面来总结得出这篇文章的内容。

那第一个方面是要获得一份好工作,学生需要知道什么。

第二呢是为了一辈子都有工作干,那学生需要知道什么?第三是学生就要知道什么,才能进入原精生院。

那第四个方面呢是学生需要知道什么才能对社会有益。

那这篇文章不仅仅对刚毕业的学生有用,对有工作经验的人同样有用。

那这里呢我把这篇文章的内容要点总结一下。

首先对于我们每个人来说,作品集会比简历更有参考意义。

所以在自己的简历中啊,应该放上一些自己的项目经历,或者是开源软件的贡献,又或者是你完成的软件的网址啊等等。

那最好呢有一个自己的个人网址,上面有一些你做的事啊,自己的技能经历和一些你的文章和思考啊,这样会比简历更好。

其次呢,计算机专业工作者也要学会和人交流的技巧,包括如何写演示文稿,还有在面对质疑时如何与其他人辩论的能力。

最后呢他从各个方面去展开计算机专业人士所需要的硬技能,比如工程类、数学、uniits、哲学和实践系统管理,各个技计语言、离散数学、数据结构与算法、计算机体积结构、操作系统、网络安全、密码学、软件测试、用户体验、可视化并行计算,还有软件工程、形式化方法、图形学计算,那人工智能、机器学习以及数据库等等。

那如果详细阅读这篇文章呢,你就可以了解计算机专业知识的全貌。

那这篇文章的第三个部分啊,简直就是一个知识资源。

向导库给出了各个技能方向和观键的知识点,你可以跟随着这篇文章的相关链接学到更多的东西。

我推荐的第三篇文章叫做lindings tips for highly effective code review,意思是lindn的高效代码复查技巧。

对于code review呢,我曾经写过一篇文章,叫从code review谈如何做技术讲述的。

为什么code review是一件很重要的事情。

今天推荐的这篇文章是linking的相关实践。

那这篇文章介绍了lincolink的内部实践的coreview的形式。

具体来说呢,lincolink的代码复查有这样几个特点。

第一个特点是从二零一一年开始就强制要求在团队成员之间做代码复查。

科review带来的反馈意见,让团队成员能够迅速提升自己的技能水平。

这又解决了林肯电影各个团队近年来因为迅速扩张而带来的技能不足的问题。

第二个特点呢是建立公司范围的call review的工具,这样就可以做跨团队的call. Review既有利于消除bug,提升质量,也有利于不同团队之间经验互通。

第三个特点呢是把call review的经验作为员工晋升的参考因素之一。

Call review的一个难点是review可能不了解某块代码修改的背景和目的。

所以lincoldin要求啊,在代码提交到版本管理系统之前呢,要对它做清晰的说明,以便复查者了解其目的,促进review的进行。

这也是lindin代码复查的第四个特点。

我认为啊这个方法实在是太赞了。

因为我看到很多时候review都会说我不了解对方代码的背景,或者说代码量比较大,而无法做call review.但是呢他们却没有找到相应的办法去解决这个问题。

Lindin对提交代码写说明文档这个思路其实是一个非常不错的方法。

因为代码提交人写文档的过程,其实也是重新梳理的过程。

我的个人经验啊是写的文档的时候,通常会发现自己把事干复杂了,应该把代码再简化一下,于是呢就会自己回头去改代码。

可以说啊写文档就是在写代码,有些review工具能允许给出的反馈,只是代码怎样修改可以变得更好。

但长此以往呢,就会让人觉得review提出的意见都表示原先的代码不够好。

所以lindin的代码复查的第五个特点就是为了提高员工的积极性。

Lindin的代码复查工具允许提出这种代码很棒之类的评价,以便让好代码的作者得到鼓励。

我认为啊这个方法也很赞,正面鼓励的价值不可小看。

第六特点是为call review的结果,写出有目的性的注释,比如消除重复代码,增加了测试覆盖率等等。

那长此以往呢,也让团队的价值观更加明确。

它的第七个特点是在call review中呢,不但要rereview提交者代代码,还要review提交者做过的测试。

那除了一些单元测试,还有一些可能是手动的测试提交者,最好列出所有测试过的case啊,那这样可以让review做出更多的测试建议,从而提高质量。

最后一个特点呢是对code view有明确的期望。

不过分关注细枝末节,也不要炫技,而是对要review的代码有一个明确的目标。

介绍完了,link给你内部实践的coreview形式。

接着我再来给你推荐第四篇文章a last scale study of programming languages and co quality in behab.意思是编程语言和代码质量的研究报告。

在文中呢我放了几张这篇文章中的统计图、分类图等等的图片啊,有助于你理解。

这是一个很有趣的研究,有四个人啊,从github上分析了七百二十八个项目,六千三百万行代码近三万个,提交人一千五百万次提交和十七种编程语言。

然们想找到编程语言对软件质量的影响,然后呢他们还对编程语言做了一个分类,想找到不同类型的编程语言的bug问题。

那接着呢,他们还对众多的开源软件和bug类型分别做了一个聚类。

那其中分析的方法我就不多说了,我们来讲一下相关的结果。

首先呢,他们得出来的第一个结果是从查看bug. Face comments次数情况来看呢,CECI加objective CPHP和和python中有很多很多的comments都是和bug face相关的。

而closure house、 ce、 ruby和scallar在bug face common次数上明显要少很多。

在文中的编程语言的bug情况图中呢,如果是正数,就说明高于平均水平。

如果是负数呢,则是低于平均水平。

那分析出的第二个结论呢,是函数式编程语言的bug明显比其他大多数的语言要好很多。

由隐式类型转换的语言产生的bug数啊明显比强类型的语言要好很多。

在函数式语言内部呢,静态类型的语言要比动态类型语言的程序啊出bug的可能性要小很多。

那研究者呢除了想找到编程语言对软件质量的影响和不同类型的编程语言的bug问题,他们还想搞清楚bug数是否会和软件的领域相关。

比如业务型、中间件儿框架live或者数据库。

最后研究表明啊,他们之间并没有什么相关性。

我用一张图片表示了各个语言在不同领域的bug率。

那最后呢研究人员想搞清楚bug的类型是否会和语言有关系,最终的结果的确如此。

那bug的类型和语言是强相关的。

在各有源不同的bug类型的情况图中,如果你看到的是正数,说明高于平均水平。

那如果你看到的是负数,则是低于平均水平。

也许啊这份报告可以在你评估编程语言的时候啊,有一定的借鉴作用。

好,我推荐的最后一篇文章呢是optimising software in c plus plus中文叫做c加加软件。

性能优化时者是anineer fog.而这本书是所有c加加程序员都应该要读的一本书。

它从语言层面、编译器层面、内存访问层面、多线程层面、CPU层面讲述了如何对软件性能调优。

时代是一本经典的电子书,anger fog还写了其他几本和性能调优相关的书。

你可以在文章里我给的网址中去下载,我今天推荐的内容啊都比较干都,需要慢慢吸收体会啊,当然最好是能到实践中去用一用,相信这样你才会有更多的感悟和收获。

另外呢,如果你还对哪些方面的内容感兴趣,欢迎留言给我。

我后面收集推荐内容的时候啊,会有意识的去关注整理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vs 远程链接ssh 开发 简单实验

1.概要 动态编译语言,跨平台必须做分别的编译,比如linux和windows。如何再windows环境下开发编译出linux平台的程序呢,vs支持远程链接编辑,就是再vs中写代码,但是编译确是链接远程的环境编译的。 2.环境准备 2.1 vs…

R语言学习,入门

我是一名6年开发经验的程序员,后端,大数据,前端都会。 现在加入了医疗行业,要做数据分析,前同事的实验室生信专业的,用的是R语言,为了跑通他的程序。就来学一下吧,看了一下好像挺简…

代码随想录day38 动态规划(4)

1049. 最后一块石头的重量 II - 力扣(LeetCode) 难点在于将此问题转为0-1背包问题。思路是将石头分为重量尽可能接近的两堆,两堆之间对碰,到最后剩下的重量会最小。解法与分割等和子集类似。易错点是遍历target时从后往前。 cl…

关于软件本地化,您应该了解什么?

软件本地化是调整软件应用程序以满足目标市场的语言、文化和技术要求的过程。它不仅仅涉及翻译用户界面;它包含一系列活动,以确保软件在目标语言环境中可用且相关。以下是您应该了解的有关软件本地化的一些关键方面: 了解范围 软件本地化是…

0704模拟记录

1.完美数 暴力 #include <iostream> #include <vector>using namespace std;bool perfect(long long res) {if (res < 10) {return true;}else if (res > 10 && res < 100 && res % 10 0) {return true;}else if (res > 100 &&…

华为机试HJ12字符串反转

华为机试HJ12字符串反转 题目&#xff1a; 接受一个只包含小写字母的字符串&#xff0c;然后输出该字符串反转后的字符串。&#xff08;字符串长度不超过1000&#xff09; 想法&#xff1a; 针对输入字符串从后往前遍历&#xff0c;输出反转字符串 input_str input()resu…

requets.GET.get()怎样使用?

request.GET.get()是Django中用于获取GET请求参数的方法。 使用方法如下&#xff1a; 在视图函数中引入HttpRequest模块&#xff1a;from django.http import HttpRequest在视图函数中使用request.GET.get()方法获取GET请求参数&#xff0c;参数为需要获取的参数名 def my_…

水利水电安全员C证考试题库资料,2024年全国考试通用!

1.安全生产民事责任&#xff0c;是指责任主体违反安全生产法律规定造成&#xff08;&#xff09;&#xff0c;由人民法院依照民事法律强制其行使民事赔偿的一种法律责任。民事责任追究的目的是为了最大限度的维护当事人受到民事损害时享有获得民事赔偿的权利。 A.民事损伤 B.…

针对SVN、GIT版本管理工具进行源代码加密保护

针对SVN、GIT版本管理工具进行源代码加密保护 在软件开发过程中&#xff0c;版本管理工具如SVN和GIT是不可或缺的组成部分&#xff0c;它们帮助团队管理源代码的变更和版本。然而&#xff0c;这些工具也面临着源代码泄露的安全风险。如果不针对数据进行加密保护&#xff0c;很…

如何从腾讯云迁移到AWS

随着跨境出海潮不断扩大&#xff0c;企业越来越意识到将工作负载迁移到海外节点的必要性&#xff0c;以获取更多功能、灵活性和性能。然而&#xff0c;顺利迁移业务主机并确保业务稳定访问是一项具有挑战性的任务。在此挑战中&#xff0c;借助AWS迁移工具和迁移流程的强大支持&…

003 线程的暂停和中断

文章目录 暂停中断**阻塞情况下中断&#xff0c;抛出异常后线程恢复非中断状态&#xff0c;即 interrupted false**调用Thread.interrupted() 方法后线程恢复非中断状态 暂停 Java中线程的暂停是调用 java.lang.Thread 类的 sleep 方法。该方法会使当前正在执行的线程暂停指定…

如何检查购买的Facebook账号优劣?

Facebook 是全球最受欢迎的社交网络之一,为品牌广告提供了巨大的潜力。许多公司和营销人员使用 Facebook 来推广他们的产品和服务&#xff0c;经常会购买账号。当然也分出了很多账号&#xff0c;比如个人号&#xff0c;BM号&#xff0c;广告号&#xff0c;小黑号等等。 但是,有…

Python中转换图片分辨率而不保存到磁盘的方法

如果你想要直接在Python中处理图片而不保存到磁盘&#xff0c;你可以在内存中创建一个调整大小后的图片对象&#xff0c;然后根据需要使用它。这里是一个python代码的示例&#xff0c;展示如何加载图片&#xff0c;调整其大小&#xff0c;然后直接使用它&#xff08;例如显示或…

字母求和__GESP C++ 三级真题(2024年3月)

字母求和 小杨同学发明了一种新型密码&#xff0c;对于每一个小写英文字母&#xff0c;该小写字母代表了一个正整数&#xff0c;即该字母在字母顺序中的位置&#xff0c;例如字母a代表了正整数 1&#xff0c;字母b代表了正整数 2; 对于每一个大写英文字母&#xff0c;该大写…

实现点击Button,改变背景颜色(多个按钮互斥显示)

一 功能描述 在界面中&#xff0c;有一组button&#xff0c;现在需要实现下面功能&#xff1a;点击其中一个&#xff0c;改变被点击button的背景颜色。当点击下一个之后&#xff0c;之前点击过的按钮背景颜色还原&#xff0c;当前被点击的button背景色又被改变。效果如下图&…

【JavaEE】多线程代码案例(2)

&#x1f38f;&#x1f38f;&#x1f38f;个人主页&#x1f38f;&#x1f38f;&#x1f38f; &#x1f38f;&#x1f38f;&#x1f38f;JavaEE专栏&#x1f38f;&#x1f38f;&#x1f38f; &#x1f38f;&#x1f38f;&#x1f38f;上一篇文章&#xff1a;多线程代码案例(1)&a…

女性经济崛起,天润融通用客户感知挖掘市场潜力

每逢一年一度的国际妇女节&#xff0c;“女性”话题都会被郑重地讨论。 从消费市场上来说&#xff0c;最近几年女性群体正在拥有越来越大的影响力&#xff0c;甚至出现了“她经济”这样的专属词汇在最近几年被市场反复讨论。 毫无疑问&#xff0c;女性消费群体的崛起已经成为…

监控平台—Zabbix对接grafana

目录 一、安装grafana并启动 二.浏览器访问 三、导入zabbix数据&#xff0c;对接grafana 四.如何导入模版 一、安装grafana并启动 添加一台服务器192.168.80.102 初始化操作 systemctl disable --now firewalld setenforce 0 vim /etc/selinux/config SELINUXdisabled cd /…

一文解开关于UWB定位技术的认识误区

作为一项新兴技术产业&#xff0c;UWB定位技术具有无限发展潜力。尤其是在TB行业应用中&#xff0c;UWB定位部分在项目的产值占比为10%-20%之间&#xff0c;这便意味着&#xff0c;UWB定位市场可以撬动其本身市场产值的5-10倍。 然而&#xff0c;伴随着UWB定位技术的迅速发展&a…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【通用密钥库基础概念】

通用密钥库基础概念 在使用通用密钥库完成应用开发前&#xff0c;开发者需要了解以下相关概念&#xff0c;以下概念将贯穿整个开发过程。 可信执行环境&#xff08;TEE&#xff09; 可信执行环境&#xff08;Trusted Execution Environment&#xff09;&#xff0c;简称TEE&…