新的一年开始了,我大学的所有课程也刚刚结束不久,想一写篇文章谈一谈我对计算机专业的认识。博主学的专业是“计算机科学与技术”,今年大四,三年半的校园生活使我对计算机专业的认知一次又一次的改变;由于没有一个好的“引路人”,自己总是摸索着前进,走了不少的弯路。刚上大学的时候对计算机没有什么概念,当时除了会打字以外也不会什么,印象中的计算机专业是编程,是写软件,或者是做些什么PS,网页三剑客,甚至修电脑之类的东西。
在大一下学期,有了编程课,对编程有了初步的认识,也改变了原来的想法,把计算机专业认为就是编程,也尝试着做一些入门级“项目”;在大二上学期学习了数据结构,当时也不觉得它有什么用,视乎跟我那些所谓的“项目”没什么关系。由于我们学校没有开设“算法分析与设计”这门课,根本不知道“算法”为何物,直到这学期结束,才认识到编程的本质是数据结构+算法,记得当时花了一上午的时间写了个不到40行“快速排序”感觉满满的收获,相比而言,那些我做了十天半个月所谓的“项目”显得那么的空虚,直到大二结束,我对计算机的认识虽然还只是编程,但对编程的理解深入了,意识到了数据结构,算法和架构的重要性。
大一,大二的时候我一直想计算机考研为什么是数据结构、组成原理、操作系统、网络四门课,除了数据结构我认识到了它的重要性外,其他的理论课跟以后的“软件开发”有什么关系,而且这些理论课无一例外都是高学分课,这个问题一直到大三大量开了专业课我才意识到这些理论课的重要性,这些都是计算机基础,想成为一个好的科研人员或者高级码农,这些都是必备的,这些才是“计算机科学”,以前只看到了后面的“技术”两个字,我觉得“计算机科学与技术”专业中要学的“科学”要占80%,“技术”占20%。大三开始随着读的书多了,网上的各种大牛见的多了,看的多了,见的也多了,越来越觉得“编程”只是计算机的一部分,甚至是“冰山一角”,或者说只是一种实现或验证“科学”的工具(这里的科学不仅包括计算机,还有数学,物理,化学,生物等),但是编程还是很重要,并且大师级人物都是软硬通吃的,不仅对软件理论很熟悉,模电数电,组成原理,微机原理等硬件原理也十分了解,典型的例子就是著有经典的《windows程序设计》的Charles Petzold,很多人不知道他还是另一本神作《编码的奥秘》的作者。这是我大三上学期对计算机的理解,跟以前的认识还是有不小的转变。
刚上大学时就听说计算机学的好的人,数学也好,但一直不知道它们之间有何种联系,而且