找回密码
 注册
Simdroid-非首页
查看: 493|回复: 11

[问题讨论] 教你如何学软件编程序(欢迎拍砖)

  [复制链接]
发表于 2008-12-4 12:50:26 | 显示全部楼层 |阅读模式 来自 大连理工大学
    这个题目很大,不是三言两语就能说清楚的。但是我们论坛上总会时不时地有人提出这个问题,目的当然就是想找到一条捷径了。那么,学习软件编制程序究竟有没有捷径,答案是肯定的,有捷径。遗憾的是,一般人都不愿意遵守,结果难免会走一些弯路。
        下面我就自己了解的有关这方面的东西,并结合自己学习软件编制程序的经验和体会,为大家找到一条通往软件操作高手和编程能将的道路,希望对大家有用。当然了,有什么地方说的不好的、不到位的,希望大家能给予批评指正。
因为本人现在用软件一般用有限元来做,编制程序用有限差分来做,所以下面就结合这两方面来进行叙述。其它的如有限体积、边界元、无网格法,虽然原理不一样,但学习和提高的过程和方法基本是一样的。

1. 准备期——也叫潜伏期
    现在无论是企业、高校,还是科研院所,进行编程、利用软件的最少一般都是本科学历,大部分是硕士或者博士,也就是说大家已经至少接受了十几年的学校教育了,而且也都是学校里学协的佼佼者,都有自己的一套学习方法。既然这样,为什么当我们新接触一套软件计算每一个问题,或者拿到一个方程让我们编制程序解决问题的时候,首先感觉到的一点就是陌生,更重要的就是发蒙,不知所措。陌生属于正常现象,因为对于你来说这是一个新事务;但是发蒙和不知所措,就只能怪自己的基础知识没有掌握好,关键是没有学以致用,而是齐齐整整地在脑海里面存放着,不能有效地将这些东西加以调用;尤其是在求职招聘面试的时候,这方面的感觉尤其深。总之,一句话做什么都要有个基础,并要有效调用基础,使其发生有效地支撑作用。
    那么用有限元软件的基础是什么,自己编程的基础又是什么?单从字面意思讲,要用有限元软件,当然要知道有限元是咋回事情呀,但是我们一般在刚刚接触有限元软件的时候,有几个人深刻了解这方面的东西,即使是使用多年的有限元分析人员,能够知道这一点的也是寥寥无几,这样也就不难理解我们在学习有限元软件的时候困难重重,出了问题有些时候就是“丈二和尚摸不着头脑”,更就谈不到真正地解决问题了。所以说,在使用有限元以前,一定要看一些有限元的相关书籍:有限单元法、平面力学有限元、有限单元法在某些方面的应用等,最好是能自己亲自编写一下有限元程序,哪怕是一个最简单的程序,加深自己对有限元的理解。例如有的人说的对壳单元、板单元不了解,软件咋就这么难学,其实这些东西都是有限元基本理论里面的东西,并不是软件的特色。我学习的第一套软件是hypermesh(是很好的前处理软件),但是当时老师根本就没有给我讲有限元这方面的东西,只是让我去学习这个软件,自己也更没有意识去学习有限元方面的东西了,所以好长时间了,连surfaceface这两个单词的意义都搞不清楚,后来才慢慢的知道,原来surface是针对几何的,是几何表面;face是针对网格的,是从网格提取出来的单元表面。说完了有限元软件,改说说自己编程方面的基础了。编过程序的人们都知道,编程相对来说比较容易一些,但是调试程序是很麻烦的,说的严重一点,有些时候程序调出来的时候,真有想跳楼的感觉;尤其是别人用有限元软件来做,可能用不了多长时间就计算出来了,正在一边闲着看片,而且还得到了老板的嘉奖;而又花费的时间和精力可能是他的几倍、甚至是十几倍、几十倍,但程序就是调不出来,自己本身心里就比较难受,又得到老板的批评(说句实话:老板都是相似的,老板要的就是结果,他根本不管你过程),你想你会有什么感觉。所以,为了未雨绸缪,在编制程序一定要提前设定好自己的算法、对变量、数据要提前进行申明,以免调用出错;程序要一段一段的写,调试通过后,再一部分一部分地加入,不然有些时候根本就找不到问题所在;虚拟内存、公用数组等要提前设定好,以免发生堆堑溢出等毛病;变量和在子程序和主程序里面一定要类型一致(这个毛病以前我常发生,现在好了)等。所以,自己编程序要看一下:常微分方程数值解法、数理方程、编译原理、离散数学、数据结构、应用数值分析等方面的书籍,之所以这么多,是因为编程序的过程中,你根本就不知道会发生什么问题,可以夸张地说,几乎在用有限元软件使用过程中遇到的所有问题,自己编程都会遇到,而且时不时地还会有自己的特有问题发生(我把它叫成程序特色)。
    今天说了这么多,抽取了中午的一个多小时休息的时间,暂且先说道这,以后有机会将后续的内容补上,希望对大家有用。


