分享
 
 
 

怎样才能尽快的锻炼和提高写程序的思路?

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

我发现我的程序思路太窄

经常短路啊!

9命怪猫 回复于:2002-09-27 23:01:24

多多地有目的看看别人的代码。

向高手请教思路——发扬不耻上问的精神。

有机会看看数据结构之类的书——如果你愿意的话。

以上是偶班门弄斧的几点看法。盼高手补充或者指正。

eclipse 回复于:2002-09-27 23:14:38

问cinc老大,让他每天贴一篇经验或者感觉(当然是对于java编程的思考的,可不是恋爱感受 )!!!!

否则一起骂他~~~

aixy 回复于:2002-09-28 00:17:12

看别人的程序值不值?公司CTO是个很强的人,写程序的速度又极快,所以现在的状况是大家在外面做项目,CTO在家写工具,写好了给大家用,所以就得不停的花时间来看CTO写的程序。都成了一种不知算不算恶性的循环,再没有经历去摸索其它的东西。到底值不值啊!

sakulagi 回复于:2002-09-28 08:42:41

你如果看明白了cto写的程序,而且也想清楚了他为什么这么写,你可以换一家公司了。着一个有机会的地方,你会发现你的能力比你自己想象的要强。

cinc 回复于:2002-09-28 09:44:20

楼上说的都挺有道理。下面是我的想法:

多写写小程序,锻炼思路,其实说“程序思路太窄”,是因为你编写得程序比较少。

还没有经验,程序写多了,自然就会比较容易把问题(自然中的语言)翻译成程序

(计算机中的语言)了。写程序也象学其他东西,会触类旁通的。

小程序有两种:

第一种是小小的算法,比方说在一个字符串中替换某个字符串,用来锻炼思路

第二种是熟悉某个函数的应用,比方说写一段小程序,学习如何使用 File 类

至于看别人的程序,看小程序和看大程序的目的不同:

看别人写的小程序(上面写的那两种),学习的是小技巧,细节。

看别人写的大程序,主要是学习他解决问题的方法,程序的组织结构,是总体思路。

大程序我其实不怎么看。如果程序没有配文档,更是坚决不看。

可以常去这里看看:

好多 Java 的例子哦,设计大部分 Java 类库的使用:

http://javaalmanac.com/egs/index.html

根据上面的提示写些小程序学习各个类的使用。会有很大提高。

还有几个建议:

注意遵守编程规范

比如类,函数,变量的命名规则

如果能做到你写的程序,别人也能看得懂,过几个月你自己还能看懂,就很好了。

写程序前把自己的思路先写下来,然后在写程序,思路作为文档,放在程序前面。

学会看英文帮助

学计算机必须先学会看 english。

先从 api 使用帮助 学起:

哪个类不会用了,先到这里看帮助,老外写的帮助很全的,也通俗易懂:

http://java.sun.com/j2se/1.3/docs/api/index.html

我在本地硬盘上放了三个文档,以供查阅:

java 1.3 api doc

java tutorial

java src

遇到小问题查查很方便的。

有一句话:世上无难事,只要肯登攀

还有一句话:罗马非一日所成。

呵呵,就这些啦。加油加油。

mygod 回复于:2002-09-28 10:27:26

看到这么热烈的讨论,不禁感到手有些发痒,故加上一贴。

我觉得学习别人的优秀的程序的确是个很好的学习手段,尤其是当你实现某个功能时候没有思路或者实现的很拙劣的时候,这时突然发现别人的精妙的实现方法,的确给人的印象特别深刻。但是一味的读程序也不是一个好的方法,最好是结合自己要实现的功能,自己先考虑该怎样做,然后在看别人的程序,效果会比较好。

还有,对初学者来说(自己的亲身感受),在作特别是比较复杂的程序的时候,有的时候容易钻牛角尖,我觉得做软件开发应当始终有一个中心,即你要实现什么功能,所以作的时候的确需要一种发散的思维,为了实现一个目标可以有很多方式,如果执著于一种思路,往往甚至会忘掉自己到底要干什么。

还有,“尽快”这个词汇表达了一种急噪的心情,我觉得这种心态对软件开发是有害的,软件开发是一个渐进的过程,不能一蹴而就,当然我们可以通过想出好的方案提高效率达到“尽快”的效果,但无论如何一定是要有过程的,过程是没法省略的。。。。呵呵,说着说着好象有点走题了。。。。

Eisen 回复于:2002-09-28 10:34:04

[这个贴子最后由Eisen在 2002/09/29 09:36am 编辑]

