老师您好!
很冒昧的来打扰您,只是在学习上实在有些困惑才来向您求教一番。我是计算机科学与技术的大一学生,我非常喜欢我自己的专业,但是学校里讲的东西太慢,太浅,所以我一般都是自学,我在自学的时候最大的问题不是学习本身的问题,而是方向的问题,我学的东西很杂,在这大半段的大一生活里,我学了C,一些win32编程,还有一些简单的socket编程,还学了一些C通过ODBC操作数据库。现在我正在学数据结构和算法,我打算未来的一段时间里一门心思搞数据结构和算法,但是我不知道在学习数据结构的过程中,是否有必要用C语言去实现所有的算法和结构,我现在学到了二叉树,前面的那些我全部用代码实现了。我常常有疑惑,这些结构在c++那些更加抽象的语言中都帮你写好库函数了,我在读《C陷阱与缺陷》的时候作者说要学会用c++的库函数,那我现在还有必要去用c实现那些结构吗?
第二个问题就是学习方向的问题,我不太清楚要学哪些东西,我想考MIT的研究生,真的很想。我该怎么去努力呢??从我上大学到现在大一快结束了,我读了《C和指针》,《C专家编程》,《C陷阱与缺陷》,《C primer plus》还有现在在读的《数据结构与算法分析》,我想问问我还需要读哪些书能让我步入精英的行列?我读完的那些书是从头到尾读完的,里面留的问题我也一个一个实现了。
第三个问题,数学要学到什么程度,我的高数是和数学专业一起学的,我把高数课退了,学了微积分和多元微积分,但是我的线性代数学的是工科的,没有去学高等代数,离散数学我觉得学校教的太简单,自己买了本《离散数学及其应用》目前学了大概1/4左右,我的数学成绩还算不错,学校里的考试一般在90分到100分左右,这学期我报名参加了全国大学生数学竞赛,现在正在准备中,我想问问我想考MIT的话,数学要学的有多好才够。ps:我们学校没有到MIT的项目,只有牛津剑桥的。我想考MIT估计只能靠自己。
希望老师能为我指点一个方向,感激不尽~~~~~
打扰之处还望海涵!!!
【回复】
说实话,给你说几句,我也有压力了。你的学习,从你所讲的盾,很强大了。我花很多时间做“雪中送炭”了,面对的尽是学不下去之类的话题,自己的专业水平也不见涨,对“锦上添花”常感无力。不过,能说得上的,就谈谈我的看法,供参考。
你正在大一,其他事情还远着呢,所以,合适这种放开来学。C++库函数是已经有了,你需要学会用,但是,用C语言实现这些结构,作为学习过程,完全有必要去做。我甚至对如你一般有强大学习力的同学就提过建议,建一个自己的算法库。我们看重的是这个学习过程。想想在高中时,几世纪以前就有人做过的物理实验为什么还要学生重复,因为这是学习过程中的环节。有了这样的学习,你将不一样,例如做游戏开发,有些人会用引擎开发,有些人是做引擎的,形成了行业中不同的层次。
第二个问题,技术类的书,像你这样强的人,可以尝试着将最经典的《计算机程序设计艺术》读下去,另外你读的书中,缺少计算机组成和体系结构的书,我知道的好书有《深入理解计算机系统》。注意将计算机系统看成一个整体去学习,在大学阶段,不要将软件、硬件分得那么清。想在行业中做得更深远一些,你读的书不应该限于专业和技术。和专业、行业相关的,举我看过的,有《信息简史》、《浪潮之巅》、《数学之美》、《逻辑的引擎》等,你应该读更多的此类的书。而作为了解社会、了解人(别人和自己)的书,应该是能读书的你该需要关注的。
第三个数学的问题,你不满足于考试是对的,拿出你最大的能量和灵活去应对,数学竞赛是可以利用好的一个载体。要学多好,我想半天也不知道该怎么说,大概我没有学那么好过,以至于都想不到“好”会是一个什么样子。自己把握吧,相关的科目,知其然,知其发展过程,知其所以然,学会其中的思维方式,有能力去发展理论,需要用时,立刻能拿出来用。毕竟大学的目标不只是专业好,专业能力强也不只是数学好,尽力就行。
我将考MIT的事放最后,这也是我解答不了的事。于政策、流程、标准,一概没有感觉。一般而言,国外好大学,要看你的绩点,看你本科阶段做过的工作(专业研究的,以及服务社会的,等等)。了解的途径,看一些留学信息,以及直接去看MIT的官网,甚至和招生主管Email沟通。有这样的目标,提前了解情,并按照这个方向前进,这是该做的事。
羡慕你的状态,相信你会有更激情的学习。