03.02 怎么才能练习编程的思想?

冫矿泉水冫


编程,是做控制类工程师都很头疼的事,尤其是一些刚刚入门的初学者,更是对程序无从下手,编出来的程序总是错误百出,易读性差。那么对于编程,怎么才能编出好的程序呢?

两个字,积累。

我们先说下,什么是好的程序。

一个好的程序应该包含以下几点。

1.实现性。

我们编程序为了就是实现我们下位机该实现的功能,比如一些过程控制,化工控制,或者机械设备的相对运动,我们这个程序就是为了生产服务,好的程序段,应该能够完美的实现这个功能。

2.易读性。

易读性非常非常的重要,在编程序的时候一定要考虑好这个程序编完了能够让人读懂,别等程序编完了,自己都看不懂,这样会给后期的调试和维护带来很大的麻烦,更有甚者,后期可能会全盘否定,推倒重来。

3.稳定性。

在编程序的时候多注意一些计时器,计数器的数值变化,尤其是做一些累计时,要考虑数据记录到极限时的变化。程序编写完,调试完,就正式投入运行,程序段的运行稳定性决定了你后期维护的成本,程序稳定运行,你后期的维护成本就会低一些。虽然说程序崩溃的可能性较低,但是一些小问题,还是值得我们关注的,要不然三天两头就可能会有些小问题,不能导致系统停机,但一些小故障还是很让人头疼的。

如何才能编写好的程序。

能编写出好程序,要靠工作中的点点积累,靠调试改程序时的灵机一动。很多入门的工程师常常会将电路图翻译成程序的梯形图,这样的程序虽然也能实现,但一定不是一个好的程序。想要编出好的程序,大家可以参考以下几点。

1.分门别类

一个系统的控制,会有好多种设备,或者好多种的数据,在编写程序时不要将所有的程序都放在一个主程序段中,那样会是的主程序段太臃肿,程序太长,想逐段调试都很费脑子。

将程序分为若干个子程序,这才是一个好程序的基础。

将同一个类型的程序放在一个子程序中,例如将系统中模拟量的处理,都放在一起。将电机的控制电机放在一起,这样做会给我们后期的调试维护带来极大的方便,相查那种类型的程序直接在子程序中一找就OK了。

但是记住,一定要在主程序中调用子程序哈,要不然子程序就不会运行了。

2.善于利用下下位机自己的功能

一个简单的电机启保停电路,大家可能都会将电气原理图直接转换为梯形图,我们以西门子200系列的PLC举个例子,这个电气原理图转换过来的程序应该是这个样子。

而西门子中还有一个就是置位复位指令,也可以完成这个启保停功能。程序时这样的。

其实实现功能的指令有很多,每个工程师编写程序的策略不同,想法不同,用的指令也不同,哪种简单,就用哪个,没有必要拘泥于传统形式。

3.利用程序块

梯形图编程只是编程语言的一种,很多的PLC支持程序块,程序块这种编程方式很方便,以西门子博途为例,创建一个FC或者FB块,可以将一样的程序创建成一个块,这个块其实相当于我们的子程序,只是这个子程序不是梯形图模式了,编程了一个块,这个程序块将输入输出引脚直接固化在上面,我们使用时直接将输入输出填写在这些引脚上就可以。

想编写出一段好的程序,还是要多多的积累,从日常工作中得到精髓,没有什么其他的捷径。


爱科技的小青年


编程是一件非常“烧脑”的事情,下面根据我从事单片机编程的经验来聊聊如何练习编程的思想!我们先从字的表面进行解读一下所谓编写程序中的“程序”二字,按我的理解其实就事按规矩和法则用一定的结构和框架,以时间为基准的先后关系来处理完成某件事情。



我学习单片机编程的第一步就是先“看”,我当初刚成为一个学习单片机“菜鸟”级别的初学者就是通过看别人的程序,这时主要是看懂程序是如何执行的,了解其大体结构和框架,不要求细致深入。当拿到一个别人写好的程序之后能够基本读懂个八九不离十了,这时我们可以通过“改”别人的程序,在这里主要是修改别人程序的一些参数来体会程序的控制原理,进而了解别人编写程序的思想。比如程序的整体结构和算法等。



等以上二步完成之后,我们对编写程序就有了一个整体的认识,就可以把别人不同功能模块的程序“组”合成一个自己想要的程序,因为C语言的优点是可移植性好,对一些功能子程序只需稍加修改就可为我所用,我把它称为“拿来主义”。通过这种方式来学习别人的编程思想,当你练到能把别人的功能模块程序“随心所欲”的组合在一起,构成一个“新程序”时,那么你向真正具有自已编程思想的目标又迈进了一步!当以上都能熟练完成之后,最后一步就是用自己的编程思想来驾驭程序的时侯了,那就是通过“创造和敲写代码”来完成自己编写真正意义上的程序,并且这个程序具有自己的“思想”。到了这一级别我们才真正是一个“码农”。总之,要想真正练习自已的编程思想只有做到“三多”才行。那就是多看、多写、多研究!



以上就是我对如何练习编程思想的一些看法,也是我学习单片机编程时的一点感悟!欢迎朋友们对这个问题展开讨论,敬请观注电子及工控技术!


电子及工控技术


本文为我个人的实践理解,可能与教科书不同,也可能与其它人的思想不同。我尽可能以实践准则来描述


一.首先,什么是编程思想?


编程思想是一种指导思想,这个指导思想,将会诱发你如何写代码的行为。

如果理解这话的意思呢?打个比方,中华文明千百年在民众心中形成了一个“统一天下”的思想,这种思想会诱发各个混乱时期的诸侯或者军阀,以统一中国为目标,而不会像欧洲一样以分裂中国各自独立、各自称帝为目标。

那么编程思想有哪种种类呢?


1)面向过程编程。这是我国绝大部分程序员的思想。这种思想诱发了他们写代码的时候这样的现象:一个方法中写了糅杂了很多的业务逻辑,或者从ui层(点)业务逻辑层(点)数据库访问层这种路径的写法。


2)函数编程。典型的如很多人写的javascript中的function函数。各种业务就以各种很多的function进行编写。


3)面向对象编程。这是比较高级和抽象的思想,它具有三大特性五大原则。即封装、继承、多态,单一、开闭、里氏替换 、依赖倒置、接口隔离。


话外:有些人会告诉你数据结构、算法,我要跟你说的是,那不是编程思想,是编程能力,考验你的逻辑运算能力,你越出色,那么你应对的复杂科技领域就可以更加深入,最终你可以达到科学家的范畴。


二、编程思想的优劣和选择。


面向过程和函数编程,是每一个刚毕业的毕业生就会的原始思想。即,只要学习了编程,那么他一开始写的代码,就是这种思想,不需要教,就会的。

而面向对象编程,则是进阶抽象的。本质上来说,一个程序员的进化,实际上是面向对象编程思想的培养、形成、发展、成熟的过程。

所以,你现在应该知道最优的思想是什么,没错:面向对象。


三、如何建立编程思想


首先,你要时刻谨记面向对象的三大特性五大原则,那几个字,你是很熟悉的,

但你绝对不认识他里面所蕴含的恐怖威力。即:你认得到字是一回事,理解和运用它是另一回事。

然后,你要在你的实操过程中,时刻思考你是否用上了它的特性及原则。

最后,不断的尝试去修正和更改你的代码,慢慢的,你的面向对象编程思想将会开始建立。

四、如何练习、训练和提高编程思想


1.通过学习设计模式。

刚开始的时候,你自己不太可能有对象思想,因为你还未形成对象思维,此时,你需要借助前人的模式总结,不断的练习,通过为模式而写模式的训练去提高它。


2.通过不断的重构已编写好的业务逻辑代码,这需要大量的实践,使他能够让你自己觉得符合三大特性五大原则。


3.评判一个代码你写得好不好,符不符合对象编程思想,有一个非常简单和粗暴的标准:

你的方法体,去除注释,如果你能够让你的每一个方法的逻辑,他的方法体代码行数不高于30行,那么你估计就是写的有成效的。如果你能够发现你的很多方法体,代码行数仅仅只有10行以内个位数的代码时,你的面向对象编程思想已经成熟。


4.将代码思维持之以恒。

