求解具有“健状性”的程序

2012-06-30

 

6月份的最后一天了,写。。。

 

最近是一边写C代码,一边学C基础,中间出现一个编程的小纠结。

书籍是:《The C Programming Language(second edition)》

 

边写程序边加基础,这是目前的学习方式,

可是不知道是编程的时间多一点好,还是学习基础的时间多一点。

忘记在哪里看过一篇文章大概是说,编程时间要多,从编程中领会理论的知识。

可是,最近的学习状态是,看理论基础的时间多于写代码,

过程中,觉得这样学习并不好,相当于理论脱离实践。

很快,我就遇到问题所在了,

写程序,要如何写,才能把所有可能都解除让程序达到“完美”。

 

比方说,以下一个程序编写:(来自上述所提及的书籍)

编写一个程序,以每行一个单词的形式打印其输入。

 

一开始简单的考虑一般情况,但经过不断地输入不同情况时,发现问题所在。

是不是 所有的程序 要通过不断地编写 才可以把尽可能多的结果 考虑进程序内呢?

是不是每写一个程序要养成先思考再下手呢?

。。。求解!!~~

 

 

 

 

 

在优快云论坛上求助,得到了一些重要的、明确的信息。(虽然这些以前也明白。但是无法概要总结。)

1, 看的书越多, 你越厉害, 毋庸置疑, 技多不压身, 年轻时候不多看书还指望老了再开始学吗, 所以你懂的。说不用看书的人是因为他们没耐心没习惯看书, 所以就出来误导别人, 你如果信了你就输了.

2, 编程一定是先在脑子里想好的,最起码你要有信心你的解决方案是合理的,可行的,其次你要习惯于在脑海里编程,把代码细节理顺清楚。 但并不是所有的问题都能把代码细节理得非常清楚, 但我相信如你一定能把伪代码写下来,所以我并不抵触在未完全理清的情况下动手,动手的过程其实也是梳理与发现问题的过程,但切忌直接动手,那是非常浪费生命的。

3,完美的程序首先是架构设计清晰,必须抽象出接口,抽象出数据结构,你最终的程序应该是一个白痴都能看懂的函数名,白痴都懂的参数与返回值,白痴照着函数说明都会调用。如何松耦合的设计,如果设计变与不变的程序架构,都是看你是不是看了足够多的优秀设计,是不是做了足够多的思考与总结,自己是否亲自实践过,有自己的什么心得体会,这种东西不是看书能学到的,应该去阅读优秀的开源代码模仿学习。

 

胸有成竹,看到这里,我心里有个想法,是否胸中有代码就成功了呢。?

这与我们的这个成语相似。

下面还有一些方法提供,看了对自己有了一些帮助。


没有完美的程序
如果一个程序员觉得自己的程序已经不需要再改了,那这个程序员的职业生命就到此为止了

没有完美的程序,这个说法好。学着了。

那么我的问题应该问,如何达到尽美,尽可能的把所有可能性完善到程序中去。 

 


作为一个新手,我对楼上的各种说法持有不同意见。首先,书是要尽量多看的,特别是一些特别经典的书籍,这一点是勿庸置疑的。但是诸位说的先思考好在动手写代码,这个对新手是真心的不适合。因为新手掌握的东西有限,一开是写东西的时候,可能根本就没有任何想法,如果选择先思考好,再动手,往往会得出“我不会做”,或者是“太难了”的答案。我对于新手,就是想好一点写一点,中途发现不完美再就补充,这是比较适合的。虽然效率可能会低一些,但是对新手来说,这也是积累经验的一种好方法。

这个观点,我也有感觉,。慢慢来,也是我现在的学习进度。

 

看书->写程序->出错->思考->交流->解决错误->思考->看书->... ... 周期为:7,刚好一周

这个周期也不错,但是分得太清,头有点乱了。所以这些时间不定死,灵活定。 

 

 

 

这上面的内容有自己的想法也有他人的提供帮助。

而下面的一个小插曲,则是让我的思维开了,把我这篇随笔的意思一句话就讲清楚了。

 

C语言看完书 给个题目看式简单,但是真正要动手编程却不知道如何下手:
http://topic.youkuaiyun.com/u/20120709/20/94a843f3-486f-42ed-b99e-f8e2d91e7201.html?65931

引用一下,优快云论坛这个贴上的内容。

看完别人的程序想想别人为何这样做
一步一个脚印,多看,多想,多敲。
多看看别人的代码有助于学习到别人的思路。

这三点,总的来说,也就是离不开编程。代码要多敲,代码也不能肓敲,要多想(思考他人的编程思路),但也还是不能多想,还要得懂得总结(从书上学习更多概要性的话题,让自己的思维开拓。),多看书。

 

 

 

转载于:https://www.cnblogs.com/feminping/archive/2012/06/30/howprogram.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行与高效。最后,通过收敛速度、寻优精度等指标评估算法能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值