【来信】

  我是一名计算机科学与技术软件开发与设计方向的大一学生。最近关于基础课很头疼。在上学期我们学了计算机导论。下学期学了c语言。但是没有学计算机组成原理 操作系统等  在大学刚开始老师就说这些学科很重要。因此我就选择了自学, 学习操作系统的时候教材要求要计算机组成原理 数据结构 c语言基础比较好,而且操作系统也分好几种UNIX windows等 我要选择一种学习还是怎样?。 然后我又就开始学计算机组成原理 发现有点难,而且我们也没有学习数据结构与算法这门课 请问老师我需要在这两门课上下些功夫吗?如果下功夫又该如何做。


【回信】


  你是在该爬的时候,就要起来跑了。这些课很重要,但要注意到大学学习有阶段性,随着年级的升高,会开出相关的课程来,首先将当下该学的学好。课外如果有精力,也要按循序渐进的原则拓展,而不是听说什么重要就直奔主题。这种热情很好,但往往给自己招来不愉快的体验。我建议你正在学习C语言,将主要的课外精力,多做一些程序设计的题目,打好实践的基础。如果要看数据结构、组成原理、操作系统的书,找一些通俗的读物开始看,以开扩眼界,而不是学到技术细节为目的。


  记得以前咨询过和你一样着急的大一同学,请到我的专栏中看,如《

重视基础学习的大一同学》、《

C++学有余力的大一同学的学习拓展》等,主要在“程序设计初学者园地”和“学习方法指导”中,请你自行去看。


  戒急躁,你会学得很好。


PS: 又一位同学由这封信引出疑问,将来信与回信附后,作为补充

【来信】

  我是一名大一的学生,专业是电子信息工程。看到你的 《答复大一学生:学会爬,再说跑》的回信,我觉得我现在还是有很多问题的。

  第一、我不是计算机专业的,我的专业是硬件偏软件的,现在在学的是c语言,但除了上课,我会每天坚持码代码,在这这一年中用过vc、vim等写过东西(都是基于c语言),最近在用c#写上位机(自学),我觉得自己学的很乱,没有头绪。

  第二、最近我在自学离散数学,貌似我们专业不开这门课,最近也在看《算法导论》(第三版),我不知道这样的学习是在爬,还是在跑。


【回信】

  关于第一,我赞成大一大二多见识一些,大三开始从中找方向,形成特色和强项(参考《逆袭大学》文摘——9.4 基础和应用的平衡中找到大学的节奏)。所以,在我看来,即使没有头绪,也就这样做,积累多了,你会将你实践过的统统“搭起桥”来的。

  关于第二,我知道你是在制造水陆两栖的战舰。在你说的那封回信中,来信者由于超前的安排,忽略了中间的过渡,似乎自己的学习能力也待提高。我说的爬,并不是要等着有课开,有老师教,完全也可以是自己学。这样的进程,有学科之间的相互支撑关系的因素,也有个人学习体验在其中。如果你在学习你所言的那些过程中,能够持续地,不是很费劲地往下走,就这样走下去。而如果感觉到难了,可以缓一缓,做做准备,或者换一些更通俗的书读一读。

  当然,水陆两栖战舰的另一层含义是,以学好你本专业为前提,里面全是宝,现在缺交叉型人才,有根本,也有本专业毕业生没有的强项,这将是能够具备价值的资本。