呵。
要看你想往哪方面的程序方向发展了。现在程序员也分很多种的啊。
有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) 《程序员修炼之道》。
程序员的考试要求:掌握数制及其转换、数据的机内表示、算术和逻辑运算,以及相关的应用数学基础知识;理解计算机的组成以及各主要部件的性能指标;掌握操作系统、程序设计语言的基础知识;熟练掌握计算机常用办公软件的基本操作方法;熟练掌握基本数据结构和常用算法;熟练掌握C程序设计语言,以及C++、Java、Visual
Basic中一种程序设计语言;熟悉数据库、网络和多媒体的基础知识;掌握软件工程的基础知识,了解软件过程基本知识、软件开发项目管理的常识;了解常用信息技术标准、安全性,以及有关法律、法规的基本知识。
程序员(英文Programmer)是从事程序开发、维护的专业人员。
一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。作一个真正合格的程序员,应该具有的素质。
1:团队精神和协作能力 团队精神和协作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。
独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。
2:文档习惯 文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。
作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。
3:规范化的代码编写习惯 知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。
4:需求理解能力 程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。
5:模块化思维能力 作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。
模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。 6:测试习惯 测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。
程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。 7:学习和总结的能力 程序员是很容易被淘汰的职业,所以要善于学习总结。
许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。
这样才能逐步提高,从程序员升级为软件设计师、系统分析员。 作为高级程序员,除了应该具备上述全部素质之外,还需要具备以下素质: 1、需求分析能力 2、整体框架能力 3、流程处理能力 4、模块分解能力 5、整体项目评估能力 6、团队组织管理能力 1,激情。
我曾经遇到许多“职业程序员”,他们从事IT是因为觉得这是一种职业,他们只在工作时间编程,除非送去培训否则他们不会学习新东西,这不是好的程序员。我认为一个好的程序员总是对编程充满激情,而且好的开发者会做一些编程工作即使这没有报酬。
激情是一个优秀程序员的重要指标。2,自学好学 编程领域始终发展变化着,不出一年有些新技术就变成了老技术,这并不是说好的程序员要对所有新技术跟进,但有些却对学习任何新技术都没有兴趣。
他们通常在学校学习了编程,然后工作后单位安排学什么就学什么。如果在招聘中你听到“让我培训一个星期我就会胜任这个工作”那不要雇佣他。
实际上,真正优秀的程序员始终谈论着你所不知道的新技术,向人们解释为什么你必须用这个技术,哪怕没有听众听得明白,哪怕他自己也不明白。3,聪明 聪明包括很多因素,情绪和社会交际只是其中之一。
好的程序员绝不木讷,他们是最聪明的人,他们中的许多善于交际,健谈、兴趣广泛。4,隐性的经验 —好的程序员通。
常有自己的私人的一些研究、爱好、项目,而这些是他们不写在简历上 (通常觉得不值得写),但表现出来却可能恰恰是他的潜能、深度和后劲所在。5,技术多样性 由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有 “强烈”的个人意见/见解,喜好尝试新鲜技术。
6,资格证书 资格证书并不是识别真正程序员的方法,MCSE、SCJP、说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。原文作者在文末写道:以上所说的标准并不是绝对的,因为有些优秀的程序员确实不符合上述,而有些bad程序员却符合了。
但相信这些对大多数真正的程序员都适用。总结而言,优秀的程序员通常有一下特点:n 对技术充满激情;n 将编程作为一种爱好 n 如果你允许会滔滔不绝地跟你谈论技术 n 有过个人的开发经历(与4意思相同) n 坚持认为某种技术最好 n 如果让他用他认为不好的技术他会非常别扭 n 聪明、健谈、兴趣广泛 n 在大学。
根据软考程序员职称的考试内容,我们可以得出,程序员需要具备以下的知识。
但这些只是基础,还要不断扩展。计算机硬件基础知识。
1. 计算机科学基础。1.1数制及其转换。
二进制、十进制和十六进制等常用数制及其相互转换。1.2数据的表示。
数的表示(原码、反码、补码表示,整数和实数的机内表示方法,精度和溢出)。校验方法和校验码(奇偶校验码、海明校验码)。
1.3算术运算和逻辑运算。计算机中二进制数的运算方法。
逻辑代数的基本运算和逻辑表达式的化简。1.5常用数据结构。
数组(表态数组、动态数组)、线性表、链表(单向链表、双向链表、循环链表)、队列、栈、树(二叉树、查找树)、图的定义、存储和操作1.6 常用算法。算法与数据结构的关系,算法效率,算法设计,算法描述(流程图、伪代码、决策表)2. 计算机系统基础知识。
2.1计算机基础知识。2.1.1计算机系统的组成,硬件系统、软件系统及层次结构。
2.1.3 中央处理器CPU。运算器和控制器的组成,常用的寄存器、指令系统、寻址方式、指令执行控处理机性能。
2.1.4 主存和辅存。存储器系统。
存储介质(半导体、硬盘、光盘、闪存、软盘、磁带等)。主存储器的组成、性能及基本原理。
Cache的概念、虚拟存储的概念。辅存设备的类型、特性、性能和容量计算。
2.1.5 I/O接口、I/O设备和通信设备。I/O接口(总线、DMA、通道、SCSI、并行口、RS232C、USB、IEEE1394)。
I/O设备的类型和特性(键盘、鼠标、显示器、打印机、扫描仪、摄像头,以及各种辅存设备)。I/O设备控制方式(中断控制、DMA)。
通信设备的类型和特性(Modem、集线器、交换机、中继器、路由器、网桥、网关)及其连接方法和连接介质(串行连接、并行连接,传输介质的类型和特性)。2.2 软件基础知识。
2.2.1 操作系统基础知识。操作系统的类型和功能。
操作系统的内核(中断控制)和进程概念。处理机管理、存储管理、设备管理、文件管理、作业管理、汉字处理。
2.2.2 程序设计语言和语言处理程序基础知识。汇编、编译、解释系统的基础知识。
过程(函数)调用。2.3 网络基础知识。
网络的功能、分类、组成和拓扑结构。网络体系结构与协议(OSI/RM,TCP/IP)。
2.4 数据库基础知识。数据模型,ER图。
数据操作(关系运算)。数据库语言(SQL)。
2.5 多媒体基础知识。多媒体基础概念,常用多媒体设备性能特征,常用多媒体文件格式类型。
3.软件开发和运行维护基础知识。3.2 软件需求分析、需求定义及软件基础知识。
结构化分析概念(数据流图(DFD)、实体关系图(ER))。面向对象设计、结构化设计基础知识。
模拟设计、代码设计、人机界面设计要点。3.3 程序设计基础知识。
结构设计程序设计,程序流程图,NS图,PAD图。程序设计风格。
面向对象设计基础知识、可视化程序设计基础知识。3.4 程序测试基础知识。
黑盒测试、白盒测试、灰盒测试基础知识。4. 安全性基础知识。
安全性基本概念。加密与解密基础知识。
5. 标准化基础知识标准化基本概念6. 信息化基本知识。有关的法律、法规要点。
7. 计算机专业英语。考试科目2:程序设计。
1. 内部设计1.1 理解外部设计。1.3 物理数据设计。
确定数据组织方式、存储介质,设计记录格式和处理方式。2. 程序设计。
2.1 模拟划分(原则、方法、标准)。3. 程序实现。
3.1 编程。编程方法和标准。
程序设计语言的使用。4.程序设计语言(C语言为必选,其他语言可以任选一种)。
4.1 C程序设计语言(ANSI C标准)。程序结构,语法,数据类型说明,可执行语句,函数调用,标准库函数,指针。
4.2 C++程序设计语言(ANSI C++标准)。C++和面向对象程序设计,语法和程序结构,类、成员、构造函数、析构函数、模板、继承、多态。
4.3 Java程序设计(Java 2)。语言机制(程序结构和语法,类、成员、构造函数、析构函数、继承、接口)。
4.4 Visual Basic程序设计(Visual Basic 6.0)。用户界面设计。
这个需要蛮多
但是只要你精通一门 其它的 都学得蛮快
没有基础的朋友 可以先学一下C语言
了解一下数据结构 和一些基本语法
然后 选择你感兴趣的语言 努力的学精通
程序没有什么难度 最主要的是 编程思想
要学会别人是怎么样实现一些功能的
然后 就是要多练习 不懂的问题 马上问别人 解决掉
这样 成长 就 比较快
希望对您有帮助 !!
如果有兴趣 可以加入 我们团队
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.782秒