如何成为最牛程序员

如果你是一个计算机相关专业大学低年级学生,那么这篇文章就是为你写的。

 

我之前曾经发过一篇博文《大学计算机专业那些课》来谈论大学中各门课程的意义和重要性。那是针对更宽泛的范围来说的,这篇文章则更加精要和简约。因为这里研究的仅仅是核心计算机课程,更重要的是,这里要说的是这些课程之间的关系,以及它到底讲得是些什么东西。我想这些课程最终是要组成一个体系的。

 

请注意我这里所说的是通常情况下的核心课程,每个学校在课程设置是可能是存在差异的,但总体上框架应该是不变的。

 

最开始的第一门课应该是C语言程序设计”,这基本上属于你日后一切学习的开始,简单说这门课程的主要目的和内容就是介绍一种计算机语言的语法内容,至于怎么学好它,之前的文章都谈过了,这里就不罗嗦了。

 

之后的课程会分为三条线,第一条线的第一门课程是“数据结构与算法”。这很简单,一些有了语言基础之后,为了更好的使用语言去解决问题,就必须学习结构知识和算法。至于怎么学好它,之前的文章也谈过了——请注意,如何学都不是本文的重点。本文的重点在于告诉你你将来都会学些什么以及该学些什么。

 

“数据结构与算法”的后续课程是什么?答案应该是《编译原理》。很奇怪吧?课程就是这样设计的,其实这个路线也不是我发明的,国外大学的CS Course的体系也是这么设计的。编译原理说白了就是介绍编译器如何工作的,是让计算机理解计算机语言的一种方法和理论。这个工作过程之中蕴含了大量的算法,而且是非常复杂的算法,很多人甚至认为编译原理是计算机专业本科阶段最难的一门课程。主要就是因为这里面的算法太复杂,当然也会用到很多结构,树可能是用得最多的。当然,这就是相当于是数据结构与算法课程的一个后续性课程,类似一道附加题。最近听一个学生说有些学校本科已经取消这门课了,我想应该是较少一部分学校的做法吧。不过,中国的学习并不太重视这门课倒是真的。一般课程设置就是一个学期左右的课时。但是一般的国外学校这门课都要学上1年,甚至两年之久。这条线路到编译这里就应该是终点了。

 

下面我们来谈谈大学计算机课程学习的第二条路线。

 

在你具有了一定C语言基础之后,除了前面讲的第一条路线以外,你已经可以开始下面这条路线的学习了。

 

为了更好地探究计算机系统的研究机制,在学习了C语言之后,下面一门需要学习的课程是“汇编语言和微机接口技术”,这门课程包含两部分的内容,一部分就是汇编语言,汇编是一种更底层的语言(相对于C而言),说白了它就是一种“用助记符描述的机器语言”。很多人刚学汇编的时候都觉得很复杂,因为它跟硬件紧密相关,就是那些个寄存器也够初学者糊涂一阵子的。这门课程的另外一部分内容是微机接口技术,目前国内高校这部分内容都是基于80X86系列芯片的。已经可以看到这门课其实涉及到了很多硬件的知识,其实还不止,关于I/O控制,寄存器,中断,这门课里都有体现的。

 

接下来要学习的内容就是《计算机组成原理与体系结构》。其实我特别奇怪,我在写学习路线1(也就是前一篇文章)的时候,有读者认为在学习C语言之前,或者在学习其他专业课程之前,最先要学的就是这个东西。我不知道大家是不是觉得大学第一门专业课就是这个,我觉得这么想的人是不且实际,信口开河的。这门课程还是比较深的一门课程,在汇编和接口之后安排这门课程是比较的。不过国外的一些先进的计算机教育体系确实也有在较开始的时候开设一门概论课来作为导引,有时候叫Computer System Introduction,有时候叫Computer Culture,其实内容差不多,但作为计算机专业课程的导引课程,这些课程的设置里面已经设计到组原和OS的初步内容了。但这和Computer Structrue & Architecture还是有区别的。

 

接下来的一门课程是《计算机操作系统》,如果外行听起来可能觉得这个课应该是学如何使用操作系统的吧,就像WindowsXP 速成”?非也!这门课程是讲OS是如何设计的,或者说是如何实现一个OS(当然做要比说起来难多了)。之所以这门课程被安排在组原之后,那是因为这反映了一种自底向上的学习路线。操作系统当然是在计算机系统之上来搭建的。向调度啊、虚拟内存啊这些问题都是由操作系统来控制的。我最近所写的《代码揭秘》基本上是属于这条路线上的内容的,不同的是我采用了一种更贴合读者理解方式的描述,因为在讲述这些原理之前,我都是采用C语言实例来作为引子的。有空也推荐大家看看,应该学校里的图书馆是可以借到的。前一阵子一位四川大学的计算机青年教师给我写信谈起我这本书时,我才知道高校的图书馆里原理已经可以借到了。以上就是大学计算机课程学习的第2条路线,下面我们来讲最后一条路线。

 

最后一条路线属于应用型的,也就是说当你学完了基本的原理之后,一方面为了日后更好的工作,另一方面如果从事研究工作也可择其一而继续深入探究,那么最好总之要上升到一定应用层面的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值