SoftEng 版 (精华区)

发信人: cxcxcxcx (灌水大王), 信区: SoftEng
标  题: 学核心还是学手段?
发信站: 哈工大紫丁香 (Thu Nov  8 20:22:49 2001) , 转信


    最近有了些想法,希望能对大家有用,虽然很片面。
以前总看不起TC编的程序,认为太老了过时了,功能有限,
学习时把主要精力放在了流行的东西上。后来有人问我关于
机器人足球的演示程序的东西。当然在Windows下GDI、
DirectX编程、生成流畅的动画都不是什么难事,但是
涉及到AI算法时我就了解不多了。我知道自己这方面不行,
就没有盲目的去动手编程,否则做出来的东西肯定不伦不类。

所以就产生了想法:是学手段还是学核心?大家都知道
象VB、MFC、OLE等等这些与特定OS和编译器相关的东西
迟早会过时的,就象现在C/C++用得挺好的C#就出来了。
而且就算精通VC++、OLE……等这些高级的开发手段如果
不精通各种算法也编不出什么好东西吧?

就算现在软件开发分工再细,一部分搞系统分析、一部分搞3D设计、
、一部分搞一些核心算法设计、一部分编写代码……
但是算法和编程本来就是密不可分的如果对一些比较高深的算法不懂,
如何把它变成代码?比如你负责的模块要实现一个效果或功能,
但是需要涉及到比较高深的图形学理论,而要运用自如或作一些优化
就必须理解它,而不是Copy现成的代码或利用现成的开发库(并且有时没有现成的库)。


这里不是要大家所有的代码都必须自己实现。我的意思是
即使换一个开发平台树还是树图还是图,排序还是冒泡、选择、
归并、快速。。。搜索还是深度优先、广度优先、启发搜索什么的
软件工程还是软件工程、如果冯-XXX体系不变,操作系统还是操作系统
不管是UNIX还是WINDOWS。但是换了个环境后未必有大家熟悉的API、MFC、VB什么的。

虽然知识很快的更新,大家也不会停滞不前,但是这里涉及到精力问题。
以我切身的例子,当年我也曾因为掌握了DOS下TSR技术、直接写显存技术,
觉得学了很多,可是过了几年这些知识还没等用上便贬值了,现在除了在
一些工控机上还有DOS的影子,几乎全是WINDOWS了。

难怪有人感叹:程序员三十而衰,又有我的老师警告我不要去搞编程,
说他同学的一个开发软件的单位60来人,离婚的XX个累死累病的X个。
虽说不全可信,但是无风不起浪。

我认为如果喜欢编程的,最好背靠一门很专业的知识或是有深厚的理论背景,
比如你是个AI专家、或是软工专家、或是有深厚的图形学理论、控制学理论做后盾,
或是精通数据挖掘、精通XX学。我相信不管走到哪儿都很吃香,而且不
会“三十而衰”,别人搞出什么前沿的东西,你能很快的找到他们的论文,
并利用到自己的问题上。

————这当然是最理想的状态,然而理论——实现之间总是有很大距离和
工作量的。总是需要一些人来做的。这里就有个度的问题,学到什么程度,
取舍如何。只能大家掌握了,事实上我也很迷惘。现在我觉得自己什么都不是了。

这只是一家之言,共大家参考,只是希望大家不要整天热衷于手段,
最好掌握一些核心的东西。不要抱着VB什么的认为自己学的很深了,
唉!当初我怎么没报数学系呢。

——————————————————有同感的RE一下,打字好累哦





--

※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 202.118.235.52]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.917毫秒