1、技术标志 如果程序员不会编程序那决不是程序员, 程序员至少要掌握一门程序设计语言, 要 能够用这种语言去编写程序去解决他想解决的问题。 但是, 成熟的程序员往往掌握不止一种程序语言, 三到四种语言的掌握是必须的, 一种二种语言的精通也是必须的。 除了从掌握程序设计语言个数之外, 我们还可以从其他几个方面去看看程序员在技术上水平。 例如: · 函数编写能力(命名、格式、大小、分类、参数、复用等) · 面向过程的能力 · 面向对象的能力 · 数据库技术能力 · 效率处理能力 · 安全处理能力 · 网络处理能力 · 软件构架能力 · 人机交互能力 · 通用软件能力 · 软件文档能力 · 等等… 尤其是面向对象技术的掌握和运用, 以及面向服务的技术都是成熟程序员所必需掌握的。 2、时间标志 虽然程序员的天资、素质、基础知识各不相同, 所经历的工作内容以及环境也不相同, 但是, 时间是程序员成熟程度的标志之一。 一般程序员需要经过三到五年的时间才能日趋成熟。 其中入门需要一年, 成长需要两年。俗话说:你的时间在哪里,你的成就就在哪里。 这是我经过长期观察得到平均数据。 我并不认为成熟时间越短程序员就越聪明, 就越了不起。 享受每个阶段充分的时间, 会让自己成长更加充实、更加成熟。 当然, 也有超期而不成熟的情况, 这也是很正常的。 3、项目标志 程序员的社会性是程序员成熟的标志之一。 没 有参加过项目的程序员, 程序编得再好, 只能是纯程序类的程序员, 是一个孤独的高手, 是一种个人型的程序员, 远没有成熟。 项目作为社会性活动, 体现了项目的社会价值。 所以项目能力也是程序员成熟的重要标志之一:项目能力包括参加项目的个数、项目的大小、在项目中承担的角色等等。 就项目承担的角色而言, 主持开发(项目经理)3个以上项目是必须的, 这是一个必要条件。 一个程序员如果没有主持过开发, 无论参加过多少项目的开发, 无论是在程序编写或项目设计上发挥了多大的作用, 是很难被称之为成熟的, 因为 项目的组织、协调和管理是反映一个程序员成熟程度的又一个标志。 就如同一个程序员能参与过10个以上大大小小的项目或能参加或能主持两个以上大型项目的开发, 其成熟程度是可以信赖的。 若低于此数, 则说明程序员离成熟还有相当的空间。 我们在项目中成长 可见项目对于程序员的意义是多么的巨大。 另外, 一般程序员只是为一个企业客户进行开发一个或多个项目, 或同行业的企开发项目, 如果程序员能够如果程序员能够开发过多个行业的项目, 其成熟度要比一般人要高一些。 4、思维标志 幼稚和成熟在思维方式上还是有很明显的区别的。 就程序员而言, 不成熟的程序员逻辑性不强, 程序编得没有条理, 即使程序员自己进行了解释也没人能看懂。 而成熟的程序员应该具有很强的逻辑性, 程序编得井井有条, 不用解释别人也能看得懂。 这种逻辑性还体现在软件的构架设计、数据库设计、算法设计等多个方面。 程序员通过全集子集概念、时间概念、顺序概念、重点非重点概念等对各种事物进行逻辑分析。 例如, 以顺序概念为例, 不成熟的程序员往往会采用自底向上的思维方式来开发程序。 他们先考虑程序的具体实现, 然后再考虑功能设计、最后考虑构架设计。 而 成熟的程序员则采用自顶向下思维方式, 先考虑构架设计、再考虑功能设计、最后才考虑编程的具体实现。 除了在思维内容上的逻辑性之外, 程序员还应该处理好动脑和动手的关系。 重视思维本身就是一种成熟的标志。 成熟的程序员的思考时间要大于动手编程时间, 想好之后只要一次就编程成功, 而不成熟的程序员往往动手编程时间要远大于思考时间, 而且是边做边想, 通过反复来逼近最终目标。 另外, 在思维范围上, 成熟的程序员要比普通的程序员有更开放视野。 他们 更容易去接受新的东西, 更容易不受各种约束去考虑问题, 更勇于去挑战自己和高手。 5、与人交往 很多人认为程序员是和计算机打交道的行业。 这只是这个职业的特点。 但是, 只要是工作必然就是一种社会劳动。 而社会劳动则必须和人进行交流和沟通。 尽管程序员的劳动工具是计算机, 但并不意味着程序员只想着这个工具。 从这个工具的下游来看, 程序员还是要考虑用这个劳动工具生产出来的软件产品是否有人购买, 是否有人使用, 是否运行正常, 从这个工具的上游来看, 是谁让程序员了解设计方案的, 是谁让程序员编程序的, 是谁让程序员程序通过验收的等等。 因此程序员在软件制作各个环节都会与其他人打交道。 只有和人进行有效的交流和沟通我们的工作才能进行下去才能做的更好。 如果一个程序员还沉浸在个人劳动的意境之中, 对外界持有冷漠、无奈、恐惧的心理, 内心里不愿意和外界打交道, 无论自己感觉自己的技术水平有多高, 还是一个不成熟的程序员。 而 成熟的程序员一定是特别重视与人的交往, 无论是上级领导、外部客户、项目经理、团队同伴这些与自身工作密切相关的人还是那些非同单位同行朋友、 网友等他们都会认真去听取别人的阐述、要求、意见、建议、反馈等。 与人交流的有两个基本能力, 一个是理解能力, 一个是表达能力。 两者缺一不可。 例如, 有的程序员理解能力差, 不能理解项目经理提出的要求, 有的程序员表达能力差, 无逻辑, 无重点, 啰里啰唆, 让别人不知所云。 这都是不成熟的表现。 6、心理素质 程序员常常面对各种各样的成功和失败, 尤其是失败更是多于成功, 这也是程序员这个职业特点之一。 以编程为例, 几乎没有一个人一次就能把程序给编好的, 它总是要遇到各种语法错误, 总要遇到各种遗漏, 一个程序要反复多次修改调试才能完好。 有的程序员因找不出来程序的bug, 束手无措, 哀声叹气, 心里极其不爽。 以工作为例, 有的程序员因工作进度和程序出错常常受到别人的批评和指责, 心里极其不满, 认为批评人不了解造成这个结果的客观原因, 批评错了人。 从而对人产生意见, 甚至对工作造成了影响。 面 对失败和挫折, 成熟的程序员会坦然面对:编程时出现问题不可怕, 有什么问题就解决问题, 解决不了的问题可以想其他方法进行解决, 不在一棵树上吊死。 面对别人的批评和指责, 首先从自身查问题, 是自己的问题, 那就要主动承担责任, 并尽快改正。 不是自己的问题, 应该换位思考, 理解批评人的焦急心态, 并找机会给予说明。 良好的心理素质在面对困难和挫折的时候, 就会很坦然, 很坚强, 很自信。 程序员也会面对成功的。 有些程序员因开发了某个项目, 因编写了某个程序而感觉良好, 在不自觉中表现出我最牛, 我最好的样子, 面对他人夸夸其谈, 而对其他人不屑一顾。 而更有甚者并其无成果, 表现平平, 却依然会摆出一个高手的样子, 有的仅仅参与了某个项目, 而且不是项目主要开发者, 却会贪天之功, 归其所有, 好像这个项目是他主持开发的。 这些其实也是心理素质不成熟的另一种表现。 成熟的程序员面对成功并不会感觉到高人一等, 该是自己的功劳就是自己的功劳, 该是别人的功劳就是别人的功劳, 即使自己比别人水平高出许多, 他还是在想还有更高的技术顶峰等待攀登, 不可自傲, 看到别人取得的成绩首先感到去祝贺, 然后去学习, 而不是心怀嫉妒, 从中挑刺, 尽量贬低。 良好的心理素质使得程序员更加理性地处理好各种成功和失败带来的各种问题, 更有利于程序员超越自我, 以平常之心去迎接更大的挑战。 当然一个程序员是否成熟是一个仁者见仁, 智者见智的话题。 有的人强调程序员的个人能力方面, 有的人强调是程序员的社会能力方面。 我认为从以上8个方面综合地去评判一个程序员是否成熟应该能说明些问题了。 我们标志成熟, 一个目的是 对程序员前面成长过程给与一个肯定和鼓励, 让程序员认清自己的所处的阶段, 让自信找出依据。 另外一个目的是 对程序员未来成长提出更高的要求,走向优秀是程序员面临的更大的挑战。 字数限制,且摘这么多。
|