发信人: franky (hoho), 信区: CIE
标 题: (二)我的学习之路
发信站: 荔园晨风BBS站 (2005年12月27日18:30:07 星期二), 站内信件
(二)我的学习之路
1,暑假
为了能够实现 DSP,学习c,这是今年七月份的事情,那时我的C基础为0,我完
全不知道程序是什么。那时什么都想,我周围有一个同学单片机非常很厉害,获得
过很多大奖的。我开始是想跟他学单片机,但是前提是c要好,所以我狠下决心,一
定要学好C。但是我学习C的目的是想做DSP,也许是单片机的,现在不去想了。因为
我走上了一条自己想都没有想过的道路:软件开发,纯粹的做软件;
开始学习C,我就直接的上机,后来证明这是最有效的也是最有效率的。
我的第一个C程序是”HELLO THE WORLD “,第一次上机,第一次写程序有点紧张,
就照着书抄,第一次运行,n个bug,再照着书改,改了n次,最终第一个程序诞生了
,那是我的处女program;
顺便说一下,我的c学习我很少看书,11.3上的 program 里面有很多编程资料,我
选了 c 经典一百题,开始的程序都非常短,后来的程序虽然长一些,但还是非常精
练,主要是熟悉加强那些概念的作用;我觉得这份资料非常好,至少,我开始的一
个月左右就是它陪伴着我度过的。
那是暑假,暑假里学校人不多,很多人都去实习了。我没去,因为觉得没用,我做
自己的事。那时学校也非常安静,我一个人一个宿舍,没人干扰我,很少有人和我
说话,那时的我的心完全在那些循环,那些变量上面,我的心里只有程序。每天早
上10点起床,洗个澡精神精神,喝瓶酸奶,然后开电脑,写程序,一坐下去一般就
是6,7个小时,也没感觉到任何累任何无聊,只是感觉非常充实,大学以来从来没
有过的充实,
不断的改,不断的调试,不断的调试,调试,我很强的调试技能就是那时训练出来
的,有些写程序的人连调试都不会,那真的很可悲。
一般这样,下午四点就到了,叫个外卖吃个饭,吃饭的时候看《超人前传》,一般
看两集,可以说,整个暑假,陪伴我的就是那些程序和这个电视剧。休息一会后,
再打开程序,继续,一直到第儿天凌晨五点到六点,那时经常可以看到天慢慢的变
亮。那时写程序很菜,一天才能完成1到两个程序,完成后倒头就睡,睡的很沉很香
。暑假的60天基本上就是这样过的,很少出去过。
2,开学
开学了,程序写的比较一般般了,可以应付一般的单片机的程序了。我开始考虑自
己以后该学什么了,突然发现自己完全喜欢上了程序,硬件似乎离我越来越远了。
最终我选择了继续深入学习编程,于是我转向了c++,转变或者说升级非常顺利,
没几天我就完全习惯了用C++来写碰到过的程序。开学的一个月到两个月我基本上
天天在图书馆度过的,和一个也在学习C的同学(他和我一个班的,不过主要学习C
),我喜欢去保留室,那里面关于计算机的书真的好多,而且好多非常非常经典的
书,以前只是在网上听人说起过,那段时间我基本上就是看那些书过的。进步非常
快,因为那些书真的很经典。我看书有一个习惯,就是速度非常快,快的有些离谱
,基本上是一天一本书,当然我是有选择性的看的,只看那些自己不是很熟悉的东
西。
语言工具学的差不多了,然后接着是《数据结构和算法》,也看了n本书,当然还是
每天一本,学的非常快,因为我数学比较好,所以学的也很轻松。这时我转向了一
个C++一个非常专业的方向 ”STL “(一个类库,是一般常用的数据结构和算法
的实现,可以直接调用)开始用 STL,后来想弄清楚里面的原理,就找些 源码来看
(那时,看一般的源码基本没多少困难,但 STL 全部用模板写的,那简直就是一门
新的语言,完全没有了很熟悉的 C++ 的面貌),开始完全看不懂,后来静下心去,
看多了几次终于大概搞明白了。
因为学数据结构肯定要上机写,但写的一般的c的没多少意思,于是我开始尝试写自
己的 STL,包括 底层的内存池,双链表,DEQUE,红黑树,迭代器,基本上 STL 里
面有的,我都写,而且我全用模板写。虽然开始看起来觉得困难非常大,其中也碰
到了很多很难的东西(都是算法的,有的算法真的非常复杂),程序从开始的一两
百行到五六百行,到 DEQUE 的一千三百行,最终到最难的红黑树的两千行。
这段时间我成长最大也最迅速,自我感觉也是最有成就的一段时间,终于也在这段
时间脱离了菜鸟行列。学习 STL 实际上就是在学习数据结构和算法。后来所有的面
试和笔试都证明了我那时下苦功夫下对了方向。我的数据结构和算法非常好,后来
的所有的笔试和面试基本上只要是关于数据结构和算法的题我很少错过或者很少没
做出过。
这里要非常感谢我同宿舍的两位室友,那段时间他们都回校了,而我没办法,还是
经常要晚上通宵达旦的干,我知道敲键盘的声音打扰了他们的休息,但他们没有抱
怨,真的要非常感谢他们。没有他们,我不可能成长的那么快。
自己的 STL 写的差不多了的时候,对程序的本质的东西似乎很清晰了。但那时我还
是没碰任何界面的,图形的编程。所以天天面对的是一个”黑界面“,只能输出字
型。呵呵
写完 STL,已经到了十月中旬,那段时间还没什么好的工作可以找,所以主要还是
学东西,反正就是没停过学东西,因为我知道计算机的学了三年了,我才学了三个
月,我拿什么去和他们比,所以我要趁当时还有一点时间抓紧学东西。所以开始学
《操作系统》,《编译原理》,《TCP,IP》这个时候的学习基本上就是平行学习了
,同时间内学习三门课程,效果不是很好,但基本的东西都知道了。到了十一月份
,找工作进入高潮期了,这时已经集中不了精力学习了,但是空闲时间还是很多,
所以空闲的时间还是学习一些东西,最主要的就是 MFC,但看不懂,于是先学习 W
INDOWS 编程,直到今天,呵呵,现在 WINDOWS,MFC 的运作原理基本上也是非常熟
悉了,但基本没任何实践,所以都是些理论的东西。
(二)的总结:
1,我之所以把自己的学习过程写出来,我是想告诉一些同学,只要你有 兴趣,
什么时候开始学习都不 晚,真的,有兴趣,你会感觉很容易学 你会觉得学起来
很轻松,一旦你体验到兴趣所带来的乐趣,你 就会学 的越来越快,我三四个月
能把编程学好相信能给你信心。
2,下面的是写给计算机,软件的。
i,学计算机的,特别是学习软件的,一定要有选择性的看书,现在计 算机
的书太多了,基本上都很烂很烂,一定要会在那些烂书中找出 那些经典的书来
看。推荐去保留室吧,那里面的经典书籍非常经典
我在三四个月基本上把那些经典的书都看过了,虽然看的有些草率, 但没办
法啊,呵呵。我推荐一些吧:
一,C的书:《c陷阱和缺陷》,《c专家编程》,《c和指针》主意, c中
的指针非常重要,一定要学好,否则可以说你根本没学C;《 c和指针》是我
看过的写指针写的最好最详细的一本书;
二,c++的书: 太多了,我是一次看几本的,结合起来看,吸取各 家
精华: 另外说一下吧,如果你说你要学 C++,那你最好也 学学 STL 吧,
听我的,绝对没错的,如果你说你精通 C++, 而不知道 STL,那你绝对在
吹牛,STL 这几年非常火,不仅如此 ,如果你学会用 STL,那你将会发现原
来程序可以这样写,原来 程序可以写的这么简单明了;你自己去学吧,如果
你不去学,你 这辈子都会后悔的,甚至可以说,你的编程生涯很不完整;
三,数据结构和算法;那本 《数据结构的 STL 实现》很不错,我学 习
STL 前学数据结构一直看这本书,而且这本书可以替你预先 架好到 STL 的
桥梁,要不然你贸然去学 STL 你会碰一鼻子的灰 的。学习数据结构,我仍
然推荐学习 STL ,但这次是推荐你去 看 STL 的源码,呵呵,要有心理准备
哦,如果你看的懂,你就 会感觉很爽,因为那里面什么都有,你平时写的那
些程序在 STL
面前绝对都是二流货 {MOD}。为了看懂那些源码,我推荐一本书,候 捷
写的《STL源码剖析》,那里面讲原理很清晰,但源码太少, 图书馆有一本
书非常经典 《深入STL》吧,名字有点模糊了,是 图书馆仅有的基本关于
STL 书中的经典;但那里面原理不怎么 清楚,但源码部分非常详细,基本上
是一个完整的类库;
四,一个忠告,学好数据结构和算法吧,其他的不学也罢,呵呵( 有点
过激),原因有二:第一最现实的是如果你想找软件开发的 工作,笔试,面
试绝对大部分都是考数据结构和算法;二:数据 结构掌握的好坏直接影响着
你所编的程序的质量,一个人数据结 构学的不好,是很难写出好的程序来的
。
--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.1.116]