回 帖 发 新 帖 刷新版面

主题:困扰我很久的问题(非技术问题)

我现在是一名高中生(今年高一),计算机玩了十年,在小学六年级时开始接触编程,当然是Visual Basic 6。一开始就被其可以给人无限的想象空间所吸引。时至今日,我自认为VB编程水平已有小成,已经能够用自己写的程序逐步代替身边的很多工具,甚至代替品用比以前的用起来更方便。但是很久以前,差不多就是我开始编程不久,我就被一个问题困扰,至今仍未能找到比较满意的答复(或者是说服自己)。
看过我程序的朋友估计都知道,我的程序有一个特点:尽量少用他人的技术,比如第三方控件等。因为我认为那不是我的东西,甚至对那些“别人的”技术有一种鄙视的心理。比如,我写过的一个播放器,用过“别人的”技术的地方只有LISTVIEW和WINDOWS的API。因此功能就受限制,比如播放音乐的格式少,没有特别的音效和均衡器等,而且界面也只是很普通的。而有些技术不如我的人,大量利用那些“别人的”技术,利用一大堆控件拼成一个程序,制作出的程序功能强大且界面华丽。
我真的不知道该怎么办,目前我所拥有的技术还不足以与那些“别人的”技术相媲美,而单靠自己的路子写出的程序却功能少得可怜。我还坚持自己的想法。可是越来越多的人还“恬不知耻”地大量引用“别人的”技术,他们写的程序比我写的功能强大多了,而他们的编程水平却不如我。

我已经被这个问题困扰好几年了,希望这里大家能给我以解决的方法,不胜感激!!!

最后,感谢大家听我唠叨这么多废话

回复列表 (共109个回复)

81 楼

楼主小学六年级时就有VB6.0了...?

82 楼

多谢大家的回复,看了真是收益匪浅,多谢回帖的各路高手!

另:程序员考试成功PASS~~!庆祝一下~~!

83 楼

我认为是你的编程的定位问题。
BASIC本身的意思就是“初学者通用指令代码”,当然一般来说,让编程越容易越好,这样才能让更多人去乐意学习。
用一个简单的语句来打比喻 VB中的打开文件open …………
等级1:VB中open 指令打开文件,这个我就不介绍了。

等级2:使用WindowsAPI来打开文件(createfile)VB中的open指令实际上是调用createfile来打开文件(在win32下打开文件就是createfile,在win16倒是有openfile),如果你使用这个级别来编写程序的话,程序就有点复杂,因为createfile这个函数,有7个参数,而且参数结构很复杂,但是,createfile可以打开更多东西,比如控制台(consoles),通讯设备(包括串口),邮件槽(Mailslots,在网络环境下同一网段可以用它来,把信息从一个发送者发送到若干个接收者),管道(pipe,用于两个进程交换数据,也可以用在网络服务器和工作站之间交换数据)。显然,我们可以发现,当我们使用createfile时候,我们可以打开的东西就多了。

等级3:使用int 13H来打开文件,createfile则是依靠BIOS13H中断(该中断是BIOS带的对磁盘操作的基本中断),其实不是简单的调用,中间还有一个转化机制,通过这个机制,把逻辑目录转化为具体物理磁道扇区(无论是Fat16还是Fat32、NTFS包括Liunix最常用的Ext2,最后都转化为物理磁道),然后调用13H来达到读取数据,基本上打开文件这个操作,要调用多次int13h。从这个层次编写程序的话,你就可以分析诸如引导区,分区表,文件分配表等……当然也可以写出读文件的程序,不过那就更复杂了。实际上硬盘还原卡技术也是利用了这个中断来恢复数据,所谓击穿还原卡技术,从编程技术角度上说,其实是让13h中断恢复原中断程序的入口(硬盘还原卡会拦截原来的13H中断)。

等级4:直接i/o操作。而如果去分析13h中断中的指令,你可以发现最关键的就是in与out这样的i/o指令。所有的数据都是用in或out数据这样的i/o指令,从磁盘到CPU或内存读取或写入的。如果从这个层次写程序的话,可以做到把数据写在相临扇区之间(实际上为了保证扇区数据的安全,扇区与扇区之间是有间隙的,可以再写入些数据)常用在数据加密,防止别人拷贝(正常的拷贝是无法读到相临扇区之间的数据的,只要程序中加入判断是否存在这些数据的指令,没有就……),但是用它来写读取文件的话,相信目前为止除了早期程序员外,相信已经没人会用io指令来写一个读取一个文件了。

所举的例子就是说明你的编程定位问题,你可以从最底做起,这样会非常灵活,可以达到许多特殊的要求,但是也就非常麻烦,编程要耗费许多时间,你可以使用别人已经成熟的技术,就好象直接winapi打开文件,甚至直接在VB中使用open,当然灵活不够,但是编程的效率和稳定就高很多。

使用第三方控件就是这样,看你对写程序的定位而已。其实使用按扭和鼠标就已经很简化了,当初我可是在DOS下,鼠标图片自己画的,鼠标控制程序都自己写的。

84 楼

[em20]别这样,别人只不过用了大量的别人的控件,而你是自己做的,那你肯定比别人强!

85 楼

我是菜鸟,下学期大三了,现在正在学 VB     
    我觉得自己有了一定的水平以后,才大量的引用别人的东西
     我打个比方,,大学里学习数学,,这个东西 ,需要做一些题,实践,,
      但是在做题的过程中,,是不是应该把计算的每一步 都仔细去算呢
     当然是没有必要的,如果你会那些计算,你就可以只要掌握思路就行了
     如果你那些计算不会,你就应该认认真真,一个人去做,去学会。

  看过一句经典的话:

     高手不是在 会不会的程度上,而是在能不能达到的程度上

         别人的控件,,自己看一眼,可能不能立刻容易的编写出来
但是如果自己有这个能力可以编写出来,何必去重复一次呢,

    时间,很有限,,真的,可以学得东西还很多,就像那个做计算,你知道了
加,减,乘,除.....  做题的时候,你只要能够掌握好解题的思路,不断思考
(而不是光每个题都计算),,这样才能不断地取得新的进步,取得质的飞跃

B-三硝基甲苯   

真佩服你,也很羡慕你有真么好一个环境,,那么小就可以接触这些

我上大学,才开始摸电脑的,现在也浪费了2年,暑假在学 VB

我QQ上加了你,,以后有什么问题,向你好好请教了



86 楼

我是菜鸟,下学期大三了,现在正在学 VB     
我觉得自己有了一定的水平以后,才大量的引用别人的东西
我打个比方,,大学里学习数学,,这个东西 ,需要做一些题,实践,,
但是在做题的过程中,,是不是应该把计算的每一步 都仔细去算呢
当然是没有必要的,如果你会那些计算,你就可以只要掌握思路就行了
如果你那些计算不会,你就应该认认真真,一个人去做,去学会。

看过一句经典的话:

     高手不时在 会不会的程度上,而是在能不能达到的程度上

     别人的控件,,自己看一眼,可能不能立刻容易的编写出来
但是如果自己有这个能力可以编写出来,何必去重复一次呢,

    时间,很有限,,真的,可以学得东西还很多,就像那个做计算,你知道了
加,减,乘,除.....  做题的时候,你只要能够掌握好解题的思路,不断思考
(而不是光每个题都计算),,这样才能不断地取得新的进步,产生质的飞跃

B-三硝基甲苯   

可能说得不大好,可能由于你年纪还小,我觉得你的想法是比较 唯心 的

,也由于年龄的关系,不能好好地分析,客观看待这些问题

真佩服你,也很羡慕你有真么好一个环境,,那么小就可以接触这些

我上大学,才开始摸电脑的,现在也浪费了2年,暑假在学 VB

我QQ上加了你,,以后有什么问题,向你好好请教了

87 楼

如果你坚持要那么做,请选择VC,如果你还用VB请你多多的用控件吧 .

88 楼

那里可以发贴啊?

告诉我一 下!

89 楼

用别人的技术是很正常的啊
要不你怎么学习啊
你只有通过这种对比才能学的更多

90 楼

知识是要继承才有发展的,你应该要换一个眼光看问题。你这样的执着,很容易使自己固步自封的。

我来回复

您尚未登录,请登录后再回复。点此登录或注册