一个非计算机专业大学生的困惑!!!!

时间:2021-02-13 15:03:44
我是一名非计算机专业大三学生,立志想进IT,对电脑也很感兴趣,已经拿到了程序员证书,可我总觉得那了证书和没拿没什么两样,什么都不会,所以想学些实际的东西,但又不知道怎样才能学到实际的东西,想去参加培训机构学习,但总觉得培训也只不过是拿张证书而已,请大家给我一些建议,让我有一个明朗的方向,谢谢

33 个解决方案

#1


计算机毕业满大街都是,别进来了!

#2


要有能力,证书没有什么用的.找准自己喜欢的发展方向,努力去做,就会成功

#3


呵呵,UP!

#4


编程,编程,再编程......

#5


证书绝对没用,还不如两年的工作经验

#6


看书,编程……

#7


那了证书和没拿没什么两样,什么都不会
总觉得培训也只不过是拿张证书而已
=====================================
说得好!

实践出真知!

#8


该回复于2011-10-24 14:33:25被版主删除

#9


我也很困惑

#10


我也是非计算机专业的,你和我情况差不多。我想呢,努力提高自己的技术,多实践,提高能力是关键,我们总会在IT业找到一席之地!
楼主有兴趣的话咱们聊聊啊,QQ:9655428

#11


先学好一门有用的工具,把基础打好。如果是做程序员,就多点写程序,小就小点,熟能生巧嘛。然后就自己写些有用的软件,再做做项目。
应该没有问题的。大家不也是这样过来的吗?

#12


哦。忘了告诉楼主,我也是非计算机专业的,先做了一段时间的asp,然后去考了高程,现在在学和用java。我自己的方法是:理论+实践,看书+读程序+动手编程。

#13


结合本专业作点东西!

#14


我现在也是你这种情况,用VC和ASP做了一段时间,现在在家里专心考高程。

#15


埃 

许多的人都是在困惑中的啊

现在大学生几个在考虑自己的前途

盲目的学习啊,无知的生活啊

楼主都去社会上走走

你会知道更多的

虽然我还没有在社会上行走

但是我以感受到了社会的气息

#16


程序员 级别的证书是一点用都没有,

TOO EASY

#17


加油

#18


程序员的行业是一个非常苦而收却又一般的行业。

#19


奉劝楼主赶快止步!我们都快累死了!

#20


不是吧,我的情况和楼主一样啊,各位大虾这么一说偶倒是吓到了啊HOHO,不过我也认为主要是能力和实践,但是没证书又有谁会理你呢?

#21


现在学计算机的满大街都是,我也是,但是象样的有几个???
少说话,多学习吧 
从C/C++开始

#22


学吧!知识储备必须够,但只是前提!
关键还要看你的实践经验!
早日步入社会吧!
它是个大课堂!
Good luck to u!

#23


我觉得也是,关键是有能力,学外语也是一样的。

#24


在学校期间有这种感觉是很正常的,因为你没接触社会,没有实际的软件开发操作。这都没关系,不是谁的错,但重要的是你要对自己有信心。还有现在可以先好好考虑一下自己喜欢的方向,确定一个后就努力的在那个方向上去多学一点东西,尽量的深入去理解,因为实际开发中不需要每个人都是全才,能掌握大局,那个级别不只是靠看书就达得到的,要有很多的实际开发经验。所以你只要在某一方面很突出就可以了,哪怕突出一点点也是优势吗。
祝你好运!

#25


up

#26


我是工商管理专业的
现在在一汽车企业资讯部门

事在人为

永远不要放弃本专业。
当你从事了计算机,你原专业将成为你的优势。

#27


学一样东西和你什么专业没有必然联系的,"英雄不问出处"嘛.我虽然使计算机专业出来的,可是眼睁睁看着好多我们系的毕业生实际编程能力还不如别的系辅修计算机专业的学生.这都不能说明什么问题.只要你对这一行有热情,够执着,你会比别人更强的~至于培训,我现在就在上北大青鸟的ACCP,现在上到第二阶段了,感觉还是学到一些东西了的.起码我做出来的东西比越来的毕设做的程序强很多了.建议考虑

#28


你一定要考虑好一个问题:你以后是要靠你的专业吃饭,还是靠计算机吃饭?

