作为一个好的程序员 都需要具备哪些基本的素质和能力

上传人:工**** 文档编号:561707692 上传时间:2022-08-08 格式:DOCX 页数:15 大小:22.29KB
返回 下载 相关 举报
作为一个好的程序员 都需要具备哪些基本的素质和能力_第1页
第1页 / 共15页
作为一个好的程序员 都需要具备哪些基本的素质和能力_第2页
第2页 / 共15页
作为一个好的程序员 都需要具备哪些基本的素质和能力_第3页
第3页 / 共15页
作为一个好的程序员 都需要具备哪些基本的素质和能力_第4页
第4页 / 共15页
作为一个好的程序员 都需要具备哪些基本的素质和能力_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《作为一个好的程序员 都需要具备哪些基本的素质和能力》由会员分享,可在线阅读,更多相关《作为一个好的程序员 都需要具备哪些基本的素质和能力(15页珍藏版)》请在金锄头文库上搜索。

1、作为一个好的程序员,都需要具备哪些基本的素质和能力2007-11-06 06:41 248人阅读 评论(0)收藏 举报我不是天生的程序员,也并非天生就喜欢电脑,上高中时也没有想过将来会当程 序员,接触电脑纯属偶然一一小时候的一个好朋友上大学时选择了电脑专业,为 了和这个朋友有更多的“共同语言”我便选择了计算机系。在大学,我略窥电脑世界, 开始为之“发烧”;毕业后,开始了一个程序员的职业生涯。从开始写程序到现在快十年了,写过的程序不少。从这些年的风风雨雨中走过来, 不能不有些体会。说到体会,最大的体会就是这条路太漫长。一、一辈子有你苦一点也愿意我没有奢望大家把写程序和文学创作相提并论,但其中的苦

2、楚却不是一个普通用 户能够体味的。为了写好一个程序,我们度过太多不眠之夜。有个朋友如此评价 道,“写程序简直是在自杀,巨费精力巨费脑子巨累”。但还是有许多人不畏其苦, 前仆后继。我刚接触到电脑就发现电脑的妙处:电脑远没有人那么复杂,如果你的程序写得 好,你就可以和电脑有着非常融洽的关系,就可以指挥电脑干你想干的事,这个 时候,你是十足的主宰。每每坐在电脑面前,你就如同在一个王国里巡行。电脑里的世界很大,程序员是活在自己想象的王国里。你可以细微到电脑里的每 一个字节、每一个比特的东西。这样的日子简直就是天堂般的日子,很多人都爱上了这样的日子。不少人认为程序员最多干到三十五岁就可以收山,脑子也差不

3、多该歇歇了,并认 为写程序是年轻人的事情,到了一定年龄,估计没什么人再当程序员。我刚毕业时,意气风发,也想先吃点苦,到了三十岁就不干了。年长一点后就发 现了自己的无知。一个人大学毕业就二十一二岁,技术成熟一点后可能二十五, 接着就是票子、妻子和房子等等诸多忙不完的事情。一切搞掂的时候,也许就是 三十五岁。如果三十五岁就放弃的话,我们就不用选择程序员的道路。电脑进入我国时间不短,但真正大规模开始用,还是八五年PC登陆我国时候的 事。因此国内真正写电脑程序的人最长也就写了十几年(不知道是否还有这样的 人)。由于电脑应用在国内时间比较短,国内程序开发的主力以三十五岁以下的 年轻人为主,但这并不表示程

4、序员如同红粉佳人般的容易衰老。美国和台湾地区 的开发者以三四十岁的人为主。开始写程序的时候,我们觉得没有什么不能做的 (现在还能听到这样的豪言壮语),而且更要命的是,好象我们特别聪明,特别 适合开发软件,比老外强得多。当我们真正接触那些杰出的国外开发人员的时候, 发现他们太厉害了,都有十多年的开发经验,绝对多数的产品出自这些有丰富开 发经验的程序员之手。毕业后,编程不仅仅是爱好,而且成了一辈子的工作,可以肯定会干一辈子,虽 然我没有打算一生只干这一件事。用一生来编程是一件既容易又困难的事。如果 碌碌无为,为交差写点程序,这样写两辈子的人都有。但如果想全身心地写程序, 写十年都不是一件容易的事。

