一个优秀的程序员应该有什么样的知识结构
各位好,我想请大家讨论一个问题:一个优秀的程序员应该有什么样的知识结构及应该如何去构造自己的知识结构?当然这得先大概说一下什么是优秀的程序员(也许这很难下一个精确的定义),我想从成果来评价最合适吧!以下是我的个人观点:我认为要想编出优秀的程序,首先,广博坚实的基础知识必不可少,这包括对操作系统,网络的理解,对数据库,软件工程的掌握等。当然还有最重要的数据结构。这些在大学的课程里有所接触,在一些考试(如高程)中也会考到。这些东西也许在学的时候感觉不到它们的作用(只为考试应付永远也学不到 真东西),但在进一步深入的学习和解决实际问题的时候会发现这些基础知识的作用,也往往会因为对这些东西掌握的不够扎实而不得不去再次认真学习。当然光有基础知识是不够的。毕竟我们是要去解决实际问的。作为一名程序员,自己的主要工作是编程,那自己解决实际问题的能力于自己就是最重要的了。如果你是一个Windows程序员,那你对Windows工作原理的掌握,对API或MFC的熟练应用.对COM的理解程度是至关重要的.当然一个人的工作经验也非常重要(不过我们这里主要讨论知识结构的问题)。总而言之,我觉的一个人的知识结构对于他能否成为一个优秀的程序员是非常重要的。所以我想请大家畅所欲言,谈谈各自对这个问题的看法和观点。也请各位高手赐教对于一个想成为优秀程序员的人,他应该怎样去构造自己的知识结构。经常在csdn上看到“考高程有没用”之类的话题,其实我觉的这最终是一个知识结构的问题,高程考的东西是基础知识,数据结构在编程时不可能不遇到,编译原理,数据库的知识也必不可少。只是光有这些你不还不能解决实际问题,你还得去学实际的东西,比如你想做一名Windows程序员,那你就去学SDK或MFC编程,去好好学Windows的工作原理(这时你考高程时学的那点东西就会用上了,虽然不多,但那是些基本的东西)。其实还有很多问题也可以归结为知识结构这个问题。就请大家各抒己见吧!