| | |
|
岱瀛
(deving)
| |
| | |
|
| | |
|
组别 | 经略使 |
级别 | 左将军 |
好贴 | 1 |
功绩 | 2293 |
帖子 | 1370 |
编号 | 55810 |
注册 | 2005-12-22 |
来自 | 人间 |
家族 | 慕容世家 |
| |
| | |
|
|
|
编程原来如此简单
这篇文章是转的,写得比较粗俗易懂,也相对全面.给MOD区想学稍微高级的修改又不知道如何进入计算机世界的人们看上一看吧.
--------------------------
是从一个好友的QZone转的,不过他那里也写的转,原出处就不知道了.
----------------
如果回到九十年代初,程序员可以说是一批比较神秘,并让人向往的群体.一群高智商,生活随意的人.但是到了计算机如此普及的现在,各种程序员已随处可见了.
尽管如此,但真正有勇气能拿出决心学习编程的人还是少数.在他们眼里程序员还是那么遥不可及.
在这里,我要告诉你,学着写程序是多么简单的事.只要你愿意做,计算机就会按照你的要求去执行.
有人会遇到这样的困难"我要学什么语言".这是在网上很常见的初级问题.似乎这真是一个很难的选择.Asm,Basic,C,C++,C#,Jawa,Pascal甚至asp,php,jsp等等.我们再拿出Asm来看,又有Fasm,Masm,Nasm,Tasm,Yasm......
但是我要告诉你,不要有任何困扰,无论你的最终目标是什么,请学C语言.
学C语言并不是学习一种编程工具,而是建立编程思想.
如何入门呢?怎么才算是入门了呢?这就像我们所说的做人!如何做人呢?怎样才是做好了我们这个人呢?
学计算机你永远都在入门.
做人,你永远都在学做人.
当你明白了为什么i=i+1;时你就了解了什么是编程.而当你明白了程序的三种结构时,就可以说你入门了.
赋值,判断,跳转,顺序,选择,循环,理解了这些,你就明白了编程.所有程序都是由它们组成的,编程真的是很简单.
如果你再明白一条printf的作用,那么你就可以在屏幕上任意输出任何多的任何字符--只要你愿意.
好了,如果你不想继续深入的学习编程那么到此为止也可以.这也可以说是编程的全部.当你对这些全部理解了之后,你可以试着学一下basic,pascal,asm.你会发现,呀,原来都是一样的.只是Pascal将"="变成了":=",而asm则换成了"mov"而已.黑人和白人只是差的肤色而已......
也许你从接触计算机时就是Windows系统.那么你一定不习惯黑乎乎的命令行界面.你一定像我当初一样,一心想着编出一片"窗口".
这时你可以安装一个Virtual Basic或Delphi或VC试一下.稍微熟悉一下开发环境.编译一个自动创建的默认工程,一个窗口程序就这样生成了.你不需要编写任何一个单词,一个程序就这样生成了.编程真的是很简单.
你还可以从旁边的工具栏上拖几个按钮,标签什么的放到窗体上.一个大花脸的窗口程序就生成了.黑人和白人化妆的过程还是一样的......
也许你会说这不是真正的编程--这说明你的要求要高一点.
那么你应该再了解一下数组.指针,过程,函数,类,继承.以及面向对象中的,对象,属性,事件.这时VB,Delphi相对VC的简单就显现出来了.
这时,你要做的就是不断的练习,熟练各个控件的使用方法.总结记录一些技巧,慢慢的,你就可以编写任何你所需要的Windows下的小程序了.这时,Windows编程你已经基本入门了.
当然,我没有必要过于夸张的把这说成一个很简单的过程.尽管它的确很简单,同时它也的确需要你用心的去做.你要尽可能多的读其它人的代码,尽可能多的修改别人的代码,尽可能多的练习写程序,尽可能多的熟练各种控件的使用,尽可能多的总结各种技巧......
这是一个耗时的过程,也是一个必须的过程.熟能生巧在这里体显的淋漓尽致.
到这里你才是真正的入门了.至少,记事本,计算器,扫雷你都可以自己"制造"了.黑人和白人都需要经过努力才会有自己的成就......
如果做为一个电脑爱好者的话,那么恭喜你,你走到这里已经正式进入计算机的大殿了.
如果做为计算机专业工作者呢?尽管看起来你会了很多,但是不好意思,这一段路对于你来说,你只是刚走过大门前那层台阶,前面就是大门了.
在前面的积累中你慢慢会明白,资源文件,dll,网络,数据库,图像处理,OpenGL......等多种方向的内容.当然,你尽量要每一部分都接触.但还是要抓住一个方向深入学习的.每一项又是一个新的起点--在原来台阶上的新起点......
经过一段时间固定方向的学习,这时你应该可以找到一份专业方向的工作了.但学习仍需继续.
写一个程序,通过查资料实现一些功能,这是非专业人士所做的.而你呢?需要了解程序的内部机制.随着深入的学习,你会接触到API,消息等系统层面上的东西.你会发现,原来程序的每一个动作都是由消息来触发的.程序的每一个功能都是通过API来实现的.这时,你会需要下面这份资料--MSDN.你几乎不再需要到处向别人请教,MSDN就是你的老师,你要实现什么功能,都应该直接或间接的查看MSDN的某个或某类相关知识.
你真正的入门了,这次是真正的入门了,真的入门了,你的编程之路开始了.
回头看一下,你走的路长吗?转折点多吗?不长,也不多.我敢打赌这绝对比你去学医或营销简单的多,因为那样的话,你面对的是千变万化的人,没有什么比人更具备不定性的了.而计算机呢?你只要给出同样的指令,无论在哪里,无论在何时,无论重复多少次,它都会给你同一结果.相比较来说,计算机是不是简单的多呢?
在明白了消息与API之后,你就可以发现,原来不用面向对象开发环境也可以编译出面向对象程序.而且程序会更小,效率相对自然更高,尽管你所做的工作量会成倍提高.但这是一个锻炼的机会,是一个编程水平的标志.你会发现,竟然可以在记事本里写一个Window*程序,只需要最后用编译器生成**e便可.这是一个阶段性标志,你用来向一些"菜鸟"炫耀时,他们就会认为你是一个高不可攀的顶峰了,尽管你知道这才刚入门.
这时,你可以试着用不同的语言来写Windows基本程序了.c,pascal,asm.你会发现,原来asm写一个Windows程序是如此的简单,它比其它语言写的决不会复杂太多.而且体积,速度是不言而明的.那么,我劝你,用汇编写程序吧,尽管不可能用它来做一个真正的大项目,但我们可以用它来写一些小程序,任何一个真正的程序员,都需要学汇编,你会明白一个程序在硬盘,内存,cpu里究竟是如何"跑"起来的.喜欢开发的人啊,用一用汇编吧.任何时代,任何语言,你都需要它.
也可能你到现在为止都只用着一种语言,担心没有时间学习其它语言.现在我要告诉你,这不是问题,你可以抽出你漱口的时间来看一下其它语言,你会发现它们是多么的相似啊,任何语言都一样,简直就是孪生兄弟.我敢说,你学高级语言到这一步之后,再去学Asp的话,一个月,仅需一个月,你就是绝对的网站后台,网络办公系统开发的高手.编程就是这样简单......
这时,你的兴趣或许会转向系统,因为你要对你的程序所在的系统有深入的了解.如Shell扩展接口,程序的加载过程,内存的分配读取等.你还会分析不同文件的格式,如GIF,MDB,EXE等,其中PE文件格式也可以说是你必须要学习的内容之一.你会明白系统是如何加载一个可执行程序的.以及程序被编译时编译器都做了什么?编译后数据,代码,资源都哪去了?你对编程又向深处了解了一大步.
同时你会了解反汇编,加壳,这样,一个初级的破解者又出现了.你又进了一扇门......
你对Windows有一定了解了,这是一个程序员所必备的知识,但这还只是了解.想知道更详细的状况吗?如果是一个真正的程序员当然想.
弄明白了汇编,又渴望了解操作系统.知道你该干什么了吗?也许,你会需要Linux,DOS及各种新兴起的操作系统代码,是的,是代码,这是最直接的.我们没有完整的Windows代码,但我们可以从DOS,Linux入手.系统原理都是一样的.试着自己动手写一个系统皱形,这也许是你应该做,并且会很有兴趣和困难要做的.
那么,你要了解的会更多,BIOS,内存,CPU,硬盘.它们具体的工作流程,原理.分区格式,文件系统.这是系统的最底层了......
当你明白了计算机启动时执行的第一程序后,你会发现,原来写一个最赤裸的引导程序也是这么简单的,它可是直接工作在硬件上的,不需要任何其它软件或操作系统.
实模式,保护模式,分段,分页,一步步的实现,于是你了解的更深入了,硬件的工作原理,整个计算机的工作过程,系统的运行过程,一个新的,最基础的门你又踏出了你的第一步......
天啊,又是第一步.但你并不是停在第一步徘徊,而是不断的迈出一个又一个新的第一步.越来越光明的第一步.
你一定会感觉到,学计算机真的是很简单.尽管你面前有着无穷无尽需要学习的新内容,但它们不是一座座难于攀登的高山,而是稍微有点曲折的大道......
--------------------------------------------------------------------------------------------------
这篇文章,说得最好的一句话,个人认为就是:"我敢打赌这绝对比你去学医或营销简单的多,因为那样的话,你面对的是千变万化的人,没有什么比人更具备不定性的了.而计算机呢?你只要给出同样的指令,无论在哪里,无论在何时,无论重复多少次,它都会给你同一结果.相比较来说,计算机是不是简单的多呢?"
我学计算机编程,大概是92年,学的是一种叫做Logo的语言.最突出的特点就是一只小海龟画图.现在的小学生也有些有学的.
当时根本就没有现在的Windows操作系统,一会用的是pcdos,一会是msdos,指令什么都不一样,挺晕的.
虽然这款语言具体我现在也基本全忘记了,但是基本概念,核心思想却是最重要,就是常量变量,函数过程等概念和后来的树,
二叉树,图等结构和写出来的递归程序。
(当时偶刚读小学,估计最多就是学会了一位数的乘法,想想老师当时能教懂我们那群娃娃也确实不容易)
反正编程这东西,说难也难,说容易也容易,看自己的努力和想学到的层面吧.
|
|
|
|