[ 本帖最后由 feasky 于 2008-12-8 07:36 编辑 ]

评分

1

查看全部评分

发表于 2008-12-4 14:06:42 | 显示全部楼层 来自 大连理工大学
Simdroid开发平台
字有点小啊。不过看来lz是准备写一个系列的了。
编程就是为了减少重复劳动,如果编程花费太多的时间,但以后用到的很少,那就完全不必编程了,不过喜欢编程的人例外。
这样说,编程是需要时间成本的,但是编会了回报也大。准备将来靠有限元吃饭的,就好好学学编程吧,只是随便应付交差的就不必了。
至于捷径,向着减少重复劳动的这一目标前进就是捷径了。

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2008-12-4 16:28:42 | 显示全部楼层 来自 挪威
期待后续
回复 不支持

使用道具 举报

发表于 2008-12-7 15:49:32 | 显示全部楼层 来自 湖北武汉
写的不错啊
回复 不支持

使用道具 举报

发表于 2008-12-8 12:38:50 | 显示全部楼层 来自 江苏苏州
写得非常好!
回复 不支持

使用道具 举报

发表于 2008-12-8 15:55:48 | 显示全部楼层 来自 北京
针对楼主~
我等~~~~~~~~~~~~~~~~~~~~
回复 不支持

使用道具 举报

发表于 2008-12-10 11:25:38 | 显示全部楼层 来自 上海
楼主写得很真实啊!我深有感受!
我现在正在干这事,有时苦恼得很!
做计算力学的,不深入理论是不行的!编程也许用不了多久就会是个高手,但要想在理论上有所为,还是要耐得住做苦行僧的!有时真想跳楼!
回复 不支持

使用道具 举报

发表于 2008-12-10 13:09:55 | 显示全部楼层 来自 甘肃兰州
我没编过程序,准备学习来提高工作效率。
就如楼主所言,领导只关心结果,不关心过程。天下都一下。有朝一日你当了领导也会这样的。毕竟领导有更多的事情需要关心。
回复 不支持

使用道具 举报

发表于 2008-12-11 22:41:33 | 显示全部楼层 来自 陕西西安
楼主 说的相当好
相信此贴必火
支持楼主一下子
回复 不支持

使用道具 举报

发表于 2008-12-12 10:21:32 | 显示全部楼层 来自 天津
心得啊,支持
回复 不支持

使用道具 举报

 楼主| 发表于 2008-12-12 12:50:06 | 显示全部楼层 来自 大连理工大学
在此感谢大家的捧场,后面的人不要再发贴顶了,不然就不太连续了,在此谢过大家。我这几天比较忙,过几天不忙了再写后面的
回复 不支持

使用道具 举报

发表于 2009-1-20 22:06:44 | 显示全部楼层 来自 湖南长沙
非常感谢!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-26 15:28 , Processed in 0.058439 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表