换句话说,到你工作的时候你是选择本专业的行业,还是IT行业?

#29


让我想起钱钟书的《围城》,城里的人想出去,城外的人想进来。想当初填报志愿选计算机时的想法和楼主一样。梦想哪天也能成为BILL GATES
奉劝楼主,编程不光要兴趣,还要天赋。没有人愿意做长期没有成就感的事!!
如果自己的专业还能找得到工作,还是学好自己本专业吧。

#30


看了再说
计算机科学反思录 (ZT)
送交者: ZNB 2003年5月13日23:45:18 于 [教育与学术]http://www.bbsland.com
    计算机科学这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了
,自己也做了一些思考,我一直认为计算机科学这门专业,在本科阶段是不可能切分成
计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术;每
一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括程序设计),但
计算机专业的优势就在于,我们掌握许多其他专业并不“深究”的东西,例如,算法,
体系结构,等等。非计算机专业的人可以很容易地做一个芯片,写一段程序,但他们做
不出计算机专业能够做出来的大型系统。今天我想专门谈一谈计算机科学,并将重点放
在计算理论上。
    计算机理论的一个核心问题——从数学谈起:
    记得当年大一入学,每周六课时高等数学,天天作业不断(那时是六日工作制)。
颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算
机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人
(方向不见得有问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了
,如网络安全,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然
也许是正统数学家眼里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数
学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想
用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识
去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推
论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政
治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机
科学与技术的应当本着这个方向)。
    其实我们计算机系学数学光学高等数学是不够的(典型的工科院校一般都开的是高
等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的就是数学分析)
,数学分析这门科学,咱们学计算机的人对它有很复杂的感情。在于它是偏向于证明型
的数学课程,这对我们培养良好的分析能力极有帮助。我的软件工程学导师北工大数理
学院的王仪华先生就曾经教导过我们,数学系的学生到软件企业中大多作软件设计与分
析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,
从所受训练的角度上要远远在我们之上。当年出现的怪现象是:计算机系学生的高中数
学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,
但学完之后的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说
不一定,其中原因何在,发人深思。
    我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差
别则更大。通常非数学专业的所谓“高等数学”,无非是把数学分析中较困难的理论部
分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被
删去的理论部分。说得难听一点,对计算机系学生而言,追求算来算去的所谓“工程数
学”已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不
如现用现查,何必费事记呢?再不然直接用Mathematics或是Matalab好了。
    我在系里最爱做的事情就是给学弟学妹们推荐参考书。中文的数学分析书,一般都
认为以北大张筑生老师的“数学分析新讲”为最好。万一你的数学实在太好,那就去看
菲赫金哥尔茨的“微积分学教程”好了--但我认为没什么必要,毕竟你不想转到数学系
去。吉米多维奇的“数学分析习题集”也基本上是计算型的东东。书的名气很大,倒不
见得适合我们,还是那句话,重要的是数学思想的建立,生活在信息社会里我们求的是
高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》
也是很好的教材。
    中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面
,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来覆去。这里不得不提
南京大学林成森,盛松柏两位老师编的“高等代数”,感觉相当舒服。此书相当全面地
包含了关于多项式和线性代数的基本初等结果,同时还提供了一些有用的又比较深刻的
内容,如Sturm序列,Shermon-Morrison公式,广义逆矩阵等等。可以说,作为本科生如
能吃透此书,就可以算高手。国内较好的高等代数教材还有清华计算机系用的那本,清
华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果
不过是代数系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的
讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟
了一些再读。

#31


正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学
习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握
解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,
训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数
学系的同学之间思维上的差距。
    概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了
的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机系学生的
耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?清
华计算机系开有“随机数学”,早就是必修课。另外,离散概率论对计算机系学生来说
有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开
设了单纯的“离散概率论”课程,干脆把连续概率删去,把离散概率讲深些。我们不一
定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好

    计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。
