计算机程序员应具备的能力及考试要求.doc_第1页
计算机程序员应具备的能力及考试要求.doc_第2页
计算机程序员应具备的能力及考试要求.doc_第3页
计算机程序员应具备的能力及考试要求.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序员程序员(英文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程序员却符合了。但相信这些对大多数真正的程序员都适用。总结而言,优秀的程序员通常有一下特点:对技术充满激情将编程作为一种爱好如果你允许会滔滔不绝地跟你谈论技术有过个人的开发经历(与4意思相同)坚持认为某种技术最好如果让他用他认为不好的技术他会非常别扭聪明、健谈、兴趣广泛在大学和工作前就开始接触程序 编辑本段考试说明1、 考试要求: (1) 熟练掌握基本算法和数据结构,用C语言编制程序; (2) 掌握数据结构、程序变速器和操作系统的基础知识; (3) 了解软件工程、数据库、多媒体和网络的基础知识; (4) 掌握数制、机内代码及其算术运算和逻辑运算的基础知识; (5) 了解计算机的体系结构和主要部件的基础知识。 2、 通过本级水平考试的合格人员能按照软件设计说明书编制程序,具有相当于助理工程师 的实际工作能力和业务水平。 3、 本级水平考试范围包括两个模块:模块1程序编制能力(考试时间为150分钟);模 块2基础知识(程序员级)考试时间为120分钟)。题型为:单项选择题十多项选择题。 编辑本段考试范围模块1:程序编制能力 1.1按照软件设计说明书,能熟练使用下列程序语言编制程序 1.1.1C(美国标准) 1.2理解给定程序的功能,能发现程序中的错误并加以纠正 1.3具有良好的程序编制风格 1.4基本算法 1.4.1查找、更新、排序、合并及字符处理 1.4.2迭代、插值、数值积分、矩阵计算、议程求解和搜索求解 1.5程序编制方法 1.5.1分支、循环、子程序(过程和函数)、递归 1.5.2输入输出和文件的处理 模块2:基础知识(程序员级) 2.1软件基础知识 2.1.1数据结构基础 数组、记录、列表(list)、队列、栈(stack)、堆(heap)、树和二叉树的定义、存储和操作 2.1.2程序语言基础知识 汇编、编译、解释系统的基础知识 程序语言的数据类型 程序语言的控制结构 2.1.3操作系统基础知识 操作系统的类型和功能 操作系统的层次结构和进程概念 作业、处理机、存储、文件和设备等管理的基础知识 2.1.4软件工程基础知识 软件生命周期各阶段的任务 结构化分析和设计方法 面向对象基本概念 软件开发工具与环境基础知识 2.1.5数据库基础知识 数据库模型 数据库系统的结构 SQL的使用初步 常用数据库管理系统的知识 2.1.6多媒体基础知识 多媒体基本概念 常用图象文件 简单图形(线段和圆)的计算机图示 2.2硬件基础知识 2.2.1数制及其转换 二进制、十进制和十六进制等常用数制及其相互转换 2.2.2机内代码 原码、补码、反码、移码 定点数与浮点数的机内表示 ASCII码及汉字编码等常用的编码 奇偶校验码、海明码、循环冗余码(CRC)等常用校验方法 2.2.3算术运算和逻辑运算 计算机中的二进制数运算方法 逻辑代数的基本运算和逻辑表达式的化简 2.2.4计算机的体系结构和主要部件 中央处理器CPU、存储器和输入/输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论