5、现在我的不少朋友都洗手了,有时我也有这种想法, 但一旦面对电脑,立刻顿悟:电脑还是自己最擅长干的事,也是最顺手的事。二、我的未来不是梦有的人刻苦学习编程技术,努力提高编程水平,并把高级程序员作为追求的目标, 甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,感到非常困惑和 茫然。当我上大学的时候,高级程序员也曾是我的目标。当时,我通过等级考试获得了 高级程序员证书,并在自己的名片上印上“高级程序员”的字样。后来,我的水平提 高了,似乎也成了大家认可的好程序员了。这个时候我却开始茫然。我希望我的 技术能得到别人的承认,当得到别人的承认后,我又能如何呢?后来我发现,无 论成为多么高级的程序员

6、都没用,关键是是否能够出想法、出产品,你的劳动是 否能被社会承认,是否能为社会创造财富。我的未来是明确的,开发出高质量的适用社会的产品,为社会创造财富。三、每一个程序都是艺术品有人认为程序员没有什么了不起,不过是一种熟练工种而已;也有人把编程说成 是艺术创作,捧上天。这两种意见争论比较激烈,甚至可以说针锋相对。我们换个工种来看,石匠应该是熟练工种,跟艺术似乎沾不上边。;但正是这些 石匠,给我们留下了数不胜数的文物古迹,如乐山大佛、莫高窟等等。应该说这 此石匠给我们留下了无穷的文化财富。我认为编程的工作和石匠比较相似,是技 术,也是艺术。现代软件工业已具相当规模,很多软件的完成需要的是大兵团作战

7、。一名精通程 序员接受编写某一块的任务后,往往只是写代码,发挥的余地很小。在大项目中, 很多程序员只能了解到和自己所编模块相关的很局部的细节,另外还受到开发环 境的限制,真的很难体会到自己在从事“艺术”创造,更多的时候是感到自己在从事 重体力劳动。有的时候还担心自己苦苦参与的这个项目究竟有没有意义,是不是 在同类产品中有竞争力,会不会开发出来以后就因为硬件的发展、操作系统的换代而过时编程是技术活,才有可能大规模进行,才会有软件工程的理论。也正是编程具备 艺术创作的特点,我们的生活才会有如此多的好软件产品。写一个程序需要付出 脑力和体力,当我一我们一某个群体完成一个程序之后,在我们的眼里,每一个

8、 程序就都是艺术品。程序员应具备的素质刖言程序员是一种技术工作,在IT的发展中有相当重要的地位,从底层硬件通讯协议 的建立,到数据传输层的处理,到操作系统的建设,到数据库平台的建设,一直 到应用层上各种数据营销平台的搭建,程序员在里面都扮演着举足轻重的角色并 为IT事业的发展做出了巨大 的贡献。中国有很多精于编码的人,但是中国软件行业,尤其是网络应用开发方面误区很 大,很难形成有规模的软件开发力量和产品能力,不但比美国差距甚远,和印度 相比也是颇有不女口。这些问题不是在于中国程序员的智商和工作努力状况,也不 是在于国家和民间对开发的投入程度,而是很大程度上,有一些对技术,对程序 开发,对项目设

9、计方面的思想误区,这些误区,导致了软件行业的产品化能力不 足,缺乏规模化和大型复用系统研发能力,可以说,改变认识误区,是解决软件 行业小作坊模式和个体英雄模式所带来的局限性 的重要工作。中国有很多小朋友,他们18,9岁或21,2岁,通过自学也写了不少代码,他们有 的代码写的很漂亮,一些技术细节相当出众,也很有钻研精神,但是他们被一些 错误的认识和观点左右,缺乏对系统,对程序的整体理解能力,这些人,一个网 上的朋友说得很好,他们实际 上只是一些Coding fans,压根没有资格称为程序 员,但是据我所知,不少小网络公司的CTO就是这样的coding fans,拿着吓人的 工资,做着吓人的项目,

10、项目的结局通常也很吓人。一、程序员基本素质作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员, 应该具有的素质。1:团队精神和协作能力把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的, 也是最 重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任何个 人的力量都是有 限的,即便如linus这样的天才,也需要通过组成强大的团队来 创造奇迹,那些遍布全球 的为linux写核心的高手们,没有协作精神是不可想象 的。独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发 团队,进入商业化和产品化的开发任务,缺 乏这种素质的人就完全不合格了。

