小贩曰:兄弟,别还价了,我们做IT的也不容易。
对于计算机的学习步骤,可以分为几个阶段:其中的数学和英语是作为计算机行业的基础;第二阶段的是数据结构、计算机组成原理、计算机操作系统原理、计算机网络、编译原理、汇编语言及接口技术、C语言等专业基础课程;第三个阶段是计算机图形学、数据库原理、软件工程、人工智能、系统分析与控制等计算机专业课程。这些课程如果希望每一个都学好的话,就像开题笑话所讲的那样,也不容易。
是不是做计算机行业的都需要把这些内容都学完学好呢?我个人觉得未必要门门都学好学精,因为并非是所有课程都学习好之后才能够工作。在计算机行业中,并不是所有的人都会从事开发工作,即便时都从事开发工作的,由于工作的领域不一样,所涉及的知识层面也存在有巨大的差异,所以对只是点的要求也不尽相同。所以很多同学可能只是希望今后能够从事软件开发工作,但是对具体的方向可能还无法确定,这些也会给他们造成很多迷茫,因为方向不明确,所以学习上也就缺少明确的目标。
我可能很难对计算机领域做出一个比较完整准确的划分,我只是从开发者学习的角度来看,把这个领域做出几种划分,然后对划分出来的结果所从事的工作内容和学习的要点进行说明。在做软件开发的时候,一个比较大区分就是偏软还是偏硬,我只是简单的将这些方面做一个划分:
从事领域 | 工作方向 | 学习课程 |
偏向硬件方面 | 今后希望从事嵌入式开发领域 | 系统组成、接口技术、汇编技术、数字电路和操作系统 |
从事基于数据库的商业软件 | 可以从事商业应用软件的开发 | 其数据库原理和C语言,编译原理 |
从事图形方面 | 图形开发或则游戏开发 | 计算机图形学,数据结构和数值分析等 |
从事工具或则系统底层的开发 | 开发各种应用框架,或则应用软件 | 操作系统,计算机网络,数据结构、C语言 |
从事软件测试方面 | 软件测试人员 | 软件工程,计算机系统组成,和测试技术 |
从事UI设计方面 | 做UI界面的设计人员 | 计算机系统组成,软件工程,各种图形制作工具 |
从事算法研究 | 算法研究 | 离散数学、几何与代数、概率与统计、人工智能导论、离散数学 |
由于做软件开发中具体的开发领域存在有差异性,所以划分的细节也就比较难确定,但是从大体上来看,作为学习阶段,先可以确定自己今后希望从事的工作内容,尽量使自己对的工作的内容保持有热情,这样今后在工作和学习中也能觉得不会枯燥无味。
同样,软件行业所要学习的内容不是上面表中所罗列的那些,只是说针对学校的同学或者学习的新人来说,能够在众多的课程中找出一个学习的侧重点。如果说希望充实相应的开发工作,只要要把关键的课程学习完,学习好。这样在刚刚进入工作阶段也会避免基础的欠缺造成的尴尬。
最后,在所有的专业课程之外,还需要提及的就是英语的学习和基础 C( 也可以是 Pascal 、 Basic 或则是其他的高级语言 ) ,英语的重要性绝非式考过四、六极就算完事,听说读写都要加强锻炼,今后的工作岗位上你会发现英语实际应用的重要性。选择一门高级语言作为计算机软件开发语言的学习重点,侧重点在于培养自己良好的程序逻辑思维能力,没有必要像蜻蜓点水一样,把流行的语言都点了个遍。