通过不断的实践练习,改变你原来天生的过程式编程思想,这需要一个漫长的过程,从我的实践经验来看,至少要3年以上的实践训练,所以从此意义上来说,5年以下的中国程序员99%都不会面向对象。当你不再为模式而写模式时,你随手写的代码是如此的简洁美妙时,你已经比中国95%的程序员牛B了。


怎么你不认可我说的95%?好吧,你放眼看你公司,10个程序员里,有几个是面向对象编程?如果1个都没有,恭喜你,你打败了你公司100%的程序员。



春风扇


除了“编程的思想”,你还能说出几个其他什么“xxx的思想”吗?如果能,你是怎么练习的呢?

并不像“体验类型”的技能,通过“教练”的具体指导,通过反复练习,你就可以学会“某种运动技能”。没有教练可以看到你的大脑正在怎么“运动”。因此,也无法指导你怎么练习“编程的思想”。

不过,抽象的知识却可以通过阅读书本获得。

做好编程的物质准备工作,确实可以求助别人来完成。


井151276607


作为一名从业多年的程序员,同时也是一名教育工作者,我来回答一下这个问题。

首先,所谓的编程思想就是通过编程语言来解决问题的思路和方式,随着当前编程环境的变化,在培养编程思想的过程中也需要考虑更多的因素。

早期编程思想的培养主要基于三方面因素,分别是算法、数据结构和编程模式,虽然这三个因素对于当前的编程思想培养依然具有重要的意义,但是在当前平台化的编程大背景下,培养编程思想还需要考虑到一个重要的因素,就是如何通过编程语言来整合并运用更多的资源。

以云计算为例,通过当前的PaaS服务,程序员可以仅仅通过功能模块的整合来完成一个软件项目的开发,而且各种系统将服务并不需要自己来完成,这些系统级服务往往是早期程序员需要关注的核心问题。从这个角度上来看,当前平台化的编程思想实际上降低了程序员的工作难度,这也能够进一步促进编程语言在行业领域的普及。

除了云计算平台之外,大数据平台、物联网平台、人工智能平台等一众平台对于当前的编程都有非常直接的影响,所以当前程序员要想培养自己的编程思想,一定绕不过各种开发平台。各种开发平台不仅对于应用级程序员具有重要的意义,对于研发级程序员来说同样重要,因为不可能所有的功能都从头开始研发,这既不经济也不现实。

最后,锻炼编程思想还需要完成大量的实践,实践的过程不仅会积累编程经验、调试经验和行业经验,同时也能够形成自己的开发方法,这也可以看成是编程思想的一部分。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!


IT人刘俊明


我学过编程是最基本的汇编语言,当时还学的不错是优秀,是我所有科目中唯一的优秀,用进废退几十年不用了,早忘光了。唯一有印象的是得有逻辑性,不能想当然。

电脑机械化,很有可能使人类从为了生而存劳动的状态中解放出来,劳动会成为一种乐趣。


拜石明贞


其实,有自己的思想才算是真正的编程入门,因为,如果哪怕你写了几万行代码,但是都是按照别人的思路来写的,那么对你而已是没有任何价值的。而且,如果想在这条路上更进一步,那么有自己的思想是必须的一步。

那么怎么才能有思想的编程呢?

首先,需要养成思考的习惯。在工作或者其他编码过程中,首先分析问题,然后在纸上写好自己的思路,并多想几遍有没有问题,最后再去写代码。这样慢慢的就养成思考的习惯。可能前期会比较耗时,但请相信,这对职业生涯绝对是有利的。

其次,多看一些别人的案例,然后分析作者这么作的优点,缺点是什么,如果是你自己来做会怎么实现?这个可以从一些简单的案例入手,逐渐的到比较复杂的项目,检查下来,相信你的成就绝不会低。


天码行空


实践出真知,一定要用编程语言去实际实践几个项目才行的。这里面又分为FPGA的硬件编程语言和纯粹单CPU的软件编程,两种思想完全不同,一为并行一为串行。


信息通信老兵


多看多练多总结,编程跟学习需要是一样的,多看能够让你理解更加深刻,多练能让你掌握得更加牢固,多总结,让你的技术不断提升。


分享到:


相關文章: