我与程序设计
大学的时候,还喜欢程序设计,但目的依然是玩儿。我最缺乏的就是【系统地】学习相关的理论,而这些往往是最关键的——不系统地接触,永远只是三脚猫功夫,或许哪天通过摸索完成了从初学者的蜕变,我敢保证那一定要花上很久。总之,无论你玩儿的内容是什么,这只能成为你娱乐的一部分,而不能够养家糊口;除非你专业。
第一次接触程序设计,是小学的时候在舅舅家。当时捧着一本BASIC语言的书看了入迷,当天花了半小时,在学习机上编写出了人生第一个程序,在屏幕上输出了从1到10这10个数字,每个一行,当时的情形,现仍历历在目。后来,高二时上课不怎么听讲,在同桌zsh的文曲星上写了个小动画,模拟小车上箱子撞击小车后弹回(当然,是预先定义而不是实时计算,这很简单的)。
第一次“学习”程序设计,是大学的C++课程,一位女老师教授的课程,教材是清华大学谭浩强编写的《C++》程序设计。当时考试是应付过了,但当连指针都只是懂了皮毛,链表那部分完全写不出来(不理解);亏基础扎实,后来稀里糊涂地过了上海市二级C语言。后一个学期,我选修了《Visual C++程序设计》,当时上课时经常睡着,什么都不懂,就知道开一个基于对话框的程序,拖拖按钮,添加些小的处理函数,期末也算混过去了。
后来,一个偶然的机会,我接触了Excel VBA,Access数据库、VB(VB、VBA是一家的,教简单的Access数据库应用,也必然是用VB讲解的)。后来,直到大学毕业,对于程序设计,懂得一些,但始终不够专业。
上班后,觉得想要学自己喜欢的东西。我下了班喜欢闲逛,一个晚上,我到了书店,拿起一本《VB.NET 高级编程》,这是我第一次接触.NET环境,被里面浩瀚的知识深深吸引了,花了98元买下后,经常翻书到深夜,看得入迷不愿睡觉!
一眨眼在社会上都昏了两年了,我又重新拿起书本。开学前,就决定既然喜欢,索性专业。5月份的时候,我开始从网上下载了《C++ Primer》,认认真真地边读边编写程序,做笔记。通过学习C++,那些C#、VB.NET中的接口、引用什么的,就完全懂了。其中,也从《鸟哥的Linux私房菜》里面,学了些Linux操作系统的内容。
那时候,老师那边还有个机器视觉方面的项目,于是接触了Halcon,这些以后再说。9月份读书后,继续学习C++、Linux,有所体会;十一期间,建立网站的念头又一下子冲上我的脑海,挥之不去。在实验室电脑上,安装了虚拟机(CentOS系统),利用Nginx、MySQL、PHP架设了第一个网站,可惜不会用,因为不知道还需要论坛/网站软件!!
又过了几天,在WinXP虚拟机下架好了第一个Discuz!论坛,在物理机、局域网上可以访问了。后来,下了花生壳,发现没用,外网依然不能访问,查资料知道了“端口映射”这个概念。由于弄不到外网IP、也没有办法做端口映射,就告一段落了。
得知有提供“免费虚拟主机”的网站,我又一次生了这个念头;把网站架出去!前后折腾几次,虚拟主机搞定,FTP搞定,利用虚拟主机提供的Win2003、PHP、MySQL等环境,架设了phpwind论坛,又架设了另一个Discuz!论坛;在绑定域名的时候,又了解了域名解析、域名绑定的关系,很久很久的网站架设梦实现了,很简单。
我不住得想起,以前在mangos论坛发帖的时候,感觉这一切都是那么地高深,接触了一个又一个的概念后,其实自己做一个也很快;可惜少有教程,因为有太多名词是一个没任何基础的“菜鸟”去理解。即使演示了如何架设,他也没有一个一直以来渴望并不断努力的人,能够感受到如此的兴奋!
操作系统方面:File、权限、进程、服务、磁盘、配额
安全方面:网络安全、防火墙
Web方面:FTP、Http、Web、端口、转发、Email、telnet、SSH、IP、域名、DNS、域名解析、域名绑定、子目录绑定
程序设计:这个应该是了解操作系统、web的基础
现在,我在按部就班地学习C++、学习Halcon、学习Linux、学习英语;我知道,我现在是学,不再玩儿了。