编程学习中的一些常见误解

Posted 盛溪的猫猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程学习中的一些常见误解相关的知识,希望对你有一定的参考价值。

自己最近发现了一位宝藏博主,她的名字叫做  “SchelleyYuki”,一个半路转码的北美程序媛,分享的很多知识真的非常不错。

第一个误区:编译型语言?解释型语言?

 解释器工作原理:

编译器工作原理:

准确的表达应该是,某个语言的某个特定实现,是编译型或者解释型的。

姐姐举例,一个团队在开发一个新语言时,往往会为它开发一个解释器,用来测试这个语言。

 

编译型或者解释型,不同语言其实都是可以实现的,如果你不了解其原理,就是死记硬背,那么对于你认识这个概念或者这个知识本身反而增添许多误解。

在我看来这其实是,我们对于一些语言来说,我们哪些方式更为常用的,就比如说,一些语言的使用场景,更适合与一句一句的告诉它,还是我把菜谱都翻译完,我再给你。

按照我浅薄1的理解,可以给大家举一个例子,比如说,Python,它有丰富的类库,并且语言学起来也是比较轻松的,我们时常使用Python去做数据处理,那如果是跑数据,你是希望,我写完一条,你就帮我运算一下,我随时还可以把中间值记录下来,并且不断测试这样我的运算也可以及时调整,不断改进,这样来的好,还是我直接写一大堆,最后就是跑一个没有啥过程的结果?

但是C++/C,比如说它和很多硬件联系紧密,我就是需要一个完整的脚本,要的就是一个结果和反馈,优势性就是更大一些。

不是说,Python不能编译着去运行,也是说C++/C不能解释地去走,只是这些并不是自己的强项,我们实际用的时候都会使用比较擅长这方面的语言来干。

其实这里厨师的例子也让我感觉到了一种什么感觉,就是其实写代码就是在对话,最近一直在阅读号称现代传媒学鼻祖麦克卢汉老师成名作《理解媒介》,就认为这个现代社会的核心其实是沟通和交流,中文对于传媒的更贴切翻译也就应该是交通才对,让我认为,写代码其实就是一个对话的过程,只是跟你对话的这个大叔,他是个外国人,而且他很懒,他不愿意学你的语言,虽然现在我们的话也不断交融,但是大部头呢,还是你需要去学习他的语言,你才能去跟他对话,并且你也可以去把一些很困难的事情交给他去干,因为这些事情在他的眼中都是啥费力的活,但是对于你来说,就要登天了,但是啥呢?他只知道干,他不思考,他擅长当苦工,但是不思考,你必须一步又一步,把设计的思想和理念,方式方法都告诉他,他才能帮你干,但是他真的很卷,而且运算的速度真的飞快,正所谓是各有优势,你们如果想干一些活需要彼此配合。

第二个误区,面向过程?面向对象?函数式? 

因为你如果深入写过一些不同语言的代码时,就会发现,比如,我在写java的时候,我完全可以不用面向对象的方式,就是写出一段面向过程的代码,也是完全没有问题的。

学习一门语言,其实应该把这门语言打散成一个个的特性,把每个语言都研究透彻,这样就算是真正学会了这门语言。

java会预先检查java数据类型

 但是直接检查数据类型的真的也太棒了吧

 

误区三:???Object-Oriented面向对象 

class根本就不是面向对象的本质特点

 面向对象的本质是封装,继承,多态。其实我当时也觉得它是有问题的。

看看OO的创始人是怎么说的,他认为面向对象的首要特征是messaging

 

 

 其实在我眼里看来,你学习计算机不把传播学和互联网思维学好,学出来的大神名字应该叫做chatpgpt,很快就会被替代。

学习知识首先要理解它的底层,如果你对它的底层都没有什么清晰的认识,请问你能学好它的上层建筑吗?含有深意的部分你肯定难以触摸。

多态:

 封装:

 

 

 误区四:英文原版?中文原版?

(1)尽量减少阅读中文书籍,直接阅读原版读物,这样可以减少我们学习过程中的误解。

经典:

鲁棒性(robust:健壮的;强壮的)

 

 

 

 

 

 

 

 

学习记录:软件测试的最常见的误解

误区 1:测试成本太高

在软件开发期间花更少的钱进行测试,或者在以后的维护或修正上花更多的钱。早期测试可以在许多方面节省时间和成本,但是不进行测试就降低成本可能会导致软件应用程序设计不当,从而导致产品无用。

误解 2:测试很耗时

测试从来都不是一个耗时的过程。然而,诊断和修复在正确测试期间发现的错误是一项耗时但富有成效的活动。

误解 3:只测试完全开发的产品

测试取决于源代码,但审查需求和开发测试用例独立于开发的代码。然而,作为开发生命周期模型的迭代或增量方法可以减少测试对完全开发的软件的依赖性。

误解 4:完全测试是可能的

当客户或测试人员认为完整的测试是可能的时,这就会成为一个问题。团队可能已经测试了所有路径,但永远不可能进行完整的测试。可能有一些场景在软件开发生命周期中从未被测试团队或客户执行过,而在项目部署后可能会执行。

误区 5:经过测试的软件没有错误

这是客户、项目经理和管理团队所相信的一个非常普遍的神话。即使具有高超测试技能的测试人员测试了软件应用程序,也没有人可以绝对肯定地声称软件应用程序是 100% 无错误的应用。

误区 6:遗漏的缺陷是由测试人员造成的

即使在执行测试后,将应用程序中仍然存在的错误归咎于测试人员并不是一种正确的方法。这个神话与时间、成本和需求变化约束有关。然而,测试策略也可能导致测试团队遗漏错误。

误解 7:测试人员对产品质量负责

这是一个非常普遍的误解,认为只有测试人员或测试团队应该对产品质量负责。测试人员的职责包括向利益相关者识别错误,然后由他们决定是修复错误还是发布软件。当时发布软件会给测试人员带来更大的压力,因为他们会因任何错误而受到指责。

误区 8:应尽可能使用测试自动化以减少时间

,测试自动化确实减少了测试时间,但在软件开发过程中的任何时候都无法启动测试自动化。当软件经过人工测试并稳定到一定程度时,应启动测试自动机。此外,如果需求不断变化,则永远无法使用测试自动化。

误解 9:任何人都可以测试软件应用程序

IT 行业以外的人认为甚至相信任何人都可以测试软件,而测试并不是一项创造性的工作。然而,测试人员非常清楚这是一个神话。考虑替代方案,尝试使软件崩溃以探索潜在错误对于开发它的人来说是不可能的。

误区 10:测试人员的唯一任务是查找错误

发现软件中的错误是测试人员的任务,但与此同时,他们是特定软件的领域专家。开发人员只负责分配给他们的特定组件或区域,但测试人员了解软件的整体工作原理、依赖项是什么以及一个模块对另一个模块的影响。

以上是关于编程学习中的一些常见误解的主要内容,如果未能解决你的问题,请参考以下文章

哪些算法涉及深度学习? [关闭]

FFmpeg基础库编程开发学习笔记——视频常见格式

Python:经过了十几年,你们还没有消除的对我的误解吗?

Python:经过了十几年,你们还没有消除的对我的误解吗?

机器学习神经网络的一些大众误解

FFmpeg基础库编程开发学习笔记——音频常见格式及字幕格式