一般学生对这门课的重视程度有限,以为没什么用。不就是照套公式嘛!其实,做图形
图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都
以数值的为主。这门课有两个极端的讲法:一个是古典的“数值分析”,完全讲数学原
理和算法;另一个是现在日趋流行的“科学与工程计算”,干脆教学生用软件包编程。
我个人认为,计算机系的学生一定要认识清楚我们计算机系的学生为什么要学这门课,
我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向
努力的书籍还是挺多的,这里推荐大家高等教育出版社(CHEP)和施普林格出版社(Spr
inger)联合出版的《计算方法(Computational Methods)》,华中理工大学数学系写的
(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这
本最好,至少程序设计方面涉及了:任意数学函数的求值,方程求根,线性方程组求解
,插值方法,数值积分,场微分方程数值求解。李庆扬的那本则理论性过强,与实际应
用结合得不太紧。
    每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑
。不过,这么多内容挤在离散数学一门课里,是否时间太紧了点?另外,计算机系学生
不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从
理想的状态来看,最好分开六门课:集合,逻辑,图论,组合,代数,数论。这个当然不
现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与
数论。(这方面我们学校已经着手开始做了)不管课怎么开,学生总一样要学。下面分
别谈谈上面的三组内容。

#32


古典集合论,北师大出过一本《基础集合论》不错。 数理逻辑,中科院软件所陆钟
万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像
http://www.cas.ac.cn/html/Dir/2001/11/06/3391.htm自己去看看吧。总的来说,学集
合/逻辑起手不难,普通高中生都能看懂。但越往后越感觉深不可测。
    学完以上各书之后,如果你还有精力兴趣进一步深究,那么可以试一下GTM系列中的
《Introduction to Axiomatic Set Theory》和《A Course ofMathematical Logic》。
这两本都有世界图书出版社的引进版。你如果能搞定这两本,可以说在逻辑方面真正入
了门,也就不用再浪费时间听我瞎侃了。
    据说全中国最多只有三十个人懂图论。此言不虚。图论这东东,技巧性太强,几乎
每个问题都有一个独特的方法,让人头痛。不过这也正是它魅力所在:只要你有创造性
,它就能给你成就感。我的导师说,图论里面随便揪一块东西就可以写篇论文。大家可
以体会里面内容之深广了吧!国内的图论书中,王树禾老师的“图论及其算法”非常成
功。一方面,其内容在国内教材里算非常全面的。另一方面,其对算法的强调非常适合
计算机系(本来就是科大计算机系教材)。有了这本书为主,再参考几本翻译的,如Bond
y & Murty的《图论及其应用》,人民邮电出版社翻译的《图论和电路网络》等等,就马
马虎虎,对本科生足够了。再进一步,世界图书引进有GTM系列的"Modern Graph Theor
y"。此书确实经典!国内好象还有一家出版了个翻译版。不过,学到这个层次,还是读
原版好。搞定这本书,也标志着图论入了门。
    离散数学方面我们北京工业大学实验学院有个世界级的专家,叫邵学才,复旦大学
概率论毕业的,教过高等数学,线性代数,概率论,最后转向离散数学,出版著作无数
,论文集新加坡有一本,堪称经典,大家想学离散数学的真谛不妨找来看看。这老师的
课我专门去听过,极为经典。不过你要从他的不经意的话中去挖掘精髓。在同他的交谈
当中我又深刻地发现一个问题,虽说邵先生写书无数,但依他自己的说法每本都差不多
,我实在觉得诧异,他说主要是有大纲的限制,不便多写。这就难怪了,很少听说国外
写书还要依据个什么大纲(就算有,内容也宽泛的多),不敢越雷池半步,这样不是看
谁的都一样了。外版的书好就好在这里,最新的科技成果里面都有论述,别的先不说,
至少是“紧跟时代的理论知识”。
    组合感觉没有太适合的国产书。还是读Graham和Knuth等人合著的经典“具体数学”
吧,西安电子科技大学出版社有翻译版。 抽象代数,国内经典为莫宗坚先生的“代数学
”。此书是北大数学系教材,深得好评。然而对本科生来说,此书未免太深。可以先学
习一些其它的教材,然后再回头来看“代数学”。国际上的经典可就多了,GTM系列里就
有一大堆。推荐一本谈不上经典,但却最简单的,最容易学的http://www.math.miami.
edu/~ec/book/这本“Introduction to Linear and Abstract Algebra"非常通俗易懂,
而且把抽象代数和线性代数结合起来,对初学者来说非常理想,我校比较牛的同学都有
收藏。
    数论方面,国内有经典而且以困难著称的”初等数论“(潘氏兄弟著,北大版)。再
追溯一点,还有更加经典(可以算世界级)并且更加困难的”数论导引“(华罗庚先生的名
著,科学版,九章书店重印,繁体的看起来可能比较困难)。把基础的几章搞定一个大概
,对本科生来讲足够了。但这只是初等数论。本科毕业后要学计算数论,你必须看英文
的书,如Bach的"Introduction to Algorithmic Number Theory"。计算机科学理论的根
本,在于算法。现在很多系里给本科生开设算法设计与分析,确实非常正确。环顾西方
世界,大约没有一个三流以上计算机系不把算法作为必修的。算法教材目前公认以Corm
an等著的"Introduction to Algorithms"为最优。对入门而言,这一本已经足够,不需
要再参考其它书。
    再说说形式语言与自动机。我看过北邮的教材,应该说写的还清楚。但是,有一点
要强调:形式语言和自动机的作用主要在作为计算模型,而不是用来做编译。事实上,
编译前端已经是死领域,没有任何open problems,北科大的班晓娟博士也曾经说过,编
译的技术已相当成熟。如果为了这个,我们完全没必要去学形式语言--用用yacc什么的
就完了。北邮的那本在国内还算比较好,但是在深度上,在跟可计算性的联系上都有较
大的局限,现代感也不足。所以建议有兴趣的同学去读英文书,不过国内似乎没引进这
方面的教材。可以去互动出版网上看一看。入门以后,把形式语言与自动机中定义的模
型,和数理逻辑中用递归函数定义的模型比较一番,可以说非常有趣。现在才知道,什
么叫“宫室之美,百官之富”!
    计算机科学和数学的关系有点奇怪。二三十年以前,计算机科学基本上还是数学的
一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反
过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这
个孩子身上始终流着母亲的血液。这血液是the mathematical underpinning of compu
ter science(计算机科学的数学基础),也就是理论计算机科学。原来在东方大学城图书
馆中曾经看过一本七十年代的译本(书皮都没了,可我就爱关注这种书),大概就叫《
计算机数学》。那本书若是放在当时来讲决是一本好书,但现在看来,涵盖的范围还算
广,深度则差了许多,不过推荐大一的学生倒可以看一看,至少可以使你的计算数学入
入门。
    最常和理论计算机科学放在一起的一个词是什么?答:离散数学。这两者的关系是
如此密切,以至于它们在不少场合下成为同义词。(这一点在前面的那本书中也有体现
)传统上,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后
是复变函数,实变函数,泛函数等等。实变和泛函被很多人认为是现代数学的入门。在
物理,化学,工程上应用的,也以分析为主。随着计算机科学的出现,一些以前不太受
到重视的数学分支突然重要起来。人们发现,
这些分支处理的数学对象与传统的分析有明显的区别:分析研究的问题解决方案是连续
的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机
会进行此类的计算。人们从而称这些分支为“离散数学”。“离散数学”的名字越来越
响亮,最后导致以分析为中心的传统数学分支被相对称为“连续数学”。
    离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科:

    1) 集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。
    2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的
