优秀程序员应具备的15个特性

1、分享

尽可能地使用开源,并且如果有能力的话也可以把自己的成果分享给大家。整个社会的智慧结晶肯定比一些大公司自管自闭门造车要好。

2、公平的心态

不要以为你的选择就是唯一能奏效的,试试其他技术、框架、方法和建议,也许其他的选择比你原先的好也未可知。要用开放的心态去对待任何方法和抉择。

3.不可攻击他人

如第2条所言,不要因为别人恰巧使用的是.Net、Java或PHP这些技术就随意攻击他们(我在这方面有过教训)。

有时,这些你看不上眼的技术或许要比你想象的更有用。只要你怀着一种平和的心态,你就可以从他们那里学到很多东西,殊不知,海纳百川,有容乃大。

4.解决自己的烂摊子

自己的代码自己负责。永远不要指望QA能帮你找到所有的bug。经常全面地测试自己的代码。

5.不是自己的东西不要拿

得到许可后方可使用,偷偷用了事后再声称自己无辜是可耻的。

6.伤害了别人要说对不起

代码审查是一个相当不错却又很少使用的主意。指导经验比你少的程序员,有助于整个团队的发展。但是切记不能公开批评他人。指导并不意味着贬低别人。在得到指导时,有的人会接受,有的人则不会。

要记得有时候,从那些水平不及你的人身上,你也能学到很多东西。绝对不能门缝里看人——把人看扁了。

7.有备而来

在正式开工写代码之前要先做个彻底的了解。做原型、从网上搜索实例、和其他也做这个的人讨论或者先练练手。

什么都不知道就着手构建你从未尝试过或使用过的东西简直就是“自作孽不可活”。

如果打一开始就有线索有思路,得到的结果可能会更好更有成效。

8.拿得起放得下

不要畏惧替换、重写、重构甚至是直接删掉代码。有时候,如果碰到可留可不留的代码,直接扔掉就是了。

不要对你的代码死缠烂打,不肯放手。

9.舒适的工作环境

对,要想程序员能高效编程,一个好的工作环境是不可或缺的。

一把舒适的椅子,一个安静的工作场所、一代高配置的电脑以及各种有助于编程的工具都应该配备齐全。经理避免一些琐事去打搅到手下的程序员。

而作为一个程序员,也不必忍气吞声、给人做牛做马,如果老板对你不好,换个就是了。

10.保持生活的平衡

学习、思考、绘画、唱歌、跳舞、工作、玩耍,每天都应该活得丰富多彩。

我非常欣赏谷歌的工作方式,它会建议你花上20%的时间用来思考任何你认为值得做的事情。此外,谷歌还提供专门的休息室、游戏房和其他一些能用来放松自己的场所。

因为编程是一种高强度的脑力活动,有时候你的大脑真的非常需要稍作休息。不要盲目地不管不顾自己的身体,“工作狂”绝对是不可取的生活方式。

每周工作80小时,听上去很牛掰,但是你的工作效率肯定要打一个问号,甚至一不小心会犯个不可饶恕的小错误然后前功尽弃。

11.下午打个盹

就算我们把一天24个小时全都用来写代码,成果也不会更多。停下来、回家、然后打个盹。很多问题都是在我回家的路上解决的。有时候,我正在开车,或者是清早一觉醒来,答案就灵机一动出现在我脑子里。

12.不要闭门造车

交流对于我们相当有好处:读读博客、学学新语言和框架、讨论讨论话题、看看同行在做什么。自扫门前雪,绝对成就不了一个优秀的程序员。闭门造车型的程序员终将被时代的潮流所淘汰。

13.保持好奇心。

我们就像一粒粒种子,因为有着对外面世界的好奇,才能从土壤中探出头来,亲眼见证这个世界。

每天我们都能看到有新鲜事物出现在编程世界里。带着“Why”去一探究竟。每天都学点新知识,扩宽自己的视野,刷新自己的技能,让自己跟得上时代前进的步伐。要是你觉得编程枯燥又乏味,那么也许你可以考虑换一行。

14、不要维护那些费力不讨好的代码

所有事物都会逐步趋向衰退灭亡,谁都无法抵抗。

代码也会慢慢发旧直至死亡。这时候你能做的就是把它们埋葬,然后再重新写过。不要为了省钱而继续维护那些费力不讨好的代码!

15、看

还记得《雌雄大盗》这本书吗,我们学到的第一件事就是——“看”。

如果你不自己亲自去试试,那么你永远也学不到东西。我在编程中学会的所有东西全都来自于我的亲身实践。

每天早上,我会广泛浏览网站,看看我们的编程世界有什么新鲜事情发生。

当你已经有了5年的工作经验,在你眼中编程其实就是小菜一碟了。

时间: 2024-10-10 12:21:44

优秀程序员应具备的15个特性的相关文章

优秀程序员应该具备哪些素质?

优秀程序员应该具备哪些素质? 你可以不聪明,但是你绝对不能不用心. --<女人公敌> 程序员求职是本是一件只要"郎有情女有意",一拍即合的事情,可是企业与求职者却总是看不对眼.聊不到一块去,进而导致IT市场上总是会出现结构性失衡的现象.一方面,社会每年培养大量的计算机相关专业毕业生,他们却找不到好的工作,但另一方面,企业却招不到好的程序员.据不完全统计,大学生里面大约有23%的人是学习计算机.通信.电子相关专业的,都可以从事程序员相关工作,也就是说全国每年大约有160 万准

