立式数控车床18年匠心好品牌,产品种类繁多,欢迎您的咨询!

立式数控车床

立式数控车床生产技术精湛,产品质量有保障!

编程的困难到底是什么?

作者:jcmp      发布时间:2021-04-23      浏览量:0
虽然我不是一头大牛,但我从初中开始就开始

虽然我不是一头大牛,但我从初中开始就开始接触编程,并且积累了一些编程思想。

不同的人对编程困难有不同的理解,因为编程本身的维度是不同的,但最基本的,最难控制的复杂性,而不是独立的概念。

1。主要编程困难

正常编写VBA,在Office上只需要不会更改的业务逻辑,这段代码通常在一个人编写的1000行以内。

这样您就不需要软件工程方面的知识了,而且随着时间的推移,您甚至会产生编程简单的错觉。
编程的困难在于逻辑。

逻辑的难点是算法、数据结构,此时您将学习时间和空间复杂度,学习使用三种方法证明快速行的时间复杂性,了解现代计算机在非P类问题面前的弱点,了解图灵机对于不可判定问题的局限性,知道用泵引理证明标准正则表达式永远找不到匹配的括号。

此时,您很难发现计算机实际上不能做很多事情。

下一步,您可以返回到刷每一个OJ,面对问题,第一步是困难的抽象和建模问题,第二步是难以选择算法后,抽象出正确的模型。也许一个非常贪婪的问题是网络流,也许是一个非常相似的问题,结果是最短路径,矩阵快速幂。在

绘制模型后,根据实际问题的各种情况,如单调叠加、斜率、并行四边形优化、在线或离线算法等,选择最优方案,例如,这种形式的DP可以单调叠加、斜率、并行四边形优化、在线或离线算法。稀疏还是密集?
此时,您会发现在最基本的算法中是困难的、困难的。

3.高级编程困难

接下来将细分为特定区域,此时的困难是领域知识。

这也是一个意见问题。图形可能很难整合各种立体角度,而从数学系调来的萧璋可能认为这个公式比代码更亲切。

当然,您可以忽略系统作为一个黑匣子,对现成API的无脑调用,您不需要注意神经网络是如何反向传播的。成熟的库,如

TensorFlow,Caffe已经很好地封装了所有东西,您不必关注C++RTTI的特性是如何实现的。
在现实生活中有很多这样的“程序员”,当问题发生时,梯度就消失了?爆炸?

即使没有太困难的专业知识--只有业务逻辑--我想知道为什么我扩展循环的速度这么快(GCC O2在默认情况下不会优化循环扩展)。

为什么我只改变数组的长度并立即改变速度?

它们也可以尝试许多经验规则,并且可以很好地工作,但它们会发现很困难。
的困难在于编程所在的平台、领域专业本身的复杂性,如上面的循环扩展等等。
这是由于当前CPU使用的分支预测策略和管道中断造成的,因此它也被算作领域知识。

4.体系结构更像是整理代码

--最后,您最终开始编写真实的代码,您会发现代码中有10个GS!
用vs 2017加载所有代码是一天晚上,您无法阅读所有的代码,而且您发现很难控制代码的复杂性。

添加要求时,坏代码应该修改密集代码和文件中的一个或两个参数,代码之间的耦合很大,A函数调整B函数不能使用,AB调整C而不能使用,等待C再调整,年轻人,不再加班。

一组人同时编译一个函数、一个类、一个文件,您刚刚准备好提交,其他人在此文件冲突中做了更改,您只能花半个小时关闭代码回退,还可以查看其他人的代码来防止冲突,只想提交另一个人提交,并且冲突。

如果以前东西向部门有偏见,那么这就是软性工人的困难所在。

您将学习如何对代码进行分层,使用单个示例来只有一个访问入口点,并减少全局变量。体验不要重复自我的有用性。

当您看到一个很长的if Else逻辑段时,您将考虑使用策略模式使它们成为分散的类,不再使用全局变量,确定可以在哪里进行更改,以及业务可以扩展,体系结构可以提前调整。

例如,在今后增加对双语中文和英语的支持的项目中,其他人仍然忙于将字符串更改为wstring,就好像要重写系统一样,而且由于代码体系结构的灵活性,您只需翻译新语言即可。

这理解所谓的体系结构,最好组织代码。

就像面对一座大房子,里面各种脏衣服、电器、家具,你要做的就是把袜子放进一堆袜子里,只有这个柜子才能在整栋房子里找到袜子,你只能把它们放在这个柜子里。

使你在东方没有袜子,在西部没有袜子。

遥控器的按钮不能串,不能打开电视,空调也开着;当橱柜里满是衣服,许多不同的人来拿这些衣服时,最好把一些小柜子分开,然后根据他们拿的人分。如果有很多人有太多的衣服,他们会继续把柜子分开,一些
住宅的部分部分可能会在将来搬进新的电器,在线路开始时安装电线板和插座。“

体系结构”这个词非常高,因此对其进行分类是合适的。

然后您会发现OO的思想有一个不寻常的复杂性,每个实例都有一个状态,这一次这个接口的状态可能与下一次不同,它是不纯的。

这种缺点在遇到并发时尤为明显。

您可以接触到FP的一组纯功能,以消除副作用,然后打开一扇新的门。
在编程困难的地方,不同的人,这段时间会有不同的答案。

但在我看来,编程的困难在于世界的复杂性,而编程的困难只是用逻辑来模拟整个世界,编程的困难在于逻辑的困难和世界的困难。

此时,您刚刚与TMP的兄弟接触,在数百个编译错误中出错,甚至挂掉编译器代码,说编程非常困难。

是的,编程太难了。

我是一名Java工程师,目前全职的JAVA在线指导学习,如果你也在学习Java,了解Java,渴望成为一名合格的Java开发工程师,在开始学习Java的过程中,有任何关于学习方法、学习路线等的问题,您可以申请加入我的Java学习交流小组:3907814,有很多初学者正在自学Java,还有一些Java学习手册、访谈问题、开发工具、PDF文档文员教程,这些都是我在这段时间里用Java技术做的。如果有必要,您可以自己浏览并获取它们: