现在离大学毕业还有一年多,写这篇文章似乎早了一点,不过发现自己的激情正在逝去,为了一个月后的六级考试,必须找回逝去的激情,特写此文算是对自己已有的大学生涯的总结,一年后再来续写剩下的部分.今天时间有限,只能把学习编程相关的经历记录下来,回忆自己的经历也是一件趣事.
首先声明自己是通信工程学院的,不然会产生一些误解.
自己最初学习编程是在大一上学习C语言编程,当然那时候说不上正式的学习编程.正式算起来应该是去年三月.当时对于对已学的C语言的不满.(当时认为他的图形界面丑陋,和现在用的程序相差甚远),所以决定深入学习编程.然后就到书店随便买了一本C++方面的书,清华大学出版社出版的,一本中规中矩的书.当时用两个星期看完了,但现在看起来完全没有看懂.只是记下了一些C++中的基本概念.但在里面仍然没有找到需要的图形界面,所以仍然不满中.
以自己的性格而言,一但对某件事产生了兴趣,就一定要做到足够好.(当然当时也意识到学习编程可能会对自己将来找工作带来一定好处)所以再次来到书店,这次买了一本MFC的书.
说实话,这是一本很好的书,
《
Visual C++
面向对象编程教程》,作者是王育坚教授,一本很适合初学者的书,教会了VC的基本操作,对MFC的组织结构和原理也有一定的介绍.自己每天花
3个小时,用了两个半月,终于学了个半懂. 没法子基础实在是太差了, 大一上期连用播放器放电影都不会.
然后到了六月,这时候迷上了黑客技术. 当然谈不上技术,搞了一个多月,就学会了放木马盗QQ. 这个阶段也是非常有趣的一段回忆.另一个收获就是对编程和网络产生了极大的兴趣.(想自己写个木马).
然后就到了暑假,为了实现写出木马的”宏伟计划”,在回家之前买了本<<VC网络通信编程>>.
暑假硬着头皮看完了,不过没有学到什么东西.基础薄弱,除了对网络编程产生了一点最基本的概念之外,无法把那本书的内容学以至用.
然后暑假结束,九月又回到了学校.又开始了黑客技术的学习.不过渐渐意识到学习这些东西占用了自己大量的时间,而且对自己将来的工作似乎没有丝毫用处,然后热情渐渐冷了下来.
这时看上淘宝网,看到网上卖旧书的有<<Windows程序设计>>这本书,就把它买了下来.大学就是自由,可以干很多自己想干的事,可以每天投入4,5个小时而不担心自己专业的学习.当然此时也渐渐对大学成绩能做什么产生了怀疑,大一上,我考得不错,但当时真的觉得没有学到什么(但成绩在大学里面还是有点用处的,一切都是成绩优先,成绩好,就会获得更多的机会).所以大一下投入了很多时间在课外.一个月后看完了这本书,这时才算对windows编程有了个初级的认识,很多以前的疑惑得到了解释.
然后到了12月,这时咬着牙买了一本<<VC技术内幕>>.(当时在网上看到一个前辈的文章,讲学习编程就不要吝惜买书的钱,冲动之下就去买了这本书)很怀念当时早上6点半起来敲代码的感觉.(手冷得不听使唤,敲着代码的时候手直抖,但是很有成就感,很满足).然后也用一个月看完了这本书.(这期间上网也看到很多关于语言的论战,对C++的信心动摇起来,中途借了一本C#的书看),买的是这本书的第六版,这一版只适合拿来做参考手册,不适合拿来学习,里面很多东西,比如说COM部分,太简略了,看得头都大了,收效甚微.
到了一月,这时候逛旧书店,幸运的遇到两本好书,<<C++标准程序库>>,<<深度探索C++对象模型>>.还在图书馆借到了两本书<<Effective C++>>,<<C/C++虚拟机的设计>>.一起带会家,准备寒假时好好看看.
<<Effective C++>>让自己认清了自己以前学的完全不是C++,或者说根本就没有学会过C++.
然后就迷上了C++.此时看完了<<C++标准程序库>>,作者的详细讲解对我学习STL帮助很大. <<C/C++虚拟机的设计>>让我意识到了很多C++以外的其它东西,它让我看到了编程方面更广阔的东西,也是在那本书里面第一次接触汇编,当然里面的汇编资料不完整,但收获很大,终于知道了计算机运行的基本原理,程序到底是如何运行的.自己编程上一个非常大的困惑消除了.不过以当时的基础看那本书的确很困难. <<深度探索C++对象模型>>的前言上写着这是一本给高级C++程序员的书,我自己知道这自己离这个称号太遥远了,就没有看这本书.
寒假结束,又回到了学校.此时已经下定决心以后要从事软件开发,至少要从事这相关的工作.
所以这学期花了更多时间在学习编程上.经常早上八点到图书馆,晚上九点回寝室.当然,这期间也不是完全看编程书籍,看了大量的杂志,各种杂志都看.自己从来都有看书的嗜好,而图书馆是个好地方,极大的满足了自己这个嗜好.(可惜,现在换了个校区,现在的图书大不如从前那个了,看书的环境也不好)
这时遵循网上某些前辈的建议,把<<数据结构>>,<<操作系统原理>>,<<汇编>>,<<离散数学>>,<<编译原理>>等基础书籍看了.最开始看的是软件学院的教材,不过后来实在看不下去了,
那本<<编译原理>>竟然说看完了这本书,你就可以写一个编译器了.一本纯理论的书,我看懂都困难的书,竟然提出这种要求.当然我不怀疑有人可以看完了这本书就写个编译器出来,但我知道大部分人做不到.还好图书馆有大量经典书籍,务实,易懂.(那些大师就是大师,复杂的概念可以清晰的解释出来,可见他们真正的功力深厚,而且不会像某些编者那样故作高深的把简单的概念写得很复杂)
此时也开始看那些经典的C++书籍. 第一本就是<<深度探索C++对象模型>>,那本书一度被我列为对我影响最大的三本编程书籍之一.这时间最幸运的就是在CSDN上认识了苍穹,他当时也在看那本书.然后大家就针对这本书上的一些问题进行深入讨论.这段时间,我从他那里学到了不少东西.个人一直知道几个人一起学习效率是非常高的.(我们高中寝室是我们高中考得最好得一个寝室,就是因为大家众志成城的一起学习),在大学里面我也试图认识几个志同道合的人,我曾经在图书馆的<<MFC深入解析>>和<<window网络编程>>这两本书里面放了两张纸条,写着希望结识志同道合的朋友,可惜没有人加我的QQ.这迫着我在网上认识朋友,也庆幸认识了这些朋友,给了我无尽的帮助.
这本薄薄的书看的时间竟然超过了<<windows程序设计>>.不过总算看完了,看那本书的时候有很多感想,不过可惜没有记录下来,以供以后回忆.然后看<<More Effective C++>>,<<Exception C ++>>系列等书籍的时候就没有这么困难了(至到遇上了<<C++设计新思维>>这才体会到了那种学习的困难).这期间看了大量的C++书籍.不过仅仅限于书,没有任何实践经验.
然后就到了七月,又是一个暑假.这个暑假不打算回家去了,想用这个暑假提高一下自己的动手能力.想找一家软件公司实习.计划是好的,但实践起来就不想我想象中的那样了.我给成都的软件公司投了几十简历,没有收到一封回信.此时只好自己找点事做,当时正好看了一些软件工程,项目管理方面的书,就想找个朋友一起写个程序.最后决定写虚拟机,因为看过<<C/C++虚拟机的设计>>,感觉应该没有问题.
不过项目最后失败了.我和朋友都没有架构经验,在网上讨论了两天就不顾那些书的劝告,直接进入了编码阶段.失败的接口设计,到最后分工模糊起来,到了后期就变成完全抄<<C/C++虚拟机的设计>>上面的代码.到了八月中,大家都认识到这个项目已经没有意义了,所以停止了这个项目.
在八月初的时候,向一个公司投了一份简历,竟然给了我回复,但当时考虑到正在做自己的项目,就和他谈妥等九月再开始工作.到了九月就再没有联系我,很理解那家公司,那家公司在上海,如果我是老板,我也不需要一个外地的什么都不懂的在校学生.
如果当时立即投人工作,说不定现在已经在为那家公司打短工了.不过我并没有后悔.在那段时间学到了很多东西,看完了<<windows核心编程>>,那是自己看的最后一本windows编程方面的书,短时间内不会再看windows方面的书了.买了<<COM原理与应用>>,准备解决这个让我耿耿于怀的COM.这本书关于COM部分讲得很清晰,很适合入门者看,和<<MFC深入解析>>结合起来看,效果应该要好一些,还看了<<TCP/IP协议簇>>,终于的TCP/IP有了个明确的概念.
此时还做了一件重要的事就是上CSDN上答帖子,那一个月回答了大量帖子.这也是收获非常大的.那些帖子涉及到方方面面,让自己在回答的时候自己所学的很多东西融会贯通了.通过回答帖子复习以前的内容,打实了基础,也学到了很多新东西.也发现了自己在某些方面的不足.就C++而言,自己都模板所知甚少.以前买过<<C++设计新思维>>,但当时完全没法看懂,就是应为模板方面知识的欠缺,没法子赶紧找了<<C++ templates>>和<<STL源码剖析>>来看,再在CSDN上回答了些关于模板的帖子,这方面的基础总算打了起来.(昨天看到一位网友评论<<STL源码剖析>>一书,很有同感,当时看了那本书有点失望,前面三章很满意,但到了第四章就变成讲结合STL讲数据结构知识为重心了,个人认为如果讲这方面<<
Data Structures with C++ Using STL
>>,
一书清晰得多)
同期看到了几次高手的论战,观战中深感自己的不足,差距太远了,认识到差距也是一件好事.然后就是一大堆的计划排了进来:设计模式,UML,重构,java,ruby,linux……此时还开始认识到C++的一些优秀的库,开始着手学习Qt和Boost.
有利就有弊,在上CSDN中还看到很多前辈谈论程序员前途问题,感觉大家的经历是那么真实,无奈.受此影响,自己也变得消除了不少.学习的动力也减弱了,这种影响一直持续到现在.不过现在总算恢复过来,但效率和学习的积极性仍然大不如从前了.
七月后期,渐渐离开了CSDN,一是知道如果再受消极气氛影响,自己可能一蹶不振.还有就是看到的重复帖子多了起来,自己所能学到的东西少了起来,自己也想快点从对C++的迷恋中挣脱出来.八月就很少上论坛了,开始按计划学习.不过效率大不如从前了.
到了九月,开学仍然按计划进行学习,不过不堪重负,只能暂时抛开一些东西.本来想深入学习一下java,深入学习一下J2ME,学习一下JXTA(JXTA的学习是个快乐又痛苦的过程,对我来说一切都是新的,就像以前看<<VC网络通信编程>>一样,基础薄弱,面对全新的概念,只有硬着头皮看下去),不过前两个星期遇上了ACE,看到一个ACE写的多播程序,然后看了ACE的一些介绍,一下就决定把所有精力放入先放入ACE的学习.
现在完全的动力不足,做事缺乏激情.对自己的前途也开始担忧起来,本来从来没有担心过找工作的事,现在开始怀疑自己能不能在毕业时找到一份还算满意的工作.以前一直认为自己付出了这么多,就应该有更好的回报,但似乎这不是事实.就以编程而讲,自己的差距也太远了,缺乏对某一方面的深入学习,苍穹的网络,呱呱姐的图形图像,新技术的GIS…..,这些似乎都是遥不可及的差距,自己又不想考研,只有靠自己自学了,现在只想深入学习一下网络编程方面.但时间似乎总是不够用,当然这不是主要原因,主要原因是激情的缺乏导致效率的降低.
六级考试也临近了,昨天好友说如果六级不过进有些公司连笔试的机会都没有,自己才产生危机感,自己对英语的学习放下了很长一段时间,还有一个月的时间,如果想在一个月把英语提起来需要的是奇迹,而创造奇迹需要的是激情.自己最近,最有激情的一段时间就是那段初学编程那段时间,希望此文能帮助我找会逝去的激情,让我在这个月,创造奇迹: )