核心是算法,而大量的算法建立在图和组合的基础上。
    3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人
们惊讶地发现代数竟然有如此之多的应用。
    但是,理论计算机科学仅仅就是在数学的上面加上“离散”的帽子这么简单吗?一
直到大约十几年前,终于有一位大师告诉我们:不是。D.E.Knuth(他有多伟大,我想不
用我废话了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个
词在这里有两层含义:
    首先:对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的
问题关心不够。他抱怨说,在研究中他需要的数学往往并不存在,所以他只能自己去创
造一些数学。为了直接面向应用的需要,他要提倡“具体”的数学。在这里我做一点简
单的解释。例如在集合论中,数学家关心的都是最根本的问题--公理系统的各种性质之
类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并
不重要。然而,在计算机科学中应用的,恰恰就是这些具体的东西。Knuth能够首先看到
这一点,不愧为当世计算机第一人。其次,Concrete是Continuous(连续)加上discrete
(离散)。不管连续数学还是离散数学,都是有用的数学!
    理论与实际的结合——计算机科学研究的范畴
    前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前主要的研
究领域包括:可计算性理论,算法设计与复杂性分析,密码学与信息安全,分布式计算
理论,并行计算理论,网络理论,生物信息计算,计算几何学,程序语言理论等等。这
些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。想搞搞这方面
的工作,推荐看中国计算机学会的一系列书籍,至少代表了我国的权威。下面随便举一
些例子。

#33


还是工作经验,有证书只是一个名,自己喜欢的继续深造,必有成就。

#1


计算机毕业满大街都是,别进来了!

#2


要有能力,证书没有什么用的.找准自己喜欢的发展方向,努力去做,就会成功

#3


呵呵,UP!

#4


编程,编程,再编程......

#5


证书绝对没用,还不如两年的工作经验

#6


看书,编程……

#7


那了证书和没拿没什么两样,什么都不会
总觉得培训也只不过是拿张证书而已
=====================================
说得好!

实践出真知!

#8


该回复于2011-10-24 14:33:25被版主删除

#9


我也很困惑

#10


我也是非计算机专业的,你和我情况差不多。我想呢,努力提高自己的技术,多实践,提高能力是关键,我们总会在IT业找到一席之地!
楼主有兴趣的话咱们聊聊啊,QQ:9655428

#11


先学好一门有用的工具,把基础打好。如果是做程序员,就多点写程序,小就小点,熟能生巧嘛。然后就自己写些有用的软件,再做做项目。
应该没有问题的。大家不也是这样过来的吗?

#12


哦。忘了告诉楼主,我也是非计算机专业的,先做了一段时间的asp,然后去考了高程,现在在学和用java。我自己的方法是:理论+实践,看书+读程序+动手编程。

#13


结合本专业作点东西!

#14


我现在也是你这种情况,用VC和ASP做了一段时间,现在在家里专心考高程。

#15


埃 

许多的人都是在困惑中的啊

现在大学生几个在考虑自己的前途

盲目的学习啊,无知的生活啊

楼主都去社会上走走

你会知道更多的

虽然我还没有在社会上行走

但是我以感受到了社会的气息

#16


程序员 级别的证书是一点用都没有,

TOO EASY

#17


加油

#18


程序员的行业是一个非常苦而收却又一般的行业。

#19


奉劝楼主赶快止步!我们都快累死了!

#20


不是吧,我的情况和楼主一样啊,各位大虾这么一说偶倒是吓到了啊HOHO,不过我也认为主要是能力和实践,但是没证书又有谁会理你呢?

#21


现在学计算机的满大街都是,我也是,但是象样的有几个???
少说话,多学习吧 
从C/C++开始

#22


学吧!知识储备必须够,但只是前提!
关键还要看你的实践经验!
早日步入社会吧!
它是个大课堂!
Good luck to u!

#23


我觉得也是,关键是有能力,学外语也是一样的。

#24


在学校期间有这种感觉是很正常的,因为你没接触社会,没有实际的软件开发操作。这都没关系,不是谁的错,但重要的是你要对自己有信心。还有现在可以先好好考虑一下自己喜欢的方向,确定一个后就努力的在那个方向上去多学一点东西,尽量的深入去理解,因为实际开发中不需要每个人都是全才,能掌握大局,那个级别不只是靠看书就达得到的,要有很多的实际开发经验。所以你只要在某一方面很突出就可以了,哪怕突出一点点也是优势吗。
祝你好运!

#25


up

#26


我是工商管理专业的
现在在一汽车企业资讯部门

事在人为

永远不要放弃本专业。
当你从事了计算机,你原专业将成为你的优势。

#27


学一样东西和你什么专业没有必然联系的,"英雄不问出处"嘛.我虽然使计算机专业出来的,可是眼睁睁看着好多我们系的毕业生实际编程能力还不如别的系辅修计算机专业的学生.这都不能说明什么问题.只要你对这一行有热情,够执着,你会比别人更强的~至于培训,我现在就在上北大青鸟的ACCP,现在上到第二阶段了,感觉还是学到一些东西了的.起码我做出来的东西比越来的毕设做的程序强很多了.建议考虑

#28


你一定要考虑好一个问题:你以后是要靠你的专业吃饭,还是靠计算机吃饭?

换句话说,到你工作的时候你是选择本专业的行业,还是IT行业?

#29


让我想起钱钟书的《围城》,城里的人想出去,城外的人想进来。想当初填报志愿选计算机时的想法和楼主一样。梦想哪天也能成为BILL GATES
奉劝楼主,编程不光要兴趣,还要天赋。没有人愿意做长期没有成就感的事!!
如果自己的专业还能找得到工作,还是学好自己本专业吧。

#30


看了再说
计算机科学反思录 (ZT)
送交者: ZNB 2003年5月13日23:45:18 于 [教育与学术]http://www.bbsland.com
    计算机科学这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了
,自己也做了一些思考,我一直认为计算机科学这门专业,在本科阶段是不可能切分成
计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术;每
一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括程序设计),但
计算机专业的优势就在于,我们掌握许多其他专业并不“深究”的东西,例如,算法,
体系结构,等等。非计算机专业的人可以很容易地做一个芯片,写一段程序,但他们做
不出计算机专业能够做出来的大型系统。今天我想专门谈一谈计算机科学,并将重点放
在计算理论上。
    计算机理论的一个核心问题——从数学谈起:
    记得当年大一入学,每周六课时高等数学,天天作业不断(那时是六日工作制)。
颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算
机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人
(方向不见得有问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了
,如网络安全,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然
也许是正统数学家眼里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数
学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想
用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识
去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推
论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政
治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机
科学与技术的应当本着这个方向)。
    其实我们计算机系学数学光学高等数学是不够的(典型的工科院校一般都开的是高
等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的就是数学分析)
,数学分析这门科学,咱们学计算机的人对它有很复杂的感情。在于它是偏向于证明型
的数学课程,这对我们培养良好的分析能力极有帮助。我的软件工程学导师北工大数理
学院的王仪华先生就曾经教导过我们,数学系的学生到软件企业中大多作软件设计与分
析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,
从所受训练的角度上要远远在我们之上。当年出现的怪现象是:计算机系学生的高中数
学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,
但学完之后的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说
不一定,其中原因何在,发人深思。
    我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差
别则更大。通常非数学专业的所谓“高等数学”,无非是把数学分析中较困难的理论部
分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被
删去的理论部分。说得难听一点,对计算机系学生而言,追求算来算去的所谓“工程数
学”已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不
如现用现查,何必费事记呢?再不然直接用Mathematics或是Matalab好了。
    我在系里最爱做的事情就是给学弟学妹们推荐参考书。中文的数学分析书,一般都
认为以北大张筑生老师的“数学分析新讲”为最好。万一你的数学实在太好,那就去看
菲赫金哥尔茨的“微积分学教程”好了--但我认为没什么必要,毕竟你不想转到数学系
去。吉米多维奇的“数学分析习题集”也基本上是计算型的东东。书的名气很大,倒不
见得适合我们,还是那句话,重要的是数学思想的建立,生活在信息社会里我们求的是
高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》
也是很好的教材。
    中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面
