优秀的程序员是在穿过一条单行道的时候还会往两边看的人。
作为一个IT行业的软件程序员,每天驱使我们日复一日的辛勤工作的,是来自我们对编程的兴趣和激情。但是要让编程变得始终有趣,我们必须学会坚持某些成为优秀程序员的基本原则。
我并不是要写出一些咒语,你照着执行就可以成为一个优秀程序员了。我的目的是想记录下我学习到的和用过的一些有用的经验,它们帮助我获得比较好的结果。对于优秀程序员是没有明确定义的,这里我们指的是那些创造出了优秀IT解决方案的以及帮助这个行业增长的那些人。
0. 掌握基础
对于任何行业任何工作来说,融会贯通是获得成功的关键。一个人想要成为优秀程序员,就必须有坚实的基础。核心理念的理解会帮助你用最好的方法设计和实施出最完美的方案。如果你感觉到不能掌握核心的计算机科学或者某个编程语言的知识点,现在开始回顾基础一点都不晚。
1. 开始为你写过的代码贴上标签(怎么做,做什么)
我发现优秀的程序员和普通程序员之间有一条明显的分界线,优秀程序员渴望深究每行代码做了些什么,以及如何实现的。有那么一小群人,他们一定要弄懂每一行代码。我知道如果时间非常紧张的时候,我们经常不能够遵循这个原则,仅仅写出些代码,知道它实现了需要的功能。如何处理这种情况又是另外一个话题,但是作为一个程序员,我们经常要尽可能深入探索。相信我,随着时间的推移这会变成一个习惯,之后每次你都会不知不觉的这样做了。
2. 帮助他人,你可以学到更多
许多人都有个共同特点,只有当他需要帮助的时候,他才会求助于论坛或者群。优秀程序员不同之处在于他们会经常浏览论坛去帮助他人。相比较于靠别人帮助解决问题,他们帮助他人让自己学到更多。在一个团队中也是一样,帮助他人解决问题收获更多。相信我,了解他人的问题,思考并最终提供解决方案吧,你会比之前学到的更多。
3. 写简单易懂,有逻辑性的代码
正如KISS原则(保持短小精悍)适用于生活的方方面面一样,它也适用于编程。尽量写有逻辑的代码,避免复杂化。有时人们写复杂的代码仅仅是为了展示他们有能力写出这样的代码。我的经验告诉我,简单而富有逻辑的代码非常的好,会产生的问题更少,也更容易扩展。我记得一句话:
好的代码本身就是最好的文档。当你想要加注释的时候,问问你自己,“我能如何改进我的代码,才能不写注释也读得懂呢?”
4. 花更多的时候分析问题,你将会花更少时间去解决问题
花更多的时间理解和分析问题,然后再设计方案吧。你会发现剩下的事情很容易了。设计不是说要用建模语言和工具,可以是仅仅看看天空在脑子里构思。那些在遇到问题就开始敲代码的人往往会最终偏离需求。
如果你洗澡的时候不能理清整个程序的结构,那么你还没准备好开始编程。 – Richard Pattis
5. 成为第一个检查你的代码的人
虽然有一点点难,但试着在其他人修改你代码之前修改它,随着时间的推移,你会写出几乎没有bug的代码。对你的代码做没有任何偏见的检查,也不要犹豫让其他人来检查你的代码。和其他优秀的程序员一起工作,接受他们的意见能够帮助你也成长为一个优秀的程序员。
6. 不要迷失在快速更迭的科技世界
在IT行业中,我经常遇见许多人,他们对现在的工作不满,甚至离开它去追寻新的工作,理由是因为他们想要学习最新的科技。我们每天听到的都是新工具、接口、框架,能让程序更简单,速度更快。这在科技世界中司空见惯并会一直如此。但是最基本的最核心的科技变化比那些框架、工具和接口的变化小得多。就像大海,大海表面上波涛翻滚,但大海深处却相当平静,而那里才是水生生物生存的地方。所以将你自己置身于核心技术的大海深处吧。举个例子,在Java企业级应用中,每个星期都会出现新的框架,但是核心的技术是不变的,譬如基于客户端-服务器端的请求,MVS模式,filters/servlets/JSP,数据源绑定,XML解析等等。所以要花功夫去学习核心概念,而不是去担忧日新月异的框架和工具的出现。相信我,有了核心技术的基础,你会发现学习新的框架,工具以及接口变得更容易了。
7. 应急方案不会持续很长时间
很多时候软件师们会采用应急方案(可能是时间不够,可能是问题理解不透彻或者是缺少经验)。但是这样往往带来的结果是,代码混乱,缺乏可扩展性和维护性,后来浪费了更多的时间。请在你清楚整个方案后再开始实施。我知道有些情况下应急方案无可避免,就好像,一个人应该说实话,但是你在某些情况下不得不说谎。
8. 阅读文档
阅读很多文档是作为优秀程序员的必备习惯之一。可能是产品说明书、JSR、API文档、教程等。阅读文档帮助你获得必要的基础知识,写出更好的代码。
9. 你可以学习他人的代码
我接触过一些优秀的程序员,他们在IDE里面一直放着JAVA源代码,并经常在日常工作中阅读和查阅。他们这样做不仅是满足求知的渴望,还从中学习了如何写优秀的程序。阅读和查阅那些你认为可靠的出名的开源代码或者比你资深的程序员的代码,你会写出更棒的程序。(扩展阅读:《阅读优秀代码是提高开发人员修为的一种捷径》)
最后,我想说的但没有将其列在上面的:不要和他人比较
和他人的比较往往会造成消极的情绪和不健康的竞争。每个人都有他的长处和短处。扬长避短很重要。我也经常看到一些基础很厉害的程序员范很低级的错误。所以仅仅和自己比较,列举你自己需要改进的地方,并持续改进它。编程是很有意思的事情,享受它吧。
任何一个傻瓜都能写出计算机能理解的程序,而优秀的程序员却能写出别人能读得懂的程序。
相关推荐
Read)列出了多达一百条准则,旨在帮助读者全面掌握成为优秀程序员所需的知识和技能。本文将基于原文的标题、描述和部分内容,深入解析其中的关键知识点,以助于广大编程爱好者更好地提升自我。 ### 个人技能篇 #...
"成为优秀程序员的 101 个技巧" 本资源为程序员提供了 101 条实用的技巧,从搜索问题答案到编写有用的注释,从承诺不足到超额交付,从寻找导师到成为导师,从适当命名变量到删除不用的代码,从学习阅读代码到建立...
深入理解语法、数据结构和算法是成为优秀程序员的关键步骤。在实际项目中,能灵活运用这些知识解决问题,将大大提升工作效率。 其次,了解并熟练运用软件工程原理。这包括需求分析、设计模式、软件测试和版本控制。...
### 成为优秀程序员的10条修炼秘籍详解 #### 1. 不要拖延工作 在编程工作中,遇到问题如bug或乱码时,应当即刻解决,避免问题积累。拖延不仅会导致问题复杂化,还可能增加后续修复的难度。及时处理这些问题有助于...
### 如何从优秀的程序员成为伟大的程序员 在信息技术领域,从一名优秀的程序员成长为一名伟大的程序员不仅是职业发展的过程,更是一种自我超越的精神追求。本篇文章将基于提供的文件内容,深入探讨成为伟大程序员所...
### 如何成为程序员:成为一名C++程序员的详细指南 在当今快速发展的信息技术领域,成为一名出色的C++程序员不仅意味着掌握一门编程语言,更是一项能够开启众多职业机会的关键技能。本篇文章将深入探讨如何从零基础...
要成为一名杰出的Java程序员,以下十点建议至关重要。首先,你需要拥有扎实的编程基础和对面向对象编程(OOP)的深刻理解。OOP是Java的核心,理解和掌握类、对象、继承、多态和设计模式是提升编程能力的关键。不仅要...
由于只有一个文件名“如何成为一个优秀的JSP程序员”,可以推测该文件可能是一个综合性的指南或教程,包含多个章节,分别讲解成为优秀JSP程序员所需的不同方面。 **详细知识点:** 1. **JSP基础** - 学习JSP的基础...
成为一个优秀的程序员并非易事,它需要的不仅仅是一两门编程课程的学习。以下是对成为一名好的程序员所必需的关键要素的详细解释: 首先,扎实的基础知识是程序员的基石。这包括理解计算机科学的基本概念,如数据...
然而,掌握C++语言的语法仅仅是一个开始,要想成为一名优秀的C++程序员,还必须了解和掌握编写高质量C++代码的技巧和规范。这本由上海贝尔实验室资深C++工程师林锐博士编写的《高质量C++编程:让你成为一个优秀的C++...
### 10步让你成为更优秀的程序员 #### 1. 永远不要复制代码 在软件开发过程中,保持代码的整洁与可维护性是非常重要的。一个常见的问题就是代码重复,这不仅会让代码库变得臃肿,还会增加出错的风险。因此,避免...
本文将根据给定的文件信息,详细解析成为一名优秀程序员所必需的书籍和资源。 #### 编程书籍 1. **《C Primer Plus》** - **简介**:这本书是学习C语言的经典之作,它不仅介绍了C语言的基础语法,还深入讲解了...
### 优秀程序员应知的关键素质 #### 一、踏实的工作态度 成为一名优秀的程序员,首先要有踏实的工作态度。这意味着在工作中需要做到低承诺、高实现。具体来说,就是在承诺任务完成的时间和质量时要保守估计,确保...
以下将详细介绍成为优秀程序员所需要的关键能力: #### 一、掌握语言与工具(Languages and Tools) 1. **编程语言**:熟练掌握至少一种编程语言是基础,如Java、Python等。同时,对多种编程语言有一定的了解能够...
本文将依据“六分钟八法则塑造优秀程序员”的理念,对这八条法则进行详细阐述,帮助程序员在有限的时间内实现质的飞跃。 首先,**使用更大的显示字体**不仅能够缓解长时间编程所带来的视觉疲劳,而且能够迫使程序员...
### 作一个真正合格程序员的七种素质 在IT行业中,成为一名合格的程序员不仅需要扎实的技术基础,还需要一系列软技能和个人素质。以下是成为一名真正合格程序员所必备的七种关键素质。 #### 1. 团队精神和协作能力...