
1.与具体技术无关
1.1 我?
我是一名中华人民共和国的计算机科学与技术专业的本科生。曾经我也踌躇满志,发奋学习各种计算机的相关知识。但更多的时候是感慨世面上的武林绝学过于深奥难懂,我辈实难理解。就好比学校中有大牌的教授博导给本科生授课,各位本科生们听得一头雾水。因为那些“大师”们把当今每个学生都默认成像“大师”当年那么聪明绝顶,对知识举一反三。也好比从北京要到天津,坐个城际特快,或者更实惠点坐个大学校车就行,何必跑去机场搭个飞机,炫耀自己的资本?
在自己的博客中写点自己学习技术时候的心得体会一直是我的心愿。但苦于种种琐事缠身,比如四级,六级,托福,比如期末考,做网站等等。人也浮躁了,也难沉下心来把自己的想法跟各位计算机科学路上的新鲜人们分享。当前正式期末考试月,功课也挺紧。忙里偷闲,也写下点东西,当成期末复习的苦闷生活的调剂吧。
先讲讲我学习技术的一些经历吧,不算长的经历。
我2004年9月,也就是我18岁那年开始大学生活,读的是天津一所综合大学的计算机系。大一生活十分单调,学校规定不许大一新生带电脑。在大一的一年里面,我进行了大量阅读,为的只是搞清除计算机科学到底都研究些什么,学习某个技术的前提是什么,用现在知道的术语讲,就是进行拓扑排序一下。大一期间,由几个学长带着,也做了几个网站,写过ASP,写过ASP.NET,用C#写过WIN FORM写过T-SQL存储过程。这些经历是很微不足道的,因为做当时的知识水平甚低,随便看几本书就写代码。架构松散,代码凌乱是我的特色。但从这些经历中,确实增加了我对计算机的热爱。
到了大二,开始喜欢上FreeBSD。于是,我被UNIX简约高效稳定的设计所深深吸引。在相当长的时间内,机器上只有FreeBSD一个操作系统。因为有的网站真的需要IE才能正常浏览,于是我就在FreeBSD上使用QEMU模拟win98。在FreeBSD下编程,使我抛弃了IDE的偷懒习惯,学习了GCC,GDB,VIM,MAKE等工具,特别是对C语言的学习,阅读FreeBSD里一些数据结构实现的优良代码等。
到了大二下学期期末,也就是现在。迫于数据结构老师淫威,上机作业要win可视化,一定要用C++或JAVA开发,不得使用C语言,我只好在机器上重新装上window,而与BSD并存。
在2星期的时间内,对WINDOWS SDK编程进行了简单学习,谨以这一系列文字,记录下自己的一些学习体会,学习心得,学习经验,学习方法。
在这里再声明一次,本人绝非牛人,而是很初级的初学者,连篇累牍,错误不少,还望海涵。
1.2 他?
为什么是WINDOWS SDK编程?为什么不是JAVA2,不是MFC,不是VCL,不是VB?
用WINDOWS SDK编程确实古老。在这个浮躁的年代,拖拉几个控件就能出现一个可运行的精美的桌面程序,为什么还要学习WINDOWS SDK?
我个人以为,我们做事情,学东西就要一劳永逸,学最本质的东西。很多人说,计算机发展日新月异,要学的东西太多太多。当然,哪个学科要学的东西就少了?哪个学科在这个时代变化就慢了?
其实,就程序开发来讲,本质底层的东西把握了,任它表层的技术如何封装,如何推陈出新,我们都能以不变应万变!
比如要熟练地进行网站开发,必然 熟练掌握HTML;而要进行WINDOWS编程,就SDK编程是首要打通的任督二脉!可能,很多新手像我一样,被什么MFC,VCL,VC,BCB,QT,GTK+东西搞得晕头转向;可能你我都羡慕那些能写出QQ,FOXMAIL,FLASHGET等工具的高手。其实,事情本身没那么复杂,打蛇打七寸,根本的东西照顾到了,一切就显得那么水到渠成了。
1.3 他们?
新手们往往被很多缩写迷惑,不晓得那些是什么东西。而很多“专业”书都默认读者已经具有了不错的计算机素养。那些大师们瞧不起我们新人,我们就不能让他们瞧不起!不会,可以查,可以用BAIDU,用GOOGLE!或者直接一通电话,一条短信发给学长!
在我的文字里面,出现的缩写词一般都会展开。
对于计算机专业的本科生,怎样才能维持咱们对于这们学科的热情?如果整天让你学习毛概马哲邓论,整天让你学线代高数,整天让你背英语单词大学语文,整天让你学习大学物理大学化学,你对于我们亲爱的计算机科学还有热情吗?中华人民共和国本科生是很强的,咱们要学习那么多的东西,要满足种种需要,咱们是接近圣人的那帮人了!在大学里面,咱们的自学能力空前地得到了锻炼,咱们大多数人都几乎是要自学毕业的,咱们还要自学些能让我们维持对本专业高涨的热情的东西,比如写出一个windows的桌面程序。
所以,我们来写windows桌面程序,用最基本的C语言来调windows 的api写windows程序。
那么什么是API--API就是Application Programming Interface,就是开发windows的人定义好的一系列函数。如果你要在他们做的这个windows上再写一些程序的话,可以调用那些函数。或许你会很好奇记事本的文件->另存为出现的保存文件的对话框怎么做出来的?其实,你不用知道它怎么做出来,你知道会让它在你写的程序中出现--调用开发windows的人定义好的函数!他们给你留了一些接口(interface),你知道那些函数的函数名。
那么什么是SDK--SDK也就Software Development Kit ,是开发包。这个开发包里面,有开发windows操作系统的人给你准备好的一些东西,比如:
1,WINDOWS API,也就是一些DLL文件(动态链接库文件),至于什么是DLL,以后再详细讲。这些东西能让你调函数来写程序。
2,API的相关文档,他们微软留给你一堆API,几千个API,你知道他们叫什么名字吗?有没有人能都背出来?恐怕连开发他们的人都不会全记得呢!所以,这些文档,就相当于字典。
3,程序范例。我们上数学课的时候,老师讲完概念定律后,不都要给几个例子演算一下吗?让同学们加深理解:)
4,一些小工具。一些帮助你开发的小工具拉。具体的以后文章中再说。
为什么不用简单的VB?
VB可以用,但用到一定火候,还是要涉及到API的直接调用。
为什么不用流行的MFC?
一下子上来就MFC,比较难理解,同样,到了一定火候,还是要直接调API。
为什么直接调API?
windows从85年的windows 1.0开始有这个API,当时也就几百个而已,到现在的windows 2003, vista等,甚至手持设备的,智能手机上的操作系统windows CE, 都用的是基本相同的API。我说的基本相同有两层意思:
1,早期版本的WINDOWS API函数一般都是后续版本的WINDOWS的子集,比较核心比较通用的功能调用都会是相同的。
2,后续版本的windows肯定会比前面版本的多一些“特色”的API,或者是公开一些以前未公开的API。(当然拉,微软还是有些小气的哦~)。
1.4,我们?
我会陆陆续续贴出自己总结的东西的。欢迎大家留言拍砖!