11、2:文档习惯说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子,良好的文档是正规研 发流程中非常重要的环节,作为代码程序员,30%的工作时间写技术文档是很正 常的,而作为高级 程序员和系统分析员,这个比例还要高很多。缺乏文档,一个软件系统就缺乏生命力,在未来的查错,升级以及模块的复用时 就都会遇到极大的麻烦。3:规范化,标准化的代码编写习惯 作为一些外国知名软件公司的规矩,代码的变量命名,代码内注释格式,甚至嵌 套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有 助于代码的移植和纠错,也有助于不同技术人员之间的协作。有些coding fans叫嚣高水平程序员写的代码旁人从来

12、看不懂,这种叫嚣只能证明 他们自己压根不配自称程序员。代码具有良好的可读性,是程序员基本的素质需 求。再看看整个linux的搭建,没有规范化和标准化的代码习惯,全球的研发协作是绝 对不可想象的。4需求理解能力程序员需要理解一个模块的需求,很多小朋友写程序往往只关注一个功能需求, 他们把性 能指标全部归结到硬件,操作系统和开发环境上,而忽视了本身代码的 性能考虑,有人曾经放言说写一个广告交换程序很简单,这种人从来不知道在百 万甚至千万数量级的访问情 况下的性能指标是如何实现的,对于这样的程序员, 你给他深蓝那套系统,他也做不出太 极链的并访能力。性能需求指标中,稳定性, 并访支撑能力以及安全性都

13、很重要,作为程 序员需要评估该模块在系统运营中所 处的环境,将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能性。就这 一点,一个成熟的程序员至少需要2到3年的项目研发和跟踪经 验才有可能有心 得。5:复用性,模块化思维能力经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练工,每天都 是重复写一些没有任何新意的代码,这其实是中国软件人才最大浪费的地方,一 些重复性工作变成了熟练程序员的主要工作,而这些,其实是完全可以避免的。复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候, 要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱 离这个系统存在,

14、是否可以通过简单的修改参数的方式在其他系统和应用环境下 直接引用,这样就能极大避免重复性的开发工作,如果一个软件研发单位和工作 组能够在每一次研发过程中都考虑到 这些问题,那么程序员就不会在重复性的工 作中耽误太多时间,就会有更多时间和精力投 入到创新的代码工作中去。一些好的程序模块代码,即便是70年代写成的,拿到现在放到一些系统里面作为 功能模块 都能适合的很好,而现在我看到的是,很多小公司软件一升级或改进就 动辄全部代码重写,大部分重复性工作无谓的浪费了时间和精力。6:测试习惯作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不是 说有了专职的测试工程师程序员就可以不进行自

15、测;软件研发作为一项工程而 言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段 代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的 发现和解决,这样对整体系统建设的效 率和可靠性就有了最大的保证。测试工作实际上需要考虑两方面,一方面是正常调用的测试,也就是看程序是否 能在正常调用下完成基本功能,这是最基本的测试职责,可惜在很多公司这成了 唯一的测试任务,实际上还差的远那;第二方面就是异常调用的测试,比如高压 力负荷下的稳定性测试,用户潜在的异常输入情况下的测试,整体系统局部故障 情况下该模块受影响状况的测试,频发的异常请求阻塞资源时的模块稳定测试等 等。

16、当然并不是程序员要对自己的每段代码都需要进行这种完整测试,但是程序 员必须清醒认识自己的代码任务在整体项目中的地位和 各种性能需求,有针对性 的进行相关测试并尽早发现和解决问题,当然这需要上面提到的 需求理解能力。7:学习和总结的能力程序员是人才很容易被淘汰,很容易落伍的职业,因为一种技术可能仅仅在三两 年内具有 领先性,程序员如果想安身立命,就必须不断跟进新的技术,学习新的 技能。善于学习,对于任何职业而言,都是前进所必需的动力,对于程序员,这种要求 就更加高了。但是学习也要找对目标,一些小coding fans们,他们也津津乐道于他们的学习能 力,一会学会了 asp,一会儿学会了 php, 会儿学会了 jsp,他们把这个作为炫 耀的资本,盲目的追逐一些肤浅的,表面的东西和名词,做网络程序不懂通讯传 输协议,做应用程序不懂中断向量处理,这样的技术人员,不管掌握了多少所谓 的新语言,永

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号