程序员一般的工作是从事程序开发、程序维护。
程序员是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。具体工作职责如下:
1、负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态。
程序员(英文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:程序编制能力
11按照软件设计说明书,能熟练使用下列程序语言编制程序
111C(美国标准)
12理解给定程序的功能,能发现程序中的错误并加以纠正
13具有良好的程序编制风格
14基本算法
141查找、更新、排序、合并及字符处理
142迭代、插值、数值积分、矩阵计算、议程求解和搜索求解
15程序编制方法
151分支、循环、子程序(过程和函数)、递归
152输入输出和文件的处理
模块2:基础知识(程序员级)
21软件基础知识
211数据结构基础
数组、记录、列表(list)、队列、栈(stack)、堆(heap)、树和二叉树的定义、存储和 *** 作
212程序语言基础知识
·汇编、编译、解释系统的基础知识
·程序语言的数据类型
·程序语言的控制结构
213 *** 作系统基础知识
· *** 作系统的类型和功能
· *** 作系统的层次结构和进程概念
·作业、处理机、存储、文件和设备等管理的基础知识
214软件工程基础知识
·软件生命周期各阶段的任务
·结构化分析和设计方法
·面向对象基本概念
·软件开发工具与环境基础知识
215数据库基础知识
·数据库模型
·数据库系统的结构
·SQL的使用初步
·常用数据库管理系统的知识
216多媒体基础知识
·多媒体基本概念
·常用图象文件
·简单图形(线段和圆)的计算机图示
22硬件基础知识
221数制及其转换
·二进制、十进制和十六进制等常用数制及其相互转换
222机内代码
·原码、补码、反码、移码
·定点数与浮点数的机内表示
·ASCII码及汉字编码等常用的编码
·奇偶校验码、海明码、循环冗余码(CRC)等常用校验方法
223算术运算和逻辑运算
·计算机中的二进制数运算方法
·逻辑代数的基本运算和逻辑表达式的化简
224计算机的体系结构和主要部件
·中央处理器CPU、存储器和输入/输出设备
·总线结构、指令流和数据流
225指令系统
·常用的寻址方式
·指令的格式、分类及功能
·指令的执行过程
23网络基础知识
231网络的功能、分类与组成
232网络协议与标准
233网络结构与通信
234网络的安全性
235Client-Server结构
236Internet和Intranet初步
现存的一个事实是程序员之间的差异其实是非常大的,只有很了解程序员的人才能完全了解这一点,虽然有大多数的高层管理者对所有的程序员都一视同仁,还是有企业是把程序员当做工具、资源看待,做个头脑清醒的程序员,你的职业生活会更精彩。
还有另外一种看待程序员的方法,我们经常也会遇到,比如经常看到某些程序员的签名是成为架构师。所以从技术知识、实践经验和程序员的专长去考虑也非常重要,一起来了解一下IT互联网行业程序员岗位类型
1、系统工程师/架构师
系统工程师/架构师往往都是最有技术和经验的。要想理解所有相关的系统组件( *** 作系统、通信系统、数据库、在线/离线访问、安全性、硬件等等)之间复杂的关系,需要对这些技术和系统有丰富的专业知识和经验
2、系统程序员
架构师一般都是从系统程序员做起的,系统程序员负责编写与硬件交互的设备驱动程序,创建能够为设备驱动运行程序和应用程序执行提供运行环境的 *** 作系统,为其他程序员创建编译器和调试工具。有点类似民间宗教中的大祭司,元老级人物。
3、应用程序员
在专业程序员、学生以及自称为程序员的业余爱好者中,绝大部分属于应用程序员。
应用程序员开发的程序包括我们常见的桌面客户端应用和 App Store 中的软件和游戏等。
还有一些应用程序员能够跳出代码本身的束缚,从用户的角度看问题,来把握可视化、交互式的设计之间的细微差别。这种人比较适合从事用户界面(UI)开发。
4、非真正意义上的程序员
开发团队中有一些被称为 “程序员” 的技术人员其实并不是真正意义上的程序员。
这些 “程序员” 与真正的程序员之间的主要差别在于:他们使用现有的工具或应用程序,而不是自己直接写代码。
这类 「程序员」 有其重要性和价值,但他们的技术深度通常不会太高。而且随着程序设计工具的出现和日益强大,这样的程序员会越来越多。现在主要从事测试等。
程序员(英文Programmer)是从事程序开发、程序维护的专业人员。
一般将程序员分为程序设计人员和程序编码人员。
软件从业人员分为初级程序员、中级程序员、高级程序员(现为软件设计师)、系统分析员,系统架构师,测试工程师六大类。
职务:
1、对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
2、协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
3、参与需求调研、项目可行性分析、技术可行性分析和需求分析。
4、熟悉并熟练掌握交付软件部开发的软件项目的相关软件技术。
5、负责向项目经理及时反馈软件开发中的情况,并根据实际情况提出改进建议。
6、参与软件开发和维护过程中重大技术问题的解决,参与软件首次安装调试、数据割接、用户培训和项目推广。
7、负责相关技术文档的拟订。
8、负责对业务领域内的技术发展动态进行分析研究。
扩展资料:
程序员职业要求:
1、熟练开发工具
作为程序员,掌握至少两个或三个开发工具是程序员的基础。其中,C/C++和Java是最推荐的开发工具。C/C++已经成为开发工具高效、灵活的锐利工具。
许多系统级软件都是用C/C++编写的。Java的跨平台与Web的良好结合是Java的优势,Java相关技术JavaOne很可能成为未来主流的开发工具之一。
其次,最好掌握一个简单的可视化开发工具,如vb、powerbuilder、delphi、cbuilder,这样可以降低开发难度,强化程序员对象模型的概念。另外,您需要掌握基本的脚本语言,如shell、perl等,至少能理解脚本代码。
2、熟知数据库
很多应用都是以数据为中心的数据库,有很多数据库产品,其中关系数据库仍然是主流形式,所以程序员至少要精通一两个数据库,非常清楚关系数据库的关键元素,熟练掌握在SQL的基本语法中。
虽然许多数据库产品提供可视化的数据库管理工具,SQL是数据库 *** 作的基础和常用方法。如果您没有访问商业数据库系统的权限,那么最好使用免费的数据库产品,如mysql、postgres等。
3、了解 *** 作系统
目前,主流 *** 作系统是windows、linux/unix,熟练使用这些 *** 作系统是必要的,但只有这些还远远不够。
作为一个真正的编程大师,我们需要对 *** 作系统及其内存管理机制、进程/线程调度、信号、内核对象、系统调用、协议栈实现等有深入的了解。
Linux作为开发源代码的 *** 作系统,是一个很好的学习平台。Linux几乎具有现代 *** 作系统的所有特征。虽然关于Windows系统内核实现机制的信息很少,但是通过Internet仍然可以获得很多信息。了解网络协议TCP/IP。
参考资料来源:百度百科-程序员 (职业)
管理路线是所有工种必须放在第一位的路线,当然,综合自己的实际情况,其实另两条路都不错,唯一注意的是不能停留在原阶段,举步不前。\x0d\1、技术路线,这条路线到达架构设计师的人,并不多,能够到达的都是程序员中业务非常精良且具备大局观的人物。我的理解,架构的职责是产品需求提出后,能够通盘考虑开发的稳定性、扩展性、各项性能指标的良性发展,架构通常要能够预见到产品发展的未来方向,并从产品建立的初期,协助产品解决未来产品中可能存在的隐患问题的角色。\x0d\2、管理路线,这条路线其实是在技术路线基础上的延展,但是更多考虑的不是技术或架构层面的问题,而是如何使用人员解决实际问题了。\x0d\3、产品路线,其实,很多人在技术往管理的路线上无法继续,或者突然发现除了开发,自己也能准确把握用户需求的时候的选择。这种开发人员的特点往往是思路非常清晰,同时敏感、主动,有发现产品设计缺陷和漏洞的能力。
程序员可以做的职业有很多,最多的是到软件公司做程序员,编写程序开发软件,也有做软件测试工作,工作经验丰富的程序员转到后台做项目管理。程序员是比较辛苦的工作,996是常态,经常熬夜,所以做程序员一般是年轻人为主,上了年纪的程序员很多改行或者换岗做管理,年纪大了思维和精力都跟不上,已经很难适应行业节奏,所以程序员做其他方面的工作也是很正常的。
以上就是关于程序员一般的工作都是干什么全部的内容,包括:程序员一般的工作都是干什么、程序员主要的工作、跟程序员相关岗位有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)