程序员应具备的素质(国内的大多程序员生产力不够,所以只能早早转行)

学习编程已经有10个年头了,在这10年里,我做个不少软件项目,有大有小,写过基于单片机的裸奔式的嵌入式软件,写过基于os(linux.rtems.linux)的嵌入式软件,做过windows驱动开发,开发个windows应用软件,这一路走来,发现在国内程序员并不受尊重,程序员往往寿命很短,不到30岁就的转行,大家一致认为程序员是it民工,再来看看国外的程序员40岁都能活跃在编程一线,是大家羡慕的朝阳行业,为什么国内国外程序员会有如此天壤之别呢?说白了国内的大多程序员生产力不够,没有创造出作为一名

程序员应具备的7大技能

1.  对技术的热忱 热情是一种无形的东西,当你所列清单上的所有事情都做不好的时候,它常常能帮你熬过这段时间.对IT的强烈热爱,也会让你的其他大部分特点都遥遥领 先,这是纯粹的智商和商业头脑所无法比拟的.当你在IT行业工作了多年之后,热情也会帮你在早上起床之后期待今天的工作.没有热情,IT领域将会成为一个 空有外壳没有灵魂的地方. 2.  懂得数据分析 数据是IT企业和它所服务的企业的命脉.对公司数据有深入的了解,可以对软件应用程序与数据的衔接提供重要的见解.此外,从商业的角度看,如果你对 一个

Java程序员应具备的技能

1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选 项,命令至少需要熟悉:appletviewer. HtmlConverter.jar. java.javac.javadoc.javap.javaw.native2ascii.serialver,如果这些命令你没有全部使用过,那么你 对java实际上还很不了解. 3.工具:必须至少熟练使用一种IDE的开发工具,例如Ecl

程序员老司机谈到的一位优秀程序员应该具备的十个优秀的习惯

在这个世界上,有数百万的人热衷于软件开发,他们有很多名字,如:软件工程师(Software Engineer),程序员(Programmer),编码人(Coder),开发人员(Developer).经过一段时间后,这些人也许能够成为一个优秀的编码人员,他们会非常熟悉如何用计算机语言来完成自己的工作.但是,如果你要成为一个优秀的程序员,你还可以需要有几件事你需要注意,如果你能让下面十个条目成为你的习惯,那么你才能真正算得上是优秀程序员. 1. 学无止境.就算是你有了10年以上的程序员经历,你也得要

优秀程序员必须具备的八个习惯

什么才是优秀的程序员,最谁也说不出准确的答案,没有确切的定义,可以有很多的切入点从编程语言,算法和其他技能上去回答,但是我们统统忽略了程序员的生活,见过了中关村的程序员大牛从小菜鸟一路艰难的磨练,总结下我的看法,优秀程序员必须知道的八件事情. 1.补充正能量保持好状态 话说人有三迷,你不工作的时候,你在状态么?如果回答是否定的那么你需要改变,你需要一种自己喜欢的提神方式,可以是咖啡,可乐,或者是刷微博听音乐,可以所思调增自己的精神状态,让自己不管在工作还是生活中,都能保持一个很好的状态,一个良好

每个优秀程序员必须具备的技术技能

我特别支持软件开发者在他们掌握技术技能的同时去学习“软技能”——事实上,我写了一本关于这方面的书——但是不可否认的是:技术技能很重要. 我的意思是,如果你不能编写代码和开发软件,那么你学习众多软技能有个卵用.也许你可以成为一名优秀的管理人员或指导人员,但不会是软件开发人员. 如果你正在阅读这篇文章,那么我假设你有兴趣成为一个软件开发人员——或者是更优秀的软件开发人员——下面就让我们来聊一聊你需要知道哪些技术技能. 用技能赚钱 现在,有这样一种主流观念,压垮了很多新手软件开发者,那就是你需要学习很

php程序员应具备的7种能力

一,php能力 1,了解阶段,您能写一些代码,因为那是在手册和google的帮助下,您才完成的.变量乱定义,N多函数不知道,做起事来很慢,想到什么写什么,代码写的比较乱,后期维护很麻烦. 2,熟悉阶段,经常查函数,手册估计也看过一,二遍了,常用的函数基本上您都了解了.后 期维护给您带来了不少痛苦,您开始发现自己的代码有很多不足,开始思考如果改进自己的代码,如何站在项目的角度来规划自己的代码,而不是想到什么写什么, 知道如何来减少冗余代码,使您的代码清晰,知道什么样的代码写出来让人看着舒服,基本的

优秀PHP程序员应具备的5大能力

MySQL能力 在开发上的应用基于几个能力体现: (1)了解:知道用PHP连接数据库;懂得写一些简单的SQL;建一些简单的索引;懂得用工具简单操作一下数据库(增删改库表结构数据等等). (2)熟悉:懂得在开发应用上设计数据库,建立一些有效的索引,用explain分析SQL性能,压力测试等等. (3)很熟悉:深入了解数据库索引.存储引擎原理以及运行机制,能有效地构建高性能可扩展的数据库结构/架构,有效地优化数据库性能配置并加以调试,分析数据库运行状态. (4)精通:简单地说具备以上所有能力的同时,