在与QQ网友聊天时,谈及了滤波器的问题。显然,对信号分析知识掌握程序欠缺,是不可能设计滤波器,连起码的分析能力也不会有。这时,所谓的动手能力就显得不那么重要了。
所谓的动手,其实不简单的是整天手握电烙铁、做在电脑前面编程的。脱离了理论了指导,所制作出来的东习除了在外观上能够有所创新外,在功能的设计上只依简单的模仿、甚至是照抄。简单的用单片机制作一个电子钟,学过单片机的人谁不会做。不就是几个按键、加上一块LCD,用单片机来控制?这些电路都是现成的,网上一大片。最多也就是将这些电路进行组合起来,重新编程实现罢了。至于编程吗,一个主循环加中断,谁不会呢?但是如果要保证程序的高效性,至少需要对计算机的基本原理,如编译器,计算机组成有所了解。更复杂的,如果要用操作系统的话,那么操作系统的基本原理知识显然是必不可少的。去过很多的电子论坛,总是看到有人发一些帖子,将那些多的满天飞的同类制作如钟之类的发到论坛上,展现一番,自以为有多了不起。孰不知,不知道有多少人已经做过了。还有一些,也只是按照网上的资料,按规则制作了单片机的下载线,也拿到论坛上去"SHOW"一下,很得意的一副样子。但是如果你问他其中的原理,他会答得上来么?
归根到底,现在缺乏的是创新。模仿是必不可少的,但如果一味的照搬,而不吸收为自己的东西。做的项目再多,会的东西也就那一点。
就目前的状况,“完全的创新”是不可能的。毕竟自己目前的水平有限,接触的面也就那么一些。创新必须建立在对已有问题的深入分析之上,再提出自己的有效的解决方案。目前我所能做的是,学习别人的设计,吸纳自己所有。然而如果没有理论知识的学习,做的再多,也只能是浪费时间。
举一个很简单的例子。今天在考虑为小车制定无线通讯协议,其中牵涉到了数据传输过程的差错检测与恢复中的校验算法。一种是校验和算法。用C语言实现这种算法很简单,不超过10行;另一种是CRC算法,在网上找了一些资料,但多半是应用,关于实际编程的,有关的基本原理并未提及。当实现了校验和算法后,我只知道这个算法可以用来检错,但是;
检错的原理是什么?
能够检测到多少错误?
能否检测什么类型的错误?
这种检测算法的优先是什么?
.............
知道算法的基本实现流程,学过C语言的谁不会实现?但问题是理解了么?
另一个有趣的问题,学过网络的人都了解计算机网络的体系统结构,知道应用层、传输层、网络层。。。知道是分层的体系统结构,也知道一个数据包如何由一个主机通过网络在协议栈中传递最终到达目的主机的应用进程。考试也八九十分。但如果要设计一个简单的通讯协议,有谁会想过如何设计的可靠,高效。有关可靠的数据传输原理、协议的实现,计算机网络课程中不可能没有。然而,因为脱离了实践,这种所谓的理论学习也只能算是空中楼阁。
我不想去指责大学教育中问题。首先,这些问题我已经意识到,如果再去指责,只能说明我太过于被动,只知道埋怨,而不够积极。既然自己知道了问题的存在,那我该做什么?显然不是简单的等大学来改善这种状态,即使有那一天,我也等不到了。所以,该做什么,这是不用言明的。再者,这些问题已经存在那么久,依我的力量,如果要去做,岂不类似于自不量力。
所以,现在要多看看书,先掌握好书中的基本原理....
还有,现在的技术发展的那么快,没必要跟着凑热闹。将那些最简单的、最基本的东西掌握了,以后再看那些东西,起码学习也快些。
tengjingshu_112148725 2009-5-3 23:04
用户518079 2009-5-3 14:53
用户146077 2009-5-2 21:03
用户133662 2008-7-29 18:41
用户1364249 2008-4-26 19:09
12864_944456583 2008-4-14 15:02
用户1328398 2008-4-14 11:39