呵呵……如何写程序……唉……

我写了大约7年程序了,到现在唯一的感觉就是——当初的数学分析没有好好学,今天受累了。

说来说去,写程序就是一个数学模型的建模过程,只要数学功力到了,写程序只是一个副产品。

RoadStar 回复于:2002-09-28 12:18:26

看来是各有千秋啊!

我也只能是滴水石穿了!

:)

eclipse 回复于:2002-09-28 19:58:28

精华对话录!~~~~~

9命怪猫 回复于:2002-09-29 11:33:42

[quote]下面引用由Eisen2002/09/28 10:34am 发表的内容:

呵呵……如何写程序……唉……

我写了大约7年程序了,到现在唯一的感觉就是——当初的数学分析没有好好学,今天受累了。

说来说去,写程序就是一个数学模型的建模过程,只要数学功力到了,写程序只是一个副产品。

[/quote]

(大言不惭地说)兄弟也搞过数学建模——参加过竞赛得过奖,毕业设计很大一部分就是数学分析、建立数学模型……

但是我没有感觉到它对我写程序有何帮助。是不是我现在程序搞得太皮毛了?

cinc 回复于:2002-09-29 11:40:54

[quote]下面引用由9命怪猫2002/09/29 11:33am 发表的内容:

(大言不惭地说)兄弟也搞过数学建模——参加过竞赛得过奖,毕业设计很大一部分就是数学分析、建立数学模型……

但是我没有感觉到它对我写程序有何帮助。是不是我现在程序搞得太皮毛了?

[/quote]

呵呵,可能面对的问题的难点不同吧?

数学建模主要难点在算法方面,属于研究领域的。对数学的能力要求较高

而实际中的项目难点大多在:用户需求复杂(一个字:杂),项目大(需要好的组织能力,管理能力),可能对数学的能力要求不是那么高。

不知对不对。:)

eclipse 回复于:2002-09-29 11:45:10

经常看到资深专家讲数学是何等重要,数学与编程能力成正比

我不能理解,我倒认为逻辑学或者更靠近一些,但逻辑学与数学也只是一般的联系

程序里面的设计模式应该更从属于逻辑学范围吧

cinc 回复于:2002-09-29 11:57:04

是的。设计模式是教你如何组织你的程序中的类的,是一种组织能力的锻炼。

程序中如果用到了复杂的算法,数学能力还是要的,比如链表,二叉树。。。大学里数据结构里学的,好久没用,现在差不多都忘了,不过这基本上在研究一类的项目中用到,现实的基于数据库的项目中好像用的比较少。

软件工程在发展的过程中也从其他学科学到了很多经验。

毕竟他才发展了几十年,面向对象的技术也才十几年,路还长着呢。。。:)

eclipse 回复于:2002-09-29 11:57:39

软件工程师需要数学的真正理由

Keith Devlin2002年05月23日

本文译自 The Communication of ACM 第44卷,2001年第10期

软件工程师们常常宣称他们从来不用在大学里学到的任何数学知识. 说到这个,他们还会说连大学里学到的计算机专业知识都用不了多少。我搞了三十年数学,就让别人来谈计算机专业方面的情况,不过就数学的使用情况而言,我不得不坦白承认那些软件工程师太对了:他们就是用不着大学里学的数学。

但他们也太错了。他们每天都运用着大学里学到的数学。

其实这没什么矛盾。关键在于“运用”这词何解。一种理解是软件工程师们曾在数学课上常碰到的。比如,在高数课上学了分步积分法后,学生们就用该方法解相应的练习题和考试题。这种所谓的“运用”最为常见,而且也是当软件工程师说他们从不用大学数学时所暗指的。不过,这种理解建立在把人的学习方式看作“填鸭”的观点上。 根据这种“填鸭”观,教育主要就是把知识灌到我们头脑中,而运用我们所学主要就是把灌进去的东西再倒出来。我敢说,这种教育观高度简化而且错了。不过,现行教育制度(我也置身其中)下,人们开课,然后设置三小时反刍般的笔试(译注:三小时的笔试是北美很多大学期末考试的标准)来检验课的效果。正是这种方式,一次又一次滋养了教育是填鸭的观念。 相比之下,数十年来所有关于大脑工作方式及学习方法的大量研究都表明,掌握知识和像算法般的系统化做事步骤不过是人们学习过程的表象(我们知道那些是表象,因为我们一般都会在期末考试后飞快地忘记课堂上学到的东西)。教育的真正价值不在于此。我们的大脑或许是世上适应性系统的最佳范例。当我们让大脑经受长期的教育,大脑就会发生永久性的改变。从身体角度讲,大脑中某部分传导神经纤维链进一步生长并得到加强。从功用和经验的角度讲,我们获取了新的知识和技能。学习过程重复得越多,上述的改变就越强越久。 重复学习在数学里展现的效果之强烈,其他学科无出其右。形式化数学大概有五千多岁。5000年在漫漫进化史中不过眨眼工夫,而且肯定只够我们的大脑做出最细微的改变。因此,虽然闪族人在5000年到8000年前提出抽象的数,人类的数学思维当在更久更久前便已发轫。我们在最初的自然选择中发展了思考大自然和社会的能力,但人脑中应数学思考而生的新改变将综合我们的能力,使我们不光能思考具象的世界,还能推演我们头脑所创照的纯粹抽象世界。

