读书人

当小弟我想编一个实用一点的程序的时候

发布时间: 2013-11-19 22:55:29 作者: rapoo

当我想编一个实用一点的程序的时候,我到底需要学习什么?
当我上网查找有多少种树结构的时候,我得到一个下面的列表。
当小弟我想编一个实用一点的程序的时候,小弟我到底需要学习什么
当小弟我想编一个实用一点的程序的时候,小弟我到底需要学习什么
于是我产生一个疑问,当我想编一个实用一点的程序的时候,我到底需要学习什么?
世界何其之大啊,算法,数据结构又何其复杂啊。
设计模式,框架,架构,我仅仅听说它们的名字,
而又何时能懂得它们呢?
他们说,你的程序最好有一个接口能读取配置文件,你学点xml吧。
他们说,你的程序最好能用网页实时检测性能,学点web知识吧。
他们又说,其实已经有这些库了,你只要学习就好了。
他们又说,这些库,还不只一种哦,选个适合你的吧。
大概是自己笨的原因,我还记得上初中的时候解一道题,x^2=x。
(解决过程)我们都是先把x移到左边,然后提取x,得到x(x-1)=0,然后我们解得x=0或x=1。
当时大概几千万个中学生同时做这样的转换,好像世界上的问题的解决方法就是唯一的,而我们称之为数学之美。
我们几千万人做着相似的证明过程,世界就如此唯一,简洁而美。
然而长大后,这种思维方式还遗留在我们的思维里。
然而世界是复杂的,就连堆,栈,队列都可以有数组实现和链表实现,选择哪种?你的自由。
但是真的自由吗?尤其是我们想要一个系统级的程序时,太多选择蜂拥而来。
解决方案,解决方案,解决方案,方案就意味着不会只有一个,每一个方案在提高某一方面的性能的时候,就无法兼顾另外一方面的性能。
世界在我的眼中失去了唯一解,而出现了多解。
在高中的时候,我们通过不同解决方法得到相同的结果(看起来必须相同)的时候,老师会称赞你,啊,这孩子真聪明,真有创新精神。
然而真实的世界是,你通过不同的解决方法,而且给出不同的解,老师又该怎么称赞你呢?
当我们选择一种框架里的时候,我觉得我又躲进了那种唯一性,我们实际上又在抒写相同的解决过程,这种感觉真好,人在平台好做事,果然如此。
但是想象世界上又有如此多的框架,在你的框架之外,当你走出去的时候,你看到了什么呢?
写的很乱, 但是希望有人能看懂我说的是什么。
我来回答我自己的问题吧:当我着手编写一个程序的时候,不能优雅而优美的解决问题总是让我难受,然后又放下不写了。我怀疑是否再往上走一层(有人说,计算机的问题总能通过添加一个层来解决,那么一个应用软件不知道居于多少层的高度了。)就有完美的解决方案了,大多数情况确实如此,别人制定好的框架,能很好的解决你的问题。然而每往上走一层,就是信心消除的过程,越来越没自信了。
是否能够,先写一个程序,实现它的功能,不要管是不是写的很烂,如同童年的我们用泥巴捏出一个又一个奇形怪状的玩具,只要求开心。
但这话,始终说的没底气。
不知道大家学习的过程中,有没有过产生这种想法,讨论一下吧。
[解决办法]
即然你讲到一个"实用", 那么当你写代码的时候, 需要什么的时候,就去用什么, 不会就学到会, 用"实用"方案, "实用"的代码, 编写出"实用"的程序.

其实说白了, 程序需要什么功能, 先实现之,先不去管实现的方法是好是坏, 然后再考虑优化,考虑用哪种方法好.

只有当你的经验已经非常丰富后, 才有可能一开始就使用了比较优的方案, 因为这些都是经验总结出来的.
[解决办法]
读一读“爷孙抬驴”和“小马过河”的故事。
再读一读我的博客文章《参禅与悟道——浅谈人生》
[解决办法]
就LZ的tree来说,重点在于LZ关注什么;其实大多数时候,一个map就够用了。
与其讨论世界有什么,或者世界是什么,不如关注自己要什么。

读书人网 >C++

热点推荐