,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来覆去。这里不得不提
南京大学林成森,盛松柏两位老师编的“高等代数”,感觉相当舒服。此书相当全面地
包含了关于多项式和线性代数的基本初等结果,同时还提供了一些有用的又比较深刻的
内容,如Sturm序列,Shermon-Morrison公式,广义逆矩阵等等。可以说,作为本科生如
能吃透此书,就可以算高手。国内较好的高等代数教材还有清华计算机系用的那本,清
华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果
不过是代数系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的
讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟
了一些再读。

#31


正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学
习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握
解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,
训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数
学系的同学之间思维上的差距。
    概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了
的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机系学生的
耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?清
华计算机系开有“随机数学”,早就是必修课。另外,离散概率论对计算机系学生来说
有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开
设了单纯的“离散概率论”课程,干脆把连续概率删去,把离散概率讲深些。我们不一
定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好

    计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。
一般学生对这门课的重视程度有限,以为没什么用。不就是照套公式嘛!其实,做图形
图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都
以数值的为主。这门课有两个极端的讲法:一个是古典的“数值分析”,完全讲数学原
理和算法;另一个是现在日趋流行的“科学与工程计算”,干脆教学生用软件包编程。
我个人认为,计算机系的学生一定要认识清楚我们计算机系的学生为什么要学这门课,
我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向
努力的书籍还是挺多的,这里推荐大家高等教育出版社(CHEP)和施普林格出版社(Spr
inger)联合出版的《计算方法(Computational Methods)》,华中理工大学数学系写的
(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这
本最好,至少程序设计方面涉及了:任意数学函数的求值,方程求根,线性方程组求解
,插值方法,数值积分,场微分方程数值求解。李庆扬的那本则理论性过强,与实际应
用结合得不太紧。
    每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑
。不过,这么多内容挤在离散数学一门课里,是否时间太紧了点?另外,计算机系学生
不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从
理想的状态来看,最好分开六门课:集合,逻辑,图论,组合,代数,数论。这个当然不
现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与
数论。(这方面我们学校已经着手开始做了)不管课怎么开,学生总一样要学。下面分
别谈谈上面的三组内容。

#32


古典集合论,北师大出过一本《基础集合论》不错。 数理逻辑,中科院软件所陆钟
万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像
http://www.cas.ac.cn/html/Dir/2001/11/06/3391.htm自己去看看吧。总的来说,学集
合/逻辑起手不难,普通高中生都能看懂。但越往后越感觉深不可测。
    学完以上各书之后,如果你还有精力兴趣进一步深究,那么可以试一下GTM系列中的
《Introduction to Axiomatic Set Theory》和《A Course ofMathematical Logic》。
这两本都有世界图书出版社的引进版。你如果能搞定这两本,可以说在逻辑方面真正入
了门,也就不用再浪费时间听我瞎侃了。
    据说全中国最多只有三十个人懂图论。此言不虚。图论这东东,技巧性太强,几乎
每个问题都有一个独特的方法,让人头痛。不过这也正是它魅力所在:只要你有创造性
,它就能给你成就感。我的导师说,图论里面随便揪一块东西就可以写篇论文。大家可
以体会里面内容之深广了吧!国内的图论书中,王树禾老师的“图论及其算法”非常成
功。一方面,其内容在国内教材里算非常全面的。另一方面,其对算法的强调非常适合
计算机系(本来就是科大计算机系教材)。有了这本书为主,再参考几本翻译的,如Bond
y & Murty的《图论及其应用》,人民邮电出版社翻译的《图论和电路网络》等等,就马
马虎虎,对本科生足够了。再进一步,世界图书引进有GTM系列的"Modern Graph Theor
y"。此书确实经典!国内好象还有一家出版了个翻译版。不过,学到这个层次,还是读
原版好。搞定这本书,也标志着图论入了门。
    离散数学方面我们北京工业大学实验学院有个世界级的专家,叫邵学才,复旦大学
概率论毕业的,教过高等数学,线性代数,概率论,最后转向离散数学,出版著作无数
,论文集新加坡有一本,堪称经典,大家想学离散数学的真谛不妨找来看看。这老师的
课我专门去听过,极为经典。不过你要从他的不经意的话中去挖掘精髓。在同他的交谈
当中我又深刻地发现一个问题,虽说邵先生写书无数,但依他自己的说法每本都差不多
,我实在觉得诧异,他说主要是有大纲的限制,不便多写。这就难怪了,很少听说国外
写书还要依据个什么大纲(就算有,内容也宽泛的多),不敢越雷池半步,这样不是看
谁的都一样了。外版的书好就好在这里,最新的科技成果里面都有论述,别的先不说,
至少是“紧跟时代的理论知识”。
    组合感觉没有太适合的国产书。还是读Graham和Knuth等人合著的经典“具体数学”
吧,西安电子科技大学出版社有翻译版。 抽象代数,国内经典为莫宗坚先生的“代数学
”。此书是北大数学系教材,深得好评。然而对本科生来说,此书未免太深。可以先学
习一些其它的教材,然后再回头来看“代数学”。国际上的经典可就多了,GTM系列里就
有一大堆。推荐一本谈不上经典,但却最简单的,最容易学的http://www.math.miami.
edu/~ec/book/这本“Introduction to Linear and Abstract Algebra"非常通俗易懂,
而且把抽象代数和线性代数结合起来,对初学者来说非常理想,我校比较牛的同学都有
收藏。
    数论方面,国内有经典而且以困难著称的”初等数论“(潘氏兄弟著,北大版)。再
追溯一点,还有更加经典(可以算世界级)并且更加困难的”数论导引“(华罗庚先生的名
著,科学版,九章书店重印,繁体的看起来可能比较困难)。把基础的几章搞定一个大概
,对本科生来讲足够了。但这只是初等数论。本科毕业后要学计算数论,你必须看英文
的书,如Bach的"Introduction to Algorithmic Number Theory"。计算机科学理论的根
本,在于算法。现在很多系里给本科生开设算法设计与分析,确实非常正确。环顾西方
世界,大约没有一个三流以上计算机系不把算法作为必修的。算法教材目前公认以Corm
an等著的"Introduction to Algorithms"为最优。对入门而言,这一本已经足够,不需
要再参考其它书。
    再说说形式语言与自动机。我看过北邮的教材,应该说写的还清楚。但是,有一点
要强调:形式语言和自动机的作用主要在作为计算模型,而不是用来做编译。事实上,
编译前端已经是死领域,没有任何open problems,北科大的班晓娟博士也曾经说过,编
译的技术已相当成熟。如果为了这个,我们完全没必要去学形式语言--用用yacc什么的
就完了。北邮的那本在国内还算比较好,但是在深度上,在跟可计算性的联系上都有较
大的局限,现代感也不足。所以建议有兴趣的同学去读英文书,不过国内似乎没引进这
方面的教材。可以去互动出版网上看一看。入门以后,把形式语言与自动机中定义的模
型,和数理逻辑中用递归函数定义的模型比较一番,可以说非常有趣。现在才知道,什
么叫“宫室之美,百官之富”!
    计算机科学和数学的关系有点奇怪。二三十年以前,计算机科学基本上还是数学的
一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反
过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这
个孩子身上始终流着母亲的血液。这血液是the mathematical underpinning of compu
ter science(计算机科学的数学基础),也就是理论计算机科学。原来在东方大学城图书
馆中曾经看过一本七十年代的译本(书皮都没了,可我就爱关注这种书),大概就叫《
计算机数学》。那本书若是放在当时来讲决是一本好书,但现在看来,涵盖的范围还算
广,深度则差了许多,不过推荐大一的学生倒可以看一看,至少可以使你的计算数学入
入门。
    最常和理论计算机科学放在一起的一个词是什么?答:离散数学。这两者的关系是
如此密切,以至于它们在不少场合下成为同义词。(这一点在前面的那本书中也有体现
)传统上,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后
是复变函数,实变函数,泛函数等等。实变和泛函被很多人认为是现代数学的入门。在
物理,化学,工程上应用的,也以分析为主。随着计算机科学的出现,一些以前不太受
到重视的数学分支突然重要起来。人们发现,
这些分支处理的数学对象与传统的分析有明显的区别:分析研究的问题解决方案是连续
的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机
会进行此类的计算。人们从而称这些分支为“离散数学”。“离散数学”的名字越来越
响亮,最后导致以分析为中心的传统数学分支被相对称为“连续数学”。
    离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科:

    1) 集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。
    2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的
