1.作为一个程序员最基本的要掌握哪些知识

如果你是学生,或者如果你有充足的时间。我建议你仔细的掌握下面的知识。我的建议是针对那些希望在IT技术上有所成就的初学者。同时我还列出了一些书目,这些书应该都还可以在书店买到。说实在的,我在读其他人的文章时最大的心愿就是希望作者列出一个书单。

大学英语——不要觉得好笑。我极力推荐这门课程是因为没有专业文档的阅读能力是不可想象的。中文的翻译往往在猴年马月才会出来,而现在的许多出版社干脆就直接把E文印刷上去。学习的方法是强迫自己看原版的教材,开始会看不懂,用多了自然熟练。吃得苦下得狠心绝对是任何行业都需要的品质。

计算机体系结构和汇编语言——关于体系结构的书遍地都是,而且也大同小异,倒是汇编有一本非常好的书。《80×86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)。你需要着重学习386后保护模式的程序设计。否则你在学习现代操作系统底层的一些东西的时候会觉得是在看天书。

计算机操作系统原理——我们的开发总是在特定的操作系统上进行,如果不是,只有一种可能:你在自己实现一个操作系统。无论如何,操作系统原理是必读的。这就象我们为一个芯片制作外围设备时,芯片基本的工作时序是必需了解的。这一类书也很多,我没有发现哪一本书非常出众。只是觉得在看完了这些书后如果有空就应该看看《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。

数据结构和算法——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时)。很多人喜欢买C#版的,但我觉得没有必要。C#的语法让算法实现过程变得复杂多了,而且许多老师喜欢用模块这一东西让算法变得更复杂。倒是在学完了C版的书以后再来浏览一下C#的版的书是最好的。

软件工程——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华)。不要花太多的时间去记条条框框,看不懂就跳过去。在每次自己完成了一个软件设计任务(不管是练习还是工作)以后再来回顾回顾,每次都会有收获。

Windows 程序设计——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本《Inside Windows 2000》也最好放到这本书的后面读。

在这本书中,没有C++,没有GUI,没有控件。有的就是如何用原始的C语言来完成Windows 程序设计。在学完了它以后,你才会发现VC其实是很容易学的。千万不要在没有看完这本书以前提前学习VC,你最好碰都不要碰。我知道的许多名校甚至都已经用它作为教材进行授课。可见其重要。

上面的几门课程我认为是必学的重要课程(如果你想做Windows 程序员)。

对于其它的课程有这样简单的选择方法:如果你是计算机系的,请学好你所有的专业基础课。如果不是,请参照计算机系的课程表。如果你发现自己看一本书时无法看下去了,请翻到书的最后,看看它的参考文献,找到它们并学习它们,再回头看这本书。如果一本书的书名中带有“原理”两个字,你一定不要去记忆它其中的细节,你应该以一天至少50页的速度掌握其要领。尽可能多的在计算机上实践一种理论或者算法。

你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书。

2.做一个好的程序员,哪些专业知识需要学好

当然是真的!

我今年大三了,你说的课程我都学过。这些知识学的时候你可能觉得没有用,但这种思想是绝对的错误的!在学习每门课程之前你可以搜一下他的用处,或者问老师这门课程的必要性。这些理论知识是你以后编程的法宝。对你编程思想的培养功不可没!尤其是算法和数据结构!

而数电,模电是你以后理论课的基础,例如:微机原理,接口,系统结构。每门课都有其发展方向。我们用的键盘、鼠标、显示器、U盘等都是基于接口的;而系统结构是讲整个计算机设计的,也就是说教你怎设计计算机。

另外还有一个是单片机,你应该还没有学。现在的电器都用的是单片机技术。

明白了这些,你应该知道他们的重要性了吧!不过单纯的编程,不往深的方向发展,不要求你什么都学得好,适自己情况定。如果你学会并精通其中任何一门,都会让你成为强者。还有,动手能力很快就能锻炼出来,这些理论是你一生的财富。

希望我的答案能给你帮助。

3.程序员所要具备的基础知识是什么

呵。

要看你想往哪方面的程序方向发展了。现在程序员也分很多种的啊。

有WEB程序员,嵌入式程序员,有C/S程序员。我就给你一份.net程序员的规划吧!呵。

