`
talent2012
  • 浏览: 8676 次
社区版块
存档分类
最新评论

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

 
阅读更多
编程是个很复杂的玩意,但是成就优秀程序员的很多因素和我们在学校中早期学到的相差无几。本文灵感来源于Robert Fulghum的《All I Really Need to Know I Learned in Kindergarten》。

programmer-humor-couplet

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.还记得《雌雄大盗》这本书吗,我们学到的第一件事就是——“看”。

如果你不自己亲自去试试,那么你永远也学不到东西。我在编程中学会的所有东西全都来自于我的亲身实践。每天早上,我会广泛浏览网站,看看我们的编程世界有什么新鲜事情发生。从80年代初我得到第一份工作开始,我就一直保持了这个习惯。(那个时候网络还没普及,我主要是看目录和杂志。)

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

相关推荐

    一个优秀的c++程序员应该具备的素质(每天必看)借鉴.pdf

    一个优秀的C++程序员应该具备广泛的技能和深厚的理论基础。首先,C++不仅仅是一种与C语言相关的编程语言,它有自己的设计理念和特性,因此,学习C++时应将其视为一门独立的语言来掌握。对于初学者,推荐阅读...

    一个程序员的工具箱

    ### 一个程序员的工具箱:全面解析 #### 引言 在信息技术(IT)领域,特别是对于程序员来说,拥有一套高效、实用的工具是至关重要的。这些工具不仅能提高工作效率,还能帮助解决各种技术难题。本文将详细介绍《一个...

    程序员的八个级别

    根据给定文件的信息,我们可以将“程序员的八个级别”这一概念进行详细解析,以此来深入理解...每个级别都有其特定的要求和特点,随着技术能力的提升和个人职业发展的推进,程序员可以从一个级别逐步晋升到另一个级别。

    一个Java程序员应该掌握的10项技能

    ### 一个Java程序员应该掌握的10项技能 随着信息技术的快速发展,Java作为一种重要的编程语言,在软件开发领域占据着举足轻重的地位。对于初学者来说,了解并掌握一定的Java技能是十分必要的。本文将详细介绍《一个...

    Java程序员面试宝典

    对于Java程序员来说,面试是他们职业生涯中的一个重要环节。本文将深入探讨标题和描述中提及的知识点,以及如何利用提供的压缩包文件进行自我提升。 首先,"程序员的七种武器"通常指的是编程者必备的技能和素质,...

    高级程序员必备条件

    Struts2是一个基于MVC架构的Java Web开发框架。它通过Action类处理用户的请求,支持拦截器、验证等特性。熟悉Struts2框架有助于快速构建健壮的Web应用。 #### AOP(面向切面编程) AOP是一种编程范式,用于将横切...

    王牌9 优秀程序员之路——C# 开发经验及技巧大汇总

    泛型集合是 .NET Framework 2.0 引入的一个重要特性,它允许开发人员创建强类型的集合,从而避免了拆箱和装箱的性能损失。与 `ArrayList` 或 `Array` 相比,泛型集合(如 `List<T>`)提供了更好的类型安全性以及更高...

    经验分享:如何成为一名优秀的高级C++程序员?

    一个优秀的项目能够让程序员将各种技术综合运用,同时学习到新的知识。例如,做游戏开发需要学习图形学的知识,而做播放器则需要掌握编解码技术。理论知识和实际项目经验相辅相成,实践可以加深对理论的理解。 最后...

    优秀的PHP程序员至少应该了解PHP代码的优缺点

    除此之外,一个优秀的PHP程序员还应具备以下特质: 5. 学习能力:随着技术的不断更新,PHP程序员需要持续学习新技术,如PHP的新版本特性、Web开发框架、现代化的前端技术等。 6. 问题解决能力:遇到错误和挑战时,...

    优秀程序员之路——C#_开发经验及技巧大汇总

    ### 优秀程序员之路——C#开发经验及技巧大汇总 #### 1. 接口代替类用于参数 在面向对象编程中,接口提供了一种更加灵活的方式来定义对象的行为。使用接口作为方法参数可以提高代码的复用性和扩展性。例如,在定义...

    如何成为一个合格的C++程序员

    3. **模板与泛型编程**:模板是C++的一个强大特性,它允许程序员编写通用代码,支持不同类型的数据。掌握模板不仅可以提高代码复用性,还能提升程序性能。 4. **标准库**:深入理解STL(标准模板库),包括容器(如...

    十个糟糕的程序员的行为

    在IT行业中,编程习惯是衡量一个程序员专业素养的重要标准之一。良好的编程习惯不仅能提升代码质量,还能增强团队协作效率,减少后期维护成本。然而,在实践中,我们常常会遇到一些糟糕的编程行为,这些行为不仅影响...

    一个Java程序员应该掌握的10项技能.rar

    除了以上所述,一个优秀的Java程序员还应具备良好的编程习惯、代码风格和问题解决能力,以及不断学习新技术和框架的开放心态。随着Java生态系统的不断发展,如Java 11、17等新版本的推出,保持对最新特性的了解和...

    如何成为一个合格的java程序员

    要成为一个合格的Java程序员,需要全面且深入地掌握一系列技术和工具。下面将详细阐述成为一位合格Java程序员所需具备的关键技能。 ### 一、语法基础 Java作为一种静态类型的面向对象编程语言,其语法基础至关重要...

    程序员必备学问.docx

    首先,优秀程序员应具备的第一种行为是善于自我反省。在遇到问题时,他们不会立即归咎于外部因素,而是先审视自身的假设和代码,寻找可能的错误源。这种批判性思维能力有助于更快地定位和解决问题。 其次,不断学习...

    Java程序员经典书籍推荐

    本文档推荐了一个优秀的博客资源——博客园上由用户 `java_my_life` 维护的设计模式系列文章。此博主对于设计模式的讲解具有以下特点: 1. **简洁明了的定义**:每种设计模式的开头都会给出一个简短的定义,便于...

Global site tag (gtag.js) - Google Analytics