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
引用一下,优快云论坛这个贴上的内容。
看完别人的程序想想别人为何这样做
一步一个脚印,多看,多想,多敲。
多看看别人的代码有助于学习到别人的思路。
这三点,总的来说,也就是离不开编程。代码要多敲,代码也不能肓敲,要多想(思考他人的编程思路),但也还是不能多想,还要得懂得总结(从书上学习更多概要性的话题,让自己的思维开拓。),多看书。