要人脑处理新层次上的抽象极度困难。这就是为什么直到18世纪数学家们才能自如地处理零和负数,也是为什么直到今天许多人都不能接受负一的平房根是真正的数。 但是,软件工程全跟抽象相关,它的每一个概念,观点,以及方法,都是完全抽象的。当然,很多软件工程师都不这样觉得,但这正说明了我的观点。他们从数学课上得到的最大收益便是曾对纯粹抽象的物体和结构进行过严格推演。而且,数学课是唯一给他们这种体验的科目。这种体验不在于那些课堂上教的重要东西,而在于其本身是数学化的。日常生活中,熟悉滋生出轻慢,而在学习如何在高度抽象的领域工作时,熟悉培养出的是种感觉,唔,熟悉的感觉 -- 就是说,曾经让人感到抽象的东西开始变得具体,因而变得比较容易对付。 尽管学习数学带给计算机专业人士的回报大过常人,但现今社会里每个人都能由此受益。例如,美国教育部1997年一项研究(The Reilly Report)表明,在高中修过严格的代数或几何课的学生在升学方面表现更加优秀,而且升学后的表现也更好,不管他们在大学里学的是什么。换句话说,看来完成一门严格的数学课 -- 学生们甚至不用学得多好 -- 是让人们提高自己思维能力,变得聪颖的绝佳方法。这种思维能力能让人们在各方面受益。

(我在自己的书,《数学基因:数学思考如何演进及数为什么像闲言碎语》(Basic Books, 2000)中,我更加仔细地分析了本文的观点,并确定了哪些生存优势致使人类有能力进行数学思考。) 如我在这篇短文中所指,学数学对软件工程师们的这种好处比对其他人大得多。其实,这是基本的先决条件。虽然并没在工程系学生的必修数学课的要求里被正式提到,但它的确是数学为什么有用的真正理由。

Keith Devlin (devlin@csli.stanford.edu) 是斯坦福大学语言及信息研究中心的执行主任

cinc 回复于:2002-09-29 12:05:23

[这个贴子最后由cinc在 2002/09/29 12:06pm 编辑]

说的好,数学是最抽象的了,但也最锻炼思维。。。

从中学到的用抽象,演绎,推理的方法来解决问题的能力才是最重要的。

mygod 回复于:2002-09-29 13:24:30

说道计算机与数学的关系,我想可能从事计算机不同领域的人会有不同的感受,象我们作应用软件的就可能不需要非常强的数学水平。

但不能说数学不重要,我觉得一个软件工程师应当具有良好的综合素质,需要多种多样的知识,而不是象人想象的那样是一种单一技能,所以也应当掌握好数学(别忘了计算机科学可是数学发展来得),当然不同工作性质的人可以根据自己的需要选择对数学的精通程度,并不见得都得成为数学家

9命怪猫 回复于:2002-09-29 13:39:45

java这个版真好!受益匪浅!

Eisen 回复于:2002-09-29 14:10:35

其实大家说的都差不多----都是基于逻辑思维的构思能力.

如同cinc版主所言,数学修养是最能锻炼这种抽象能力的.

此外,我要说的是,哪怕是做应用软件,一样需要数学知识,因为只要是设计,哪怕是最小的一个模块,也是一个抽象的过程.

好的应用软件既使只从应用方面去看,同样有分布式和效率以及健壮性和自动化的种种区别.

所以我说,数学能力是编程工作中最重要的一点.呵呵

wwjxjtu 回复于:2002-10-02 21:08:33

我同意写小程序的观点!我觉得看别人的程序太费时间,自己写写小程序,并且尝试用不同的方法,从不同的角度(时间,空间)去写!我觉得那样对开阔思路,加深对语言的理解很有帮助!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有