程序员的知识结构

    这篇文章旨在提供一个全局的概述。我发现很多书本都没能提供一个总揽,这是个不足。学习者的学习习惯,就是先从外观上去了解要学习的事物,然后才能消除陌生感,进而能够安心按部就班的学习。太早进入细节,只会深陷其中,不识庐山真面目了。

    虽然我不是专业的教育者,但是我认为这一定是教育的技巧之一。因此呢,我就向各位展示程序员的整体构成,各种知识之间的关系。

    程序员有三个知识集合,一个是电脑知识,一个是程序知识,一个是应用知识。为何要电脑知识,因为程序员的工具就是电脑,首先要了解自己面对的对象,才能操纵他。一个电脑盲,他不能写出非常优秀的程序,一个人对工具的熟练程度,对研究对象的深入程度,决定了它的创造意识,比如如果你不知道电脑可以播放声音,你就不能在电脑上谱写美妙的音乐,你以为这是无用功,就不具备创作的动力和意识。如果你不了解电脑的特性,你的视野就太小,工作能力就会受到限制。程序知识,是对程序设计方面的知识,这是程序员不同于其他电脑操作员的地方,别人使用软件,而程序员还会设计软件。下一个是应用知识。程序设计的目的是制作软件,而软件制作的目的是帮助人们加快工作,提高效率。比如制作图片的软件,它能够帮助使用者通过简单的一些操作就作出一幅漂亮的图片。要做到这种效果,首先就要求你开发人员懂得如何制作一幅漂亮的图片,知道这个过程。可以这样理解,如果没有程序,人们只能通过编程的方法达到目的,程序员的责任就是替代人们做了这一步。人们的操作界面是程序,而程序员的操作界面是电脑本身,他既要了解人们要做什么,又要了解如何用电脑来做。

    电脑知识包括非常多方面,比如电脑是什么时候诞生的,它的发展情况,由什么组成,运作的基本原理等等。同时还要了解操作系统,因为我们现在的程序员面对的不是一个没有操作系统的电脑,我们写的程序是在操作系统管理下工作的。

    程序知识包括如何使用开发工具,和其他电脑操作员一样,程序员也是通过程序来辅助工作的,不同的是工作的对象不同,别人是做一幅图片,需要知道怎样才能产生美感,程序员需要如何才能让程序建立起来。做图片靠得是美术知识,做程序也一样,靠的不只是学会使用工具,还需要知道如何才能作出想要的效果,那就是程序设计的知识。

    应用知识是个怎样的概念,前面说过,程序员不只要懂得如何设计程序,还要面向用户,比如用户是用这个程序来画图,你就要了解画图的过程,了解点面线是什么,了解颜色的混合和色相是什么。当然程序有多种多样的,应用也是无穷无尽多的,我们只能通过对许多应用的开发,来积累他们之间的共性过程,然后在具体项目中再进行特定应用的研究,而不可能完全掌握各种应用。因此,程序开发是一个创造的过程,每次面对的应用都是不同的。就类似画家的创作,虽然都是画画,但是不同的画却完全是一个全新创作的过程。

    对于初学者来说,如何一步一步掌握这些知识呢,尤其是程序知识这个核心内容。我还是通过画图来描述吧。

 

    
    许多初学者一开始学习程序开发,就直接进入到语言学习这一环,这是错误的,语言不过是整个知识架构中一个小小的一环,其他知识不重视,只会让学习变得困难重重,事倍功半。而另一种情况,就是学习语言后又匆匆去开发软件,没有掌握知识的开发者,就好像没有穿好盔甲去战斗的士兵,只能败阵下来。当然学习中的实践是必要的,但实践的目的一定要紧记,使为了试验所学到的知识,只有这样才能有的放矢,不陷入具体开发的复杂性中去。

    对于这些图表里面的内容不太了解的话,我将会在说明的时候进行阐述。

你可能感兴趣的:(编程,工作,教育,项目管理,音乐)