操作系统需要掌握的东西只有两个:
1. 五大管理的基本方法,尤其是涉及内存管理的策略
2. 线程或者进程的同步技术
操作系统是复杂的,但是教材中介绍的这些管理方法相对来说是简单易懂很多了。这一难一简之间体现了基本知识的重要性,基本知识在实际开发中的应用的广泛性。好好的体会,就可以明白用简单方法解决复杂问题的技巧。线程进程的同步,这个就不用多说了,大家都知道它的作用,如果实在不想掌握的话那我也非常愿意相信你的理由一定是充分的,否则你绝对不会那么做。
最后我想强调的是,无论你如何看待这些知识:可能觉的没用,可能觉的太难,可能是不感兴趣,但是如果你想做程序员的话,那么请你务必最大可能牢固,最大可能熟练的掌握它。
二.编程语言
对于一个程序员来说,一般需要掌握2,3门语言是基本的,并且学习一门新的编程语言也是基本功级别的能力,所以这部分主要谈谈快速学习一门新的编程语言的方法。我学过的语言有这些(这里编译器和语言的概念等同了并且不按先后次序):Foxbase,C,C++,汇编,Visual C++,Delphi,FoxPro,VB,C#。就我个人的体会来说,这些语言可以分为三种类别:非面向对象的,面向对象以及支持可视化设计的。
这三种类别的语言有一些共同的内容,而这些内容也是我们在学习一门新的编程语言时首先需要知道的,可以说是关键的知识点。这些内容大致如下:
1.常量,变量,数组,不同的数据类型
这部分需要掌握常量,变量,数组的定义,初始化,不同数据类型的使用。数组中元素的读写,作为参数如何定义,作为返回值如何定义。有些语言还支持数组大小的重新定义。
2.函数(或者叫子程序)
函数如何定义(比如参数和返回值),如何调用(这里存在异步调用和同步调用的问题),全局的还是非全局的。
3.流程控制
分支结构:if语句,if else语句,switch语句;循环结构:for语句,while语句,do…while语句,有些语言可能是Loop。
4.最基本的输入输出和文件操作
最基本的输入输出语句可以帮助你在学习语言的过程中完成简单程序的练习任务,比如:输出到控制台,dos操作系统中输出到屏幕等等。文件操作也要知道,至少以后写个程序生成日志文件就会了。
以上内容在学习一门新的编程语言时,希望能首先掌握,这能让你很快的入门,并尽快使用新语言写出代码。另外还可以关注一下其他方面的内容,比如:
1.了解语言的新特性
这个阶段只需要了解,不需要掌握,记住有这些新特性,在需要用的时候想起它们就可以了。
2.了解一下帮助文档中,该语言的所有关键字
这部分内容有可能让你发现一些很有用的东西。
好了,知道这些内容差不多一门新的语言就算入门了。当然还有其他很多东西,但是这些内容可以在具体开发中遇到时再去找例子就可以了。下面谈谈这些语言的差异。对于面向对象的语言来说,需要知道面向对象三大特征:封装,继承,多态在具体的一门编程语言中是如何表达的或者等价表达的。对于支持可视化设计的语言来说,还需要知道如何设计窗体,以及常用控件的使用。按照这个方法,从一门已经会的编程语言到学习另一门新的编程语言应该是比较快的。对于还在大学中学习的人来说,我的建议是C++或者Pascal中的一个,VB或者C#中的一个或者其它可视化开发语言中的一个学习一下。如果可能学习一下汇编是最好的。
三.SDK
掌握一个SDK才能使程序员在掌握一门语言的基础上进行实际的开发,如果仅仅是一门语言那是不够的。所谓SDK举例子来说就是Foxbase的命令和函数,C的库函数,C++的类库(比如微软的MFC),Windows的API, Framework,这些都是我所说的SDK。程序员可以根据自己的实际开发需要,有选择的学习相关的内容。我的建议是,可以先google,然后查文档,一般的问题都可以很快解决的,慢慢的也就逐步掌握了。比如说我不知道C#如何使用线程,那么我就用google查找,关键词是“C# 线程”,然后从结果中找到需要的内容。很多时候结果中的代码是可以直接使用的。然后再去看一下MSDN的帮助文档,了解一下相关的类和方法的说明,这样这部分的知识就可以认为是掌握了。下次使用时就知道怎么用了。我的C#就是这么入门的,大概google问了二三十个问题左右。