核心是算法,而大量的算法建立在图和组合的基础上。
    3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人
们惊讶地发现代数竟然有如此之多的应用。
    但是,理论计算机科学仅仅就是在数学的上面加上“离散”的帽子这么简单吗?一
直到大约十几年前,终于有一位大师告诉我们:不是。D.E.Knuth(他有多伟大,我想不
用我废话了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个
词在这里有两层含义:
    首先:对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的
问题关心不够。他抱怨说,在研究中他需要的数学往往并不存在,所以他只能自己去创
造一些数学。为了直接面向应用的需要,他要提倡“具体”的数学。在这里我做一点简
单的解释。例如在集合论中,数学家关心的都是最根本的问题--公理系统的各种性质之
类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并
不重要。然而,在计算机科学中应用的,恰恰就是这些具体的东西。Knuth能够首先看到
这一点,不愧为当世计算机第一人。其次,Concrete是Continuous(连续)加上discrete
(离散)。不管连续数学还是离散数学,都是有用的数学!
    理论与实际的结合——计算机科学研究的范畴
    前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前主要的研
究领域包括:可计算性理论,算法设计与复杂性分析,密码学与信息安全,分布式计算
理论,并行计算理论,网络理论,生物信息计算,计算几何学,程序语言理论等等。这
些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。想搞搞这方面
的工作,推荐看中国计算机学会的一系列书籍,至少代表了我国的权威。下面随便举一
些例子。

#33


还是工作经验,有证书只是一个名,自己喜欢的继续深造,必有成就。