希望对你有帮助!一份.Net的学习规划 一、研究方向 智能信息处理实验室.Net小组的主要研究方向是“.Net平台下软件开发技术及相关应用”,其研究内容包括.Net框架、.Net语言、面向对象的设计、软件工程学方法以及以上理论在实际中的应用。小组将以.Net为开发平台,着眼于软件体系结构,特别是面向对象的软件设计方法,学习软件模块化、系统解耦合和设计模式等相关的理论知识,并结合实验室“Web语义”、“工作流”等已有的课题点,讨论以上技术在实际生产中的应用。

在更高层次上,小组将系统的学习目前较为常见的软件工程学方法,包括瀑布模式、螺旋模式和敏捷模式等。并在项目中尝试采用这些方法,分析这些模式的特点和适用范围,使小组成员掌握基本的软件项目管理能力。

二、研究阶段 对于.Net下软件的开发的研究分为以下四个阶段:第一阶段:.Net开发环境的掌握和相关开发技术的学习。这一阶段主要是掌握一门.Net语言(推荐C#);掌握.Net开发的基本技能,包括熟悉.Net框架中的核心类、用于数据访问的ADO.Net和用于Web应用的Asp.Net等;掌握Web开发的相关技术,包括数据库、HTML、JavaScript、CSS和服务器的配置等;熟悉Visual Studio .Net、Visual Source Safe等开发工具。

该阶段完成后小组成员将有能力阅读.Net系统的代码,并在已有的基础上进行改善的能力。第二阶段:掌握基本的面向对象设计。

在这一阶段,小组成将继续学习.Net框架的相关知识,了解包括反射、XML、ORM和Ajax等较为深入的内容。同时,应该注重对相关原理的理解,包括IL语言、Asp.Net运行时和Http协议等。

在软件结构体系方面,小组成员开始学习使用面向对象的方法进行思考,使用继承、引用和多态等面向对象的思路来描述系统的设计,掌握UML等系统设计工具。这一阶段将加大实践的比例,使小组通过开发实际项目,掌握相关的技术和面向对象设计能力。

在这一阶段,随着项目实践的展开,小组成员开始接触软件工程学方法,了解不同的开发模式,掌握团队协作能力和相关协作工具的使用。第三个阶段:掌握初步系统架构设计。

在这一阶段,系统地实现已经不是重点,而该是如何设计出一个良好的系统结构。这要求深入的理解面向对象的思想,并且具有一定的开发经验。

在这一阶段,小组将学习软件构架的相关知识,包括系统的模块化、模块间解耦合、面向对象的设计原则、设计模式、测试和重构等,并且学习使用这些知识对不同的系统进行设计,掌握各种模式的特点和使用范围,从而对于给定的系统要求能够设计出较为完善的架构。第四阶段:掌握完善系统架构设计。

这一阶段着眼于如何对系统的需求进行深入的理解,以及此基础上,设计出完善的系统架构。完善的系统架构应该重视并准确的反映系统的业务逻辑,并考虑需求变化的应对,兼顾系统的灵活性、健壮性、复杂度、开发效率和运行效率等诸多方面。

小组成员在这一阶段将学习大量现有的优秀系统设计,并结合实验室相关项目,充分理解不同系统所应该采用的构架模式,并尽量能够拥有自己独到的设计见解和设计风格。附:参考书目1,第一阶段:a) 《C#高级编程》b) 《Asp.Net高级编程》c) 《HTML&XHTML权威指南》d) 《JavaScript权威指南》e) 《数据系统概论》2,第二阶段:a) 《.Net Framework高级编程》b) 《Asp.Net 技术内幕》c) 《C# XML高级编程》d) 《JavaScript高级编程》e) 《Ajax基础教程》f) 《代码大全2》g) 《面向对象开发实践之路——C#版》h) UML书籍一本3,第三阶段:a) 《重构——改善既有代码的设计》b) 《敏捷软件开发——原则、模式及实践》c) 《Head First Design Patterns》d) 《设计模式——可复用的面向对象设计》4,第四阶段:a) 《企业应用构架模式》b) 《测试驱动开发》c) 《程序员修炼之道》。

基本的程序员要会哪些专业知识-编程日记