第一篇:计算机学习心得
计算机学习心得
众所周知,21世纪是一个信息经济时代。为适应时代的发展,作为一名即将走出校园参加工作的当代大学生,所受的社会压力将比任何时候都要来得沉重,因此在校期间,我们必须尽可能的利用好学习时间,尽可能地学习更多的知识和能力,学会创新求变,以适应社会的需要。如果想从事与家纺设计相关的行业,那就更需要掌握较全面的计算机知识,因为小到计算机的组装维修,大到服务器的维护与测试,知道的更多更全面,那么对于自己以后找工作以及参加工作帮助就越大。在知识经济时代,没有一个用人单位会傻到和知识作对,不是么?
我在读初三的时候第一次接触计算机觉得很新鲜。我清晰的记得,当时有一个清晰的想法,那就是一定要学好计算机。但随着自己对电脑接触的不断深入,对计算机的认识越来越深,特别是进到大学,学习了家用纺织品设计以后。我们做CAD设计,学习了各种办公软件,可是在设计和办公过程中,当遇到一些电脑系统出错导致文件成果丢失的突发问题时。我才深深地感受到自己计算机知识是多么的欠缺,自己终归不是学计算机专业的,对计算机知识的掌握都是零散的,对这些突发问题只能束手无策。于是我暗自发誓,无论如何,以后如果关于计算机的选修课的,我一定要报名。
这次在《计算机网络》中,我学到了许多知识,许多以前对计算机迷惑的地方。在姜老师的讲解和实际演练下我渐渐明白了。
所谓计算机网络,是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
TCP/IP分层模型的四个协议层分别完成以下的功能:
网络接口层包括用于协作IP数据在已有网络介质上传输的协议。实际上TCP/IP标准并不定义与ISO数据链路层和物理层相对应的功能。相反,它定义像地址解析协议这样的协议,提供TCP/IP协议的数据结构和实际物理硬件之间的接口。
网络层对应于OSI七层参考模型的网络层。本层包含IP协议、RIP协议,负责数据的包装、寻址和路由。同时还包含网间控制报文协议用来提供网络诊断信息。
传输层对应于OSI七层参考模型的传输层,它提供两种端到端的通信服务。其中TCP协议提供可靠的数据流运输服务,UDP协议提供不可靠的用户数据报服务。
应用层对应于OSI七层参考模型的应用层和表达层。因特网的应用层协议包括Finger、Whois、FTPGopher、HTTP、Telent、SMTP、IRC、NNTP等。
我的感觉是:TCP/IP是从OSI模型演化而来。两个模型相比较来讲TCP/IP更关心的是网络之间互联,TCP/IP协议被组织成四个概念层,其中有三层对应于ISO参考模型中的相应层。TCP/IP协议族并不包含物理层和数据链路层,因此它不能独立完成整个计算机网络系统的功能,必须与许多其他的协议协同工作。TCP/IP协议层次相对少了,调用函数也会减少,相对于OSI模型,它的处理速度会更快。其次,就是计算机网络的组成与分类。
通俗地讲,计算机网络是由多台计算机(或其它计算机网络设备)通过传输介质和软件物理(或逻辑)连接在一起组成的。总的来说计算机网络的组成基本上包括:计算机、网络操作系统、传输介质(可以是有形的,也可以是无形的,如无线网络的传输介质就是空气)以及相应的应用软件四部分。
要学习网络,我们还需要了解目前的主要网络类型,分清哪些是我们初级学者必须掌握的,哪些是目前的主流网络类型。
虽然网络类型的划分标准各种各样,但是从地理范围划分是一种大家都认可的通用网络划分标准。按这种标准可以把各种网络类型划分为局域网、城域网、广域网和互联网四种。局域网一般来说只能是一个较小区域内,城域网是不同地区的网络互联,不过在此要说明的一点就是这里的网络划分并没有严格意义上地理范围的区分,只能是一个定性的概念。
再次,就是IP地址。
1)
IP地址基本概念
Internet依靠TCP/IP协议,在全球范围内实现不同硬件结构、不同操作系统、不同网络系统的互联。在Internet上,每一个节点都依靠唯一的IP地址互相区分和相互联系。IP地址是一个32位二进制数的地址,由4个8位字段组成,每个字段之间用点号隔开,用于标识TCP/IP宿主机。
每个IP地址都包含两部分:网络ID和主机ID。网络ID标识在同一个物理网络上的所有宿主机,主机ID标识该物理网络上的每一个宿主机,于是整个Internet上的每个计算机都依靠各自唯一的IP地址来标识。
IP地址构成了整个Internet的基础,它是如此重要,每一台联网的计算机无权自行设定IP地址,有一个统一的机构-IANA负责对申请的组织分配唯一的网络ID,而该组织可以对自己的网络中的每一个主机分配一个唯一的主机ID,正如一个单位无权决定自己在所属城市的街道名称和门牌号,但可以自主决定本单位内部的各个办公室编号一样。
2)
静态IP与动态IP
IP地址是一个32位二进制数的地址,理论上讲,有大约40亿(2的32次方)个可能的地址组合,这似乎是一个很大的地址空间。实际上,根据网络ID和主机ID的不同位数规则,可以将IP地址分为A(7位网络ID和24位主机ID)、B(14位网络ID和16位主机ID)、C(21位网络ID和8位主机ID)三类,由于历史原因和技术发展的差异,A类地址和B类地址几乎分配殆尽,目前能够供全球各国各组织分配的只有C类地址。所以说IP地址是一种非常重要的网络资源。
对于一个设立了因特网服务的组织机构,由于其主机对外开放了诸如www.xiexiebang.com,用户可以方便地记忆,而对于大多数拨号上网的用户,由于其上网时间和空间的离散性,为每个用户分配一个固定的IP地址(静态IP)是非常不可取的,这将造成IP地址资源的极大浪费。因此这些用户通常会在每次拨通ISP的主机后,自动获得一个动态的IP地址,该地址当然不是任意的,而是该ISP申请的网络ID和主机ID的合法区间中的某个地址。拨号用户任意两次连接时的IP地址很可能不同,但是在每次连接时间内IP地址不变。
最后,说到路由器。
路由器是一种多端口设备,它可以连接不同传输速率并运行于各种环境的局域网和广域网,也可以采用不同的协议。路由器属于OS I 模型的第三层。网络层指导从一个网段到另一个网段的数据传输,也能指导从一种网络向另一种网络的数据传输。过去,由于过多的注意第三层或更高层的数据,如协议或逻辑地址,路由器曾经比交换机和网桥的速度慢。因此,不像网桥和第二层交换机,路由器是依赖于协议的。在它们使用某种协议转发数据前,它们必须要被设计或配置成能识别该协议。
传统的独立式局域网路由器正慢慢地被支持路由功能的第三层交换机所替代。但路由器这个概念还是非常重要的。独立式路由器仍然是使用广域网技术连接远程用户的一种选择。
在此次学习中,我进一步体会到了网络的神奇,是网络能够使远隔万里之遥的人面对面的聊天,是网络能够使人们可足不出户就掌握所有信息从而运筹帷幄,是网络使人们能够更快的掌握更多的信息,是网络……
在学习过程中,我觉得老师只是一个指引的作用,他每次给定任务后,就要求我们进行自主性学习或分小组进行共同学习和合作完成,我们在操作学习中把自己不理解、不明白的地方提出来,互相讨论、交流,大家坐在一起畅所欲言,解决不了的就让老师来帮助解决,这样使得相互之间都得到了学习、巩固知识的机会,提高了学习的效率,也为师生间搭建了相互学习,相互交流的平台,使彼此在相互交流和合作中不断提高和成长,并建立了一定得友谊。
但是,计算机知识更新是很快的,只有不断地学习,才能掌握最新的知识。因此,在以后的学习工作中,我还要继续学习、操作,熟练运用这些知识,不断完善和充实自己,争取做一个合格的当代大学生,将来做一名对社会有用的人。
第二篇:计算机学习心得
计算机学习心得
“大学生计算机基础”是以培养学生计算机技能和信息化素养为目标,是后期课程学习的基础。由于小学初中时候的计算机课基本上是被略过甚至有的地区由于条件的限制根本就没有开设这门课程,而高中时没怎么要求计算机,而且高中我们的时间基本被课本的学习所占用。所以对于计算机的基础知识是了解很少。而以后我们作为教师虽然对计算机没有很高要求,但我们也应懂得计算机基础知识和应用。深知这个道理,所以在计算机的学习上,尤为注重。下面就简单地谈一下我自己学计算机的感感受:
一: 循序渐进
整个学习过程应采用循序渐进的方式,先了解计算机的基本知识,如计算机的起源、发展、windows操作系统、XP的桌面操作、电子表格等,使自己能由浅入深,由简到繁地掌握他们的使用技术。这是最好的学习模式,但是由于平时没那么多时间,但是最起码如计算机基本知识、windows系统、电子表格等必须掌握。
在这方面,老师的教学安排比较合理。可能也是考虑到我们的基础薄弱的问题,所以老师把计算机最基础的如计算机概述放在第一节课,让我们对计算机有个大概的了解。接着再讲windows XP 的一些基本概念,然后才把一些常用软件介绍给我们。虽说那些软件我们平时也在用,但是里面好多东西都不懂,经过老师讲解后方才知道那些软件还有很大的空间需要我们去专研。
计算机的理论课让我们认识到自身对电脑了解的匮乏,而实验课则让我们亲身体验摸索。如果老师讲授和实验操作同时进行的话会更好吧。因为很多时候我们会忘记老师讲的一部分内容,但这主要是我们学生自己的问题,毕竟下来复习不是很好。
二:学以致用
在学习时始终要与实际应用相结合。在课堂上学习后,老师给我们安排的自主学习周其实挺好的,那样能让我们自己去回想巩固老师所讲的内容,同时自己结合着老师说讲的去摸索,既能很好的记住又有了实质性的提高。只是需要花费的时间将会成倍增加。不过有得必有失就是这个道理吧。
对于网上学习计算机,因为里面有很多资源可以利用,还可以提问,这对于我们学生的学习是相当便捷的,不懂的可以随时提问,如我的电脑会莫名其妙地下载一些东西,但我自己又不知道什么原因,因此我发了一个帖子,后来得到老师的完美解答。或者自己在计算机平台上找相应资源,还能看到别的同学的提的问题,因为那些问题都是普遍存在的,也就能参考一下了。
就自己而言,如果我有不会的计算机知识,我会先在平台上收寻看有没有和自己类似的已解答的问题,有的话自然是好,如果都没有,我会发一个帖子,期待别人或者老师能给我解答。这样的学习方法,至少挺适合我自己的。这个平台不仅能提供我们解决问题的途径,还可以从别的同学那获得经验,避免犯一些不必要的错误。学习状态良好。
第三篇:计算机学习心得
计算机学习心得体会
在未学习计算机之前,我从不知道它到底是干什么用的,为什么很多很多的人都要迫不及待的地要去学它,同时也有人陷入计算机的泥潭,不能自拔。自从我触摸到它的时候,即老师教给我们怎样使用计算机时,我才明白它的重要性。它涉及了生活的各个方面以及各个层次的人都离不开它,同时也明白了它的利与弊。
我在读小学的时候第一次接触计算机觉得很新鲜。我清晰的记得,当时有一个清晰的想法,那就是一定要学好计算机。但随着自己对电脑接触的不断深入,对计算机的认识越来越深,特别是刚进到高中,使用了各种办公软件,可是在设计和办公过程中,当遇到一些电脑系统出错导致文件成果丢失的突发问题时。我才深深地感受到自己计算机知识是多么的欠缺,自己终归不是学计算机专业的,对计算机知识的掌握都是零散的,对这些突发问题只能束手无策。于是我暗自发誓,无论如何,要学好计算机,但上高中是我忙于课业学习,没有足够的时间学习计算机知识。这一只是一个很大的遗憾,所以我在高中时就决定大学后一定要好好学习计算机知识,把落下的都补回来。
令我开心的是,大学计算机课时很多,我可以好好利用它来获取我想要的知识。在课堂上我用心听讲,认真做笔记。实践课上也好好练习,学到了很多新的知识。真的很值啊。
我对自己也提了很多要求,只为了学好知识,向全方位人才买件一步。
第四篇:计算机学习心得
大学学习学习心得
现在我已经大四将要毕业了,这个心得早就应该写,起码要半年前写,因为大四下学期的生活几乎没有给我带来任何的改观。在学习上,我几乎经历了该经历的(我这个年龄),这些学习中,只有大学的学习让我感到一种自主,一种无法形容的豁然开朗的感觉,是计算机改变了我,我也尽力去改变计算机的一切,尽管我知道这很难,但这是我的职责。
可以说,学习无论学什么都不会浪费,很明显的原因就是,计算机兼容了太多的学科,让你无法去想象,你可以提到任何一个,我都能说出计算机的作用。所以,如果有机会我们什么都要学,但不要盲目的学,因为你是学计算机专业的,要学的主要是计算机。
学计算机并兼有多方面知识的人才确实很少,这也难怪,上帝造人就是这样,要达到这一点,要付出很大的代价,需要一些机遇,我们只需要抓住自己所能创造的机遇就可以了。
说实话,具我了解,中国的计算机确实和国外差的太多,这是多方面原因的,一个就是人家发展60几年的计算机,被中国十几年搞定这显然是不可能的,中国人能比国外人聪明多少??中国计算机教育存在着严重弊端,初等教育和高等教育计算机完全脱轨,很多刚上大学的学生连计算机都没有摸过,更别说学了,四年期间的努力很难填补。还有就是,中国学生学习方向不明确,甚至没有目标。可以说很多大学生对自己的专业,在四年之间几乎什么都没有学到,而学到的是关系,更确切的说是人与人交往的关系,但这个学的还是有好有坏,确切一点就是混。当然,光靠专业实力来闯天下固然不行,那么那些生产力的发展就交给了有专业实力的人,所以中国高级人才少的很。
我处在中国软件萌芽的阶段,这阶段需要大量的人才,所以很多大学里没有学到东西的人(学习计算机的),也不用怕,几乎都能找到工作,也不会沦为底层人民,因为大家都这样,只是到公司的培训,有了突飞猛进的发展。这样短暂的学习永远成不了高手,虽然现在我不是个高手,但我可以这样说。
确实,如果你不是对计算机热爱的话,那它对你是枯燥的,什么都是,但为什么人们都对异性感兴趣呢??这确实值得研究,如果成功的话,这样可以改变一个人,会不会带来世界末日是另一码事。
我接触计算机(相对和我一届学生)可以所算是早的,但那时只是游戏,但我认为对我已经足够了,如果那时有计算机高手在我面前(这是个幻想,几乎不可能),那我可能就上不了大学了,整天沉迷于编程了,相对来讲,在中国大学学历大重要了,尤其是好的大学。我第一次接触计算机是在初中一年,大约九七年,那时还是DOS系统,是486,586流行时代,当时不知道486,586是什么,但大家都这么叫,而且都知道586比486快,而且要好,我上初三和高一阶段,1999年,开始有了windows95,那时都叫95网,这是从文字界面到图形界面的转换,我能感上这个,我是庆幸的,这使我对计算机的发展有很深的印象,当时也是处在游戏阶段,我从来没有想过做游戏,也没有想过怎么做。可以说我的童年是在电子游戏上度过的,在2000年,开始有了windows98,2002年我见到了windows me,可是直到我高中毕业我还是对计算机的基本操作还不会,原因很简单我只知道打游戏。我高三那年,是我对计算机编程的萌芽,它的出现,让我产生了极大的兴趣,也是游戏把我带动的,我要感谢文曲星,这样也许就是个上天的安排。当时文曲星cc800上有了QBASIC编译系统,而且有一些简单的系统函数,可以让编程者编写自己的程序,我从网上下载了几个游戏程序,那些代码都是公开的,而且可以修改,我对那些程序真的震惊了,虽然我不是很了解,但那些眼花缭乱的游戏开始画面,和动画效果,能在这么小的手掌机上做的这么好,我真的很佩服编程者,我查查一些基本画图函数,自己做了几个简单的动画,还不错,达到我想要的效果,尽管不是很难,但对我是个极大的鼓舞,我很兴奋。由于是高三阶段,面临高考,我也没有时间去学这个东西,我只能在他们编写的游戏中改改,我可以说他们已经做的很好了,我很佩服,有些知识现在我还没有接触到。
一年以后,我来到了大学,来学习计算机,其实大学里学习的主要是理论,实践要靠你自己,因为大学时间主要靠你自己支配,学不学是你自己的事情。理论很重要,它是你起飞的飞机场,实践就是你的双翼,他们要结合起来才可以,因为你飞的累了,还要在飞机场停下来歇歇,这就是你理论知识不足的时候。大学的8大专业课都重要的很,我们不能忽视任何一门,它们是计算机的基础。
下面我就把我从所学的每个专业课中获得的心得说一下。
数学:
刚到大学时,学习的心态还停留在高中,不知道为什么而学,学有什么用,这也是中国的特色吧!但到后期越深的课程,尤其是计算机图形学等很多课程都和数学是息息相关的,如果哲学排在所有学科的首位,那么数学就要排第二,它是那些我们看来比较变态的人,把世界的高度抽象,我经过考研后,和参加数学建摸辅导后确实对数学有些了解,但这只是很浅显的,真正的数学内涵离我遥遥无期,我试图把自己的思想和这条轨道靠拢,但始终很难达到。说实话,中国的教育是失败的,他过分强调知识的结果,不注重过程和起始,思维过程很重要,其实结果并没有它重要,思维的方式决定着一个人,从小就听人家说1+1=2,但为什么?从什么地方来去思考,怎么思考,却很少有人知道。我可能说的有点偏题,但这是重要的,也许是我说数学来把说思维模式引出来。在讲授思维时,这狠难,最根本的是,人们对思维还存在着争议,而且不同人的经历也多少要决定人的思维。我在这里只说学习上的思维。我认为人从一出生,就具有某种特长(这是相对的),也就是说在同等环境下的人学习(我们排除在这种学习以前的经历的影响,比如说学习音乐),一定会分出优劣,在大家都很努力的情况下。如果有音乐天赋的人,他不去努力,可能落后于努力而不具有天赋的人,所以勤奋出天才不假,但要用到自己具有天赋的一面,那必然事倍功半。天赋和兴趣不是一会事,但大多数人,能在有天赋中找到兴趣,在兴趣中而找不到天赋。所以在大学阶段,(在中国这种教育,高中阶段几乎不可能),在大多有自己支配的时间里,你要尽快找出自己的天赋,并发现这方面的兴趣。记住,你在这方面有天赋,不代表你在这方面比任何人都前,但你已经比很多人强,如果你很努力,你会走的更高。说了这么多,回来说数学,老师讲课很少讲数学的思维模式,虽然我不清楚真正的数学思维模式,但我很清楚老师一定没有讲,他也很难讲出来,因为很少有人知道牛顿看苹果落地,为什么会想出万有引力定律,而为什么我们不能。很多人说是牛顿爱思考的结果,这一点不假,但并不是每个爱思考的人能想到,很好问题就在这里,这就是我们跟人家的差别,因为思维的东西很难传授给别人,所以这样的高人很少,光靠他们留下的书是很难解决问题的。
离散数学:
离散数学包括很多章节,各个部分联系不是很大,而且各个学校的教材和所讲授的知识重点也不一样,但大体要讲的都是一样。我个人认为离散数学是最难的,最难的在图,群等,它们之所以难,是我们很难容入到那种神秘的思考方式,容入思考方式太难了,只有靠我们的感悟,因为这些真正很强的人真的寥寥无几,能指导我们的更是很少,我本人始终无法理解群的真正含义,我也没有去查什么相关资料,但我知道,再抽象的数学理论,都不是凭空想象的,它一定有它的现实基础,它的出现是有来历的。
数据结构:
数据结构是十分重要的学科,它完全是建立在实践的基础上,也就是说,你要多打代码。它在一定程度是依赖语言的。我很清楚的知道,第一遍学习数据结构,也就是几乎很少有实践的,大脑几乎一片空白,也是只有在考试前,反复的复习才知道在讲什么,只能手工的模拟执行过程,把算法转化成程序始终是个迷。但我认为这已经足够了,因为任何理论只有在理解它,你才能凌驾于它,所以接下来一个质的飞跃就靠自己,靠自己把那些算法变成代码,在自己有想法时,能够把这个想法用适当的数据结构实现,这需要在电脑旁的硬功夫,绝对是。一个高级的程序员,绝对是个硬功夫。这种把自己的想法变成代码,也是你独立思考的开始,记住思考很重要,他是你在捕捉你的灵感,善于思考的人,灵感来的很快,而且你的灵感会告诉你,对于它,你能把它做出来,这一切都是思考的结果,我不是个思想家,但我知道,我每天对世界万物的沉思,在指引着我发现那些太多的为什么的答案,这个世界为什么这个样子,它后面究竟隐藏着什么,让我们大胆的假设吧!多做程序的人,程序会改变你的思维,这绝对错不了。
语言:
我们一共学了四种语言,VB,C,C++,Java。VB的语法很简单,它确实是我练习算法的平台,它使我实现很多小游戏,对数据结构有了很深的了解,但我本人对VB不是很感兴趣,它只能做些小项目,因为它为大家提供的友好界面,阻挡了大家通往高级程序员的道路,它封闭了语言太多的细节和计算机的基理,使你对它的界面有太大的依赖。C是个纯面向过程的语言,它的语法不是很难,你用它大约一年半多左右,就完全可以掌握它,记住这需要你的实践,大家几乎学的都是潭浩强的书,这本书我开始认为很好,但我看了很多国外的书,和很多国外人所打的代码后,和国内高级程序员所说的话,我只能说这本书,只能是你的开端,但不能让你更深层次了解语言。但你要问我初学者用什么书,我还会介绍这本书。C的精髓在于指针,你能灵活运用指针就几乎等于你掌握了C语言,这是一种高效的语法支持,快的让你无法想象,我很有感触,在VB下要慢的多。C++是个很复杂的语言,你要完全了解它,要在C语言的基础上,我很少用C++,我相信我会攻克它的,也许很多人用C++,但了解它真正的机理估计不是很多,我看了C++ primer之后的感触,它确实很复杂,也是这本书太深入了,了解一门语言,少了编译知识确实不行。
编译原理:
其实编译原理和汇编,操作系统,语言都是紧密相关的,编译器是在操作系统之上,语言之下。在讲编译器时,除了讲编译源程序成目标程序外,还介绍了很多地方都用到的自动机理论,这个也很重要。在人工智能,很多分析语法,文字类的东西都很重要。编译原理和语言是相辅相成的,只学语言不学编译,无法真正的了解语言,而编译器是在语言基础上的,没有语言的了解更学不了编译,现在大多数高校的编译原理讲的语言都是基于面向过程的,但我认为足够了,你真正的理解了编译所讲的东西,自己在深入学习面向对象的语言,你一定会很好的把握面向对象的编译过程,很好的掌握面向对象语言,在语义分析过后的中间代码生成和动态存储空间分配,和汇编有很大的联系,我在学习汇编时,总是先把要求的题目写成C语言,在转化成汇编语言,这就是不知不觉的一种中间代码生成,虽然不完全一样,但让你掌握中间代码生成已经足够了。动态存储空间分配,主要基于指针所指向的动态空间。因为非指针的变量在编译时就已经有内存分配了,这也是编译要做的事。
汇编:
大多数学的都是8086,编译器我推荐用TD,很好的开发环境。作程序调试是最主要的,没有作过程序的人是想不到调试是多么难,好的开发环境有助于有效的开发程序。个人认为,学习汇编要和计算机组成联系起来,主要是指令系统,讲CPU时的知识。汇编是最低级的,最快的语言了,有时为了运行速度不得不用汇编来实现想要的功能,我认为对汇编的掌握程度,只要你能做出个递归函数就可以了,你了解了很多指令用法,寄存器的使用,计算机存储数据和代码的方式,函数调用的方式,栈是怎么实现函数的,你会有很深刻的发展,相信我没错的,一定要上机实现一个递归函数,再加上你对C语言的了解,和一些编程知识,你就可以摆平几乎所有的汇编程序了。
数据库
我在大学里没有接触过太大的项目,而且平常编程对数据库深入不多,只是达到了做网上书店所要求的基本知识,首先是ER图,各种范式,还有数据流图,怎么用语言插入数据,删除,查找等等,实际上,你要不是搞理论的,深到数据的具体存储效率的级别,我想这些对于编程就足够了,但对于高级的数据库程序员这些是不够的。
计算机组成
对于学习汇编和C语言这个其实很重要,因为这些语言还没有屏蔽这些硬件细节,VB就几乎完全屏蔽了硬件细节,你不需要了解太多的硬件知识。但学习汇编和C语言并不是要你了解到能作出CPU和连接存储器,我们只要知道他们的运行机理,但有一点你不要怀疑,那就是电信号他就是那样有趣,有趣到你无法想象它的速度和高低电平的传递,但是事实就是这样,你不需要怀疑,承认它就好了,因为我们还不能解释规律,只能运用它一样。原理对软件程序员就应该足够了,它会使你更加容易了解操作系统和硬件的工作。
操作系统
大家每个人对操作系统都不陌生,所有的计算机的课程几乎都是息息相关的,他们都有太多的联系,有些你可能迷茫,当所有的学完以后,你应该有个豁然开朗的感觉,那就是计算机的一切不应该是个迷。操作系统和硬件的接口,就是那些硬件提供的指令,通过这些指令来操作硬件,就象操作系统定义一样,他是管理系统资源的,管理硬件的使用,你在学习操作系统时,把它看成一个管理者就可以了,它是一个有着自己管理方法的管理者,管理这些硬件给每个进程使用,进程说白了就是一个应用程序在内存中或在外存中,有着运行权利的程序。现在的操作系统是多任务的,可以运行多个程序,并发是指单个CPU而言,每个进程在CPU中轮流执行,因为它太快了,你根本感觉不到他们的交替性,就象在同时运行,大多数教材讲并发比较多,我们大多数计算机都是单CPU的,具体怎么交替运行,那就是操作系统管理进程使用硬件的方法,不同的操作系统方法不同,但你的方法不要让其中的一个进程总是得不到想要的硬件使用(活锁或饥饿),但想出个好办法还不发生死锁(这里不说什么是死锁了,我毕竟不是再讲操作系统)也很难,总之,你要学的就是这些方法,这里说的是管理CPU,还有管理内存,外设等等。我在给出进程定义时,还说了外存,其实通常就指硬盘,因为你的内存太小,运行的程序又多,我要为了让其他的程序运行,只能先把它放在外存,也叫挂起。总之,你学的就是管理硬件的方法,怎么管理才能有效率,方便用户使用。如果可以,你也可以设计一套管理方法,那你就作出了一个新的操作系统。
计算机网络
所有和硬件有关的最后一个,说实话计算机网络很杂,你学第一遍后,把网络7层所有管理方法说出个查不多,很难,大多数学生都是晕头转向,网络是个很庞大的系统,它从硬件到软件,被规定了很正规的完整体系,这样大家都遵照这个规则才能,使每个人开发出的软件和硬件都可以用。记住计算机的交互就象人与人的交互,它通过0和1来代替人的语言,表情或所有可以可以传达信息的东西,也可以说是计算机通信的暗号,只有双方都知道了这个暗号的含义,双方才能通信,你和另一个人怎么通信,那么计算机和另一个计算机就怎么通信。例如:我想给你一个礼物(计算机看成我要给你发送数据,A发给B),我要先通知你,看你能不能收(这符合人的交往)(A发给B一个0和1组成的编码,事先两台计算机已经规定好了,比如说10010011代表看对方是否能接受),如果这个请求不丢失的话(丢失有很多处理方法,你自己也可以想一个处理方法,比如隔一端时间你没有收到对方是否同意接受,你就重发信息,总之,只要你肯想象,任何都是可能的),(1)对方发送一个可以接受的消息(比如说10010012),你收到了,你就可以发送,发送途中又有很多情况,比如说,你怎么发送,作车,还是徒步,如果交通堵了怎么办,是把礼物一起送过去,还是分开送过去,等等,具体到网络里是快速发送,分开发送,我们学的就是这些方法。(2)对方发送个不能接受的信息,你是还要立即发送,还是不发,还是等一会在发,这些方法很活,你要学的就是这些方法,如果你可以处理网络中出现的任何问题,你不学它也可以。我要告诉你的是,你要学的就是就是通信协议(就是实现规定好的暗号),通信方法,出现问题怎么处理等,你有好的方法,你可以不学了,很简单,方法就是人发现的,你比它的好,学它的干什么,就用你的。
软件工程 软件工程是从实践中总结的经验,对于很少做过项目的大学生来说,确实很难理解,只要你作过一些项目,比如网上书店之类的系统,你就会有些了解,它说的很对,我很清楚的记得软件工程分这几个过程:(1)可行性研究,也就是你要做的这个系统可行不,是否值得去做,做了能得多大效益。(2)总体分析,这个就是从整体来规划你要作的系统,只是个概况,并没有详细的阶段,把系统大体分成几个模块。(3)详细分析,这个阶段就是来详细每个模块,把所有的细节都要写好。(4)程序编码(5)测试(6)售后服务。
每个过程有分很多规范,因为一个项目很多人做,很多公司做,没有个很好的规范会乱套的,所以最后很容易合在一起。
我上面所介绍的都是最基础的,只要你掌握这些,学任何计算机的东西都不成问题,关键一个字那就是思想,也许有些具体你忘记了,但思想你会永远记住,你会看的时候也会很简单,和别人讨论时你也知道他们在说什么。
记住的是一定要在思想上有飞跃,学会思考,你的灵感会让你抓住问题的突破口,凡事多问为什么,原因在何处,怎么才能解决,至于怎么才能到达这个境界,我没有什么太多的高招,因为我也不是什么高手,最直接的就是,多看书,多思考,多练习写程序,要在理解的基础上,抛开所有的别人写过的模板写出自己的想法,自己的程序,如果你参考别人的,那么你知识在量上有飞跃,质上根本没有飞跃,即使你方法很苯,你把它实现了,那你也是成功的,因为你挑战了自己,你在思想上有了飞跃,表面上你没人家做的好,那是他有现成的代码可以使用,当没有现成的代码时,你的想象力就发挥了作用,思考和想象高于一切,你的内心得到了升华,你有好的新方法现在就比那些旧的方法好,所以创新很重要,是勤于思考的人的专利,不要死记公式,要问问公式的来源,什么都要弄懂,为什么书上这么讲,死记不如不记,死记只能得到眼前的利益,人成功不就在于要长远的考虑吗??
我认为多学学哲学逻辑学,对人的大脑思维很有帮助的,我说的哲学并不是专指马克思哲学,很多种,他们都有可以借鉴的一面,如果你站在任何一个立场去思考问题,你就会觉得他们似乎说的都有道理,就因为有些人立场不同,才发生的冲突。思想教育是最重要的,也是最难的,尤其学习上的思想境界,很难用语言来沟通,要靠自己勤奋的练习,多加的思考,还记得我说金庸的武狭小说吗??那里的功夫学习和这里说的学习就是一样的。
第五篇:计算机学习心得
计算机科学与技术学习心得
原先不管是国内还是国外都喜欢把这个系分为计算机软件理论、计算机系统、计算机技术与应用。后来又合到一起,变成了现在的计算机科学与技术。我一直认为计算机科学与技术这门专业,在本科阶段是不可能切分成计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术;每一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括原先Major们自以为得意的程序设计),但计算机专业的优势是:我们掌握许多其他专业并不“深究”的东西,例如,算法,体系结构,等等。非计算机专业的人可以很容易地做一个芯片,写一段程序,但他们做不出计算机专业能够做出来的大型系统。今天我想专门谈一谈计算机科学,并将重点放在计算理论上。
在我大一时无意中找到了南京大学网友sir的帖子“胡侃(理论)计算机学习”,这个帖子对我大学学习起到了至关重要的指导作用,我在这篇文章成文的时候正是基于sir的文章做得必要的补充和修改,并得到了sir的支持。再有就是每次和本系司徒彦南兄的交谈,都能从中学到很多东西,在这份材料中也有很多体现。这份材料是我原来给学弟学妹们入学教育的讲稿之一,原有基础上改进了其中我认为不太合适的理论,修正了一些观点,在推荐教材方面结合我的学习情况有了较大改变。值得一提的是增加了一些计算机理论的内容,计算机技术的内容结合我国的教学情况和我们学习的实际情况进行了重写。这里所作的工作也只是将各位学长和同学们的学习体会以及我在学习计算机科学时的所思所想汇总在一起写了下来,很不成熟。目的就是希望能够给一些刚入学或者是学习计算机科学还没有入门的同学以一些建议。不期能够起到多大的作用,但求能为同学们的学习计算机科学与技术带来微薄的帮助。还是那句话,计算机科学博大精深,我只是个初学者,不当之处希望大家批评指正。
1、计算机理论的一个核心问题--从数学谈起:
[1]高等数学Vs数学分析
记得当年大一入学,每周四课时高等数学,天天作业不断(那时是七天工作制)。颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人(方向不见得有多大的问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了,如网络安全学,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然也许是正统数学家眼
里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机科学与技术的应当本着这个方向)。
其实我们计算机系学数学仅学习高等数学是不够的(典型的工科院校一般都开的是高等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的好像就是数学分析,我们学校计算机学院开的也是,不过老师讲起来好像还是按照高等数学讲),数学分析这门科学,咱们学计算机的人对它有很复杂的感情。在于它是偏向于证明型的数学课程,这对我们培养良好的分析能力和推理能力极有帮助。我的软件工程学导师北工大数理学院的王仪华先生就曾经教导过我们,数学系的学生到软件企业中大多作软件设计与分析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,从所受训练的角度上要远远在我们平均水平之上。当年出现的怪现象是:计算机系学生的高中数学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,但学完之后的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说不一定,其中原因何在,发人深思。
我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差别则更大。通常非数学专业的所?quot;高等数学“,无非是把数学分析中较困难的理论部分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被删去的理论部分。说得难听一点,对计算机系学生而言,追求算来算去的所谓”工程数学“已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不如现用现查,何必费事记呢?再不然直接用Mathematica或是Matlab好了。退一万步讲,即使是学高等数学我想大家看看华罗庚先生的《高等数学导论》也是比一般的教材好得多。华罗庚在数学上的造诣不用我去多说,但是他这光辉的一生做得我认为对我们来说,最重要的几件事情:首先是它筹建了中国科学院计算技术研究所,这是我们国家计算机科学的摇篮。在有就是他把很多的高等数学理论都交给了
做工业生产的技术人员,推动了中国工业的进步。第三件就是他一生写过很多书,但是对高校师生价值更大的就是他在病期间在病床上和他的爱徒王元写了《高等数学引论》(王元与其说是他的爱徒不如说是他的同事,是中科院数学所的老一辈研究员,对歌德巴赫猜想的贡献全世界仅次于陈景润)这书在我们的图书馆里居然找得到,说实话,当时那个书上已经长了虫子,别人走到那里都会闪开,但我却格外感兴趣,上下两册看了个遍,我的最大收获并不在于理论的阐述,而是在于他的理论完全的实例化,在生活中去找模型。这也是我为什么比较喜欢具体数学的原因,正如我在上文中提到的,理论脱离了实践就失去了它存在的意义。正因为理论是从实践当中抽象出来的,所以理论的研究才能够更好的指导实践,不用于指导实践的理论可以说是毫无价值的。
我在系里最爱做的事情就是给学弟学妹们推荐参考书。没有别的想法,只是希望他们少走弯路。中文的数学分析书,一般都认为以北大张筑生老师的”数学分析新讲“为最好。张筑生先生一生写的书并不太多,但是只要是写出来的每一本都是本领域内的杰作,这本当然更显突出些。这种老书看起来不仅是在传授你知识,而是在让你体会科学的方法与对事物的认识方法。万一你的数学实在太好,那就去看菲赫金哥尔茨?quot;微积分学教程”好了--但我认为没什么必要,毕竟你不想转到数学系去。吉米多维奇的“数学分析习题集”也基本上是计算型的书籍。书的名气很大,倒不见得适合我们,还是那句话,重要的是数学思想的建立,生活在信息社会里我们求的是高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》,高等教育出版社的,也是很好的教材。
中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来覆去。这里不得不提南京大学林成森,盛松柏两位老师编的“高等代数”,感觉相当舒服。此书相当全面地包含了关于多项式和线性代数的基本初等结果,同时还提供了一些有用的又比较深刻的内容,如Sturm序列,Shermon-Morrison公式,广义逆矩阵等等。可以说,作为本科生如能吃透此书,就可以算是高手。国内较好的高等代数教材还有清华计算机系用的那本,清华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果不过是代数系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟了一些再读。
正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数学系的同学之间思维上的差距。
[2]计算数学基础
概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机系学生的耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?据说清华计算机系开有“随机数学”,早就是必修课。另外,离散概率论对计算机系学生来说有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开设了单纯的“离散概率论”课程,干脆把连续概率删去,把离散概率讲深些。我们不一定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好。
计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。一般学生对这门课的重视程度有限,以为没什么用。不就是照套公式嘛!其实,做图形图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都以数值的为主。这门课有两个极端的讲法:一个是古典的“数值分析”,完全讲数学原理和算法;另一个是现在日趋流行的“科学与工程计算”,干脆教学生用软件包编程。我个人认为,计算机系的学生一定要认识清楚我们计算机系的学生为什么要学这门课,我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向努力的书籍还是挺多的,这里推荐大家高等教育出版社(CHEP)和施普林格出版社(Springer)联合出版的《计算方法(Computational Methods)》,华中理工大学数学系写的(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这本最好,至少程序设计方面涉及了:任意数学函数的求值,方程求根,线性方程组求解,插值方法,数值积分,场微分方程数值求解。李庆扬先生的那本则理论性过强,与实际应用结合得不太紧,可能比较适合纯搞理论的。
[3]也谈离散数学
每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑。不过,这么多内容挤在离散数学
一门课里,是否时间太紧了点?另外,计算机系学生不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从理想的状态来看,最好分开六门课:集合,逻辑,图论,组合,代数,数论。这个当然不现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与数论。(这方面我们学校已经着手开始做了)不管课怎么开,学生总一样要学。下面分别谈谈上面的三组内容。
古典集合论,北师大出过一本《基础集合论》不错。
数理逻辑,中科院软件所陆钟万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像,http://里可以按编号下载RFC文档。从IP的读起。等到能掌握10种左右常用协议,就没有几个人敢小看你了。再做的工作我看放在网络设计上就比较好了。
数据结构的重要性就不言而喻了,学完数据结构你会对你的编程思想进行一番革命性的洗礼,会对如何建立一个合理高效的算法有一个清楚的认识。对于算法的建立我想大家应当注意以下几点:
当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题.如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:
1.问题是否是建立在某种已知的熟悉的数据结构(例如,二叉树)上?如果不是,则要自己设计数据结构。
2.问题所要求编写的算法属于以下哪种类型?(建立数据结构,修改数据结构,遍
历,查找,排序...)3.分析问题所要求编写的算法的数学性质.是否具备递归特征?(对于递归程序设计,只要设计出合理的参数表以及递归结束的条件,则基本上大功告成.)
4.继续分析问题的数学本质.根据你以前的编程经验,设想一种可能是可行的解决办法,并证明这种解决办法的正确性.如果题目对算法有时空方面的要求,证明你的设想满足其要求.一般的,时间效率和空间效率难以兼得.有时必须通过建立辅助存储的方法来节省时间.5.通过一段时间的分析,你对解决这个问题已经有了自己的一些思路.或者说,你已经可以用自然语言把你的算法简单描述出来.继续验证其正确性,努力发现其中的错误并找出解决办法.在必要的时候(发现了无法解决的矛盾),推翻自己的思路,从头开始构思.6.确认你的思路可行以后,开始编写程序.在编写代码的过程中,尽可能把各种问题考虑得详细,周密.程序应该具有良好的结构,并且在关键的地方配有注释.7.举一个例子,然后在纸上用笔执行你的程序,进一步验证其正确性.当遇到与你的设想不符的情况时,分析问题产生的原因是编程方面的问题还是算法思想本身有问题.8.如果程序通过了上述正确性验证,那么在将其进一步优化或简化。
9.撰写思路分析,注释.对于具体的算法思路,只能靠你自己通过自己的知识和经验来加以获得,没有什么特定的规律(否则程序员全部可以下岗了,用机器自动生成代码就可以了).要有丰富的想象力,就是说当一条路走不通时,不要钻牛角尖,要敢于推翻自己的想法.我也只不过是初学者,说出上面的一些经验,仅供大家参考和讨论。
关于人工智能,我觉得的也是非常值得大家仔细研究的,虽然不能算是刚刚兴起的学科了,但是绝对是非常有发展前途的一门学科。我国人工智能创始人之一,北京科技大学涂序彦教授(这老先生是我的导师李小坚博士的导师)对人工智能这样定义:人工智能是模仿、延伸和扩展人与自然的智能的技术科学。在美国人工智能官方教育网站上对人工智能作了如下定义:Artificial Intelligence, or AI for short, is a combination of computer science, physiology, and philosophy.AI is a broad topic, consisting of different fields, from machine vision to expert systems.The element that the fields of AI have in common is the creation of machines that can “think”.这门学科研究的问题大概说有:
(1)符号主义: 符号计算与程序设计基础,知识表达方法 :知识与思维,产生式规则,语义网络,一阶谓词逻辑问题求解方法:搜索策略,启发式搜寻,搜寻算法,问题规约方法,谓词演算:归结原理,归结过程专家系统:建立专家系统的方 法及工具
(2)联接主义(神经网络学派):1988年美国权威机构指出:数据库,网络发展呈直线上升,神经网络可能是解决人工智能的唯一途径。关于神经网络学派,现在很多还是在发展阶段。
我想对于人工智能的学习,大家一定不要像学数学似的及一些现成的结论,要学会分析问题,最好能利用程序设计实现,这里推荐给大家ACM最佳博士论文奖获得者涂晓媛博士的著作《人工鱼-计算机动画的人工生命方法》(清华大学出版社)。搞人工生命的同学不会不知道国际知名的涂氏父女吧。关于人工智能的书当然首选《Artificial Intelligence A New Synthesis》Nils J.Nilsson.鼻祖嘛!
关于网络安全我也想在这里说两句,随着计算机技术的发展,整个社会的信息化水平突飞猛进,计算机网络技术日新月异,网络成了当即社会各个工作领域不可缺少的组成部分,只要有网络存在,网络安全问题就是一个必须解决好的问题,学习网络安全不是简简单单的收集一些黑客工具黑一黑别人的网站,而是要学习他的数学原理,实现原理,搞清底层工作机制,这样才能解决大部分的现有问题和新出现的安全问题。总的来说信息安全学的研究还是非常深奥的,这方面体会比较深的要算是在最近的微软杯程序设计大赛中利用.NET平台开发的那个项目My E-business Fairy.NET过程中了。
[3]闲聊软件工程 关于计算机科学的一些边缘科学我想谈一谈软件工程技术,对于一个企业,推出软件是不是就是几个程序员坐在一起,你写一段程序,我写一段程序呢?显然不是。软件工程是典型的计算机科学和数学,管理科学,心理学,社会学等学科的综合。它使我们这些搞理论和技术的人进入了一个社会。你所要考虑的不仅仅是程序的优劣,更应该考虑程序与软件的区别,软件与软件产品的区别,软件软件产品的市场前景,如何去更好的与人交流。这方面我还在学习阶段,以后这方面再写文章吧,先推荐给大家几本书:畅销20年不衰的《人月神话》(清华大学中文版,中国电力出版社影印版),《软件工程-实践者研究的方法》(机械工业出版社译本),《人件》(据说每一位微软公司的部门经理都读过这本书,推荐老总们和想当老总的同学都看看,了解一下什么是软件企业中的人)以及微软公司的《软件开发的科学与艺术》和《软件企业的管理与文化》(研究软件企业的制胜之道当然要研究微软的成功经验了!)看完上面的书,结合自己做的一些团队项目,我的一些比较深的体会有这么几点
1.How important a plan is for a project development.2.How to communicate with your team members in a more effective way.3.How to
solve unexpected situations.4.The importance of unification.5.The importance of doing what you should do.6.The importance of designing before programming.7.The importance of management.8.The importance of thinking what your teammates think.在软件开发过程中我们应当具有以下能力:
1.Like it if you would like to do it.We believe that your attitude toward your work will definitely makes great effect on the project.2.The spirit of group working.Take myself as an example.I am just a part of the team, just a little part.You must make it clear that you are just a member of the team, but your effort will change your project a lot.3.Passion
With passion, you can do your job in a more effective way.4.The ability of solving unexpected problems.5.Learning New things in a very short time
It is the basic requirement for we computer major to learn new technology.6.Creativity
The tools are changing.As for us, what's more important is to use these new tools and technology to enable people and businesses throughout the world to realize their full potential.7.The ability to do your work independently.Every member has his own business.In a team, your work cannot be replaced by others' so you must do your business well in order to assure the project development process.团队开发当中的一些具体精神应当有:
<1> Success and Failure is not one person's effect.Your team's success is not the contribution of a single person.Success contributes to the whole team.If your project failed, it also is not just because of one person's poor work.It is also your failure.<2> Learn from each other.Every person has his own specialty.Even Bill Gates cannot know all the things about software development.We often learn from each other and gains a lot.The old saying goes like this:
There must be one out of three who can be your teacher.In our team we say: Every person is your teacher.<3> Help those who have problems.Use the group working spirit to overcome all the difficulties.There is no need to explain it.As the old saying: Two heads are better than one.We always find it difficult to solve all the problems just by oneself.<4> Praise them who have got some improvement.In our team, I always praise the members when they have finished something or just solved one problem, and they think that it is interesting and gains a lot.Because they can see their efforts.<5> Say something if needed.这个是一次软件大赛当中的体会,和大家也做个交流,不过不能再说了,软件工程学说起来写本2000页的书一点也不多,恕我才疏学浅,不再做过多论述了。[4]谈谈学习态度的问题
关于计算机技术的学习我想是这样的:学校开设的任何一门科学都有其滞后性,不要总认为自己掌握的某门技术就已经是天下
无敌手了,虽然现在Java,VB,C,C++用的都很多,怎能保证没有被淘汰的一天,我想.NET平台的诞生和X#语言的初见端倪完全可以说明问题。换言之,在我们掌握一门新技术的同时就又有更新的技术产生,身为当代的大学生应当有紧跟科学发展的素质。举个例子,就像有些同学总说,我做网页设计就喜欢直接写html,不愿意用什么Frontpage,Dreamweaver。能用语言写网页固然很好,但有高效的手段你为什么不使呢?仅仅是为了显示自己的水平高,unique? 我看真正水平高的是能够以最快的速度接受新事物的人。高级程序设计语言的发展日新月异,今后的程序设计就像人们在说话一样,我想大家从xml中应是有所体会了。难道我们真就写个什么都要用汇编,以显示自己的水平高,真是这样倒不如直接用机器语言写算了。反过来说,想要以最快的速度接受并利用新技术关键还是在于你对计算机科学地把握程度。当然有一点我们必须指出,就是对于新技术要辩证得看,不能盲从。
计算机技术牵扯的内容更为广泛些,一项一项说恐怕没个一年半载也说不清。我只想提醒大家的还是那句话,技术与科学是不能分家的,学好了科学同时搞技术,这才是上上策。犹如英语,原先人们与老外交流必须要个翻译,现在满马路的人都会说英语。就连21世纪英语演讲比赛的冠军都轮不到英语系的学生了。计算机也是一样的,我们必须面对的一个现实就是:计算机真就只是一个工具,如果不具备其它方面的素养,计算机系的学生虽然不能说找不到工作,不过总有一天当其他专业性人才掌握了计算机技术后将比我们出色许多。原因就在于计算机解决的大都是实际问题,实际问题的知识却是我们少有的。单一的计算机技术没有立足之地。
我想是时候指出:学习每一个课程之前,都要先搞清这一课程的学习目的。这一学科的应用领域。据我自身所了解到的同龄同学和低年级的同学的学习状况:他们之中很少有人知道学一个学科的学习目的,期末考试结束了也不知道学这科做什么用。这就失去了读计算机科学的意义。当然这与现存的教育思想不能说一点关系都没有。
总的来说,从教育角度来讲,国内高校的课程安排不是很合理,强调理论,又不愿意在理论上深入教育,无力接受新技术,想避开新技术又无法避得一干二净。我觉得关键问题就是国内的高校难于突破现状,条条框框限制着怎么求发展。我们虽然认识得到国外教育的优越性,但为什么迟迟不能采取行动?哪怕是去粗取精的取那么一点点。我们需要改变。从我们自身角度来讲,多数人4年下来既没有学习计算机科学 的学术水平,也没有学习计算机技术的那种韧劲。在我刚上大一时,我的计算机科学入门导师,淮北煤炭师范学院王爱平教授曾经对我说过这样一番话:“当你选择了计算机这一门科学,就意味着你踏上了一条不归路,就意味着你一生都要为之奋斗……你的身后是悬崖,只有向前走,不能往后退。”
有些同学说按照这样学习学的东西太多,有的未见得有用,我想打个形象的比方:学校学出来的人都是一个球体,方方面面的知识都应具备。可是社会上需要球体的地方很少,反而需要的是砖和瓦,即精通某一行的人才。但是对于同等体积的物体,用球体来改造是最方便最省事的。学校的学生很多,为了能够使更多的学生来适应这个社会,学校也就不得以把所有的学生都打造成一个球体,然后让社会对这些学生进行再加工,成为真正能够有用的人才。即使你非常清楚自己的将来要干什么,并且非常下定决心要走自己的路,这一步你也必须走,世界是在不断变化的,你不能预料未来。想清楚,努力去干吧!
计算机科学博大精深,我只是个初学者。前面的路还长,计算机科学需要我们为之奋斗......学习计算机科学需要韧性,更需要创新,需要激情。深刻学习理论知识,勇于接受新技术的挑战,这才是我们这一代人应具有的素质。最后送大家一句话“Wake up every day with a feeling of passion for the difference technology will make in people's life!”。