优秀的程序员是在穿过一条单行道的时候还会往两边看的人

  作为一个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源代码,并经常在日常工作中阅读和查阅。他们这样做不仅是满足求知的渴望,还从中学习了如何写优秀的程序。阅读和查阅那些你认为可靠的出名的开源代码或者比你资深的程序员的代码,你会写出更棒的程序。(扩展阅读:《阅读优秀代码是提高开发人员修为的一种捷径》)

  最后,我想说的但没有将其列在上面的:不要和他人比较

  和他人的比较往往会造成消极的情绪和不健康的竞争。每个人都有他的长处和短处。扬长避短很重要。我也经常看到一些基础很厉害的程序员范很低级的错误。所以仅仅和自己比较,列举你自己需要改进的地方,并持续改进它。编程是很有意思的事情,享受它吧。

  任何一个傻瓜都能写出计算机能理解的程序,而优秀的程序员却能写出别人能读得懂的程序。

时间: 2024-10-30 23:51:00

优秀的程序员是在穿过一条单行道的时候还会往两边看的人的相关文章

想成为优秀的程序员这些码德不能缺

我把这些看成是作为一个程序员的基本素质,多数是编码之外的事情: ●代码每天备份:(预防意外导致的任何损失) ●上传代码时写清楚log信息:(为维护这个模块的人着想,有可能是你自己) ●提供接口时不要把问题抛给使用接口的人,升级或者变更接口时不要删掉原来的接口:(为使用你接口的同事着想) ●变量命名要见名知意:(起码不能误导别人) ●在工程中新建一个doc文件夹将项目相关的文档放在该目录下,方便后面维护的人员理解项目和代码:(为维护这个模块的人着想,有可能是你自己) ●签署bug或者转办bug时写

什么原因成就了一位优秀的程序员?

这些年我曾和很多程序员一起工作,他们之中的一些人非常厉害,而另一些人显得平庸.不久前因为和一些技术非常熟练的程序员工作感觉很愉快,我花了一些时间在考虑我佩服他们什么呢?什么原因让优秀的程序员那么优秀,糟糕的程序员那么糟糕?简而言之,什么原因成就了一位优秀的程序员呢? 根据我的经验,成为一个优秀程序员同年龄,教育程度,还有和你赚多少钱没有任何关系.关键在于你的做法,更深入地说,就是你的想法.我注意到我所钦佩的程序员都有一些相似习惯.不是他们所选语言的知识,也不是对数据结构和算法的深入理解,甚至不是

10个习惯助你成为一名优秀的程序员

当谈到编程时,很多人应该都有听过10x程序员的说法. 据说一个10x程序员的效率大约是其他程序员的10倍. 这是一个有争议的话题,无论你选择相信10x程序员,还是认为这十分可笑,下面的10个习惯可以在一定程度上助你成为一名势不可挡的优秀程序员. 1.积极使用搜索工具 作为开发人员,你需要了解如何利用搜索解惑,查看其他人对你正在研究的主题所讨论的话题和内容,并将学到的知识应用于手头的项目. 当面临一个问题,优秀的程序员应该知道如何花很少时间去查验和解决手头的问题. 2.保持初学者心态 技术发展如此

想要成为真正优秀的程序员是不是真的很难?

很多人认为要想成为一名优秀的程序员,那就需要一天24小时每天不断地编程--睁开眼睛要编程,闭上眼睛睡觉的时候还要梦到编程--我认为这是一种矫枉过正的方法.沿着这条路走,只会让你精疲力尽,犹如夸父逐日一般,死在半道上. 我觉得问题的关键是要想明白你为什么要编程.坦率地说,我编程是因为我喜欢别人用我的程序,这也是我之所以在读书的时候成绩不怎么优秀的原因(我并 不热衷于参加编程竞赛以及类似事情).因此,我也不喜欢参与纯研究的项目--只在论文上讨论各种点子,而不付诸于行动不去写代码(除非恰巧碰到的是研究

★漫画:优秀的程序员具备哪…

漫画:优秀的程序员具备哪些属性? 东方头条12-2717:20 很多人问我,你是一个优秀的程序员吗? 我还差得远,但我在朝这个目标努力. 那么,怎样才能成为一个优秀的程序员呢? 优秀的程序员往往具有几方面的特点,这些特点里有的更重要,有的作用略低,我以个人的见解,为这些特点从低到高划分了5个星级. 1.兴趣 重要程度: 毋庸置疑,无论是IT还是其他领域,兴趣都是成功的第一推动力. 或许有人会问了:我对所有正经事都没兴趣,天生就喜欢吃喝玩乐,那我该怎么办啊? 没办法,对自己狠一些吧,想一想努力事业

深入理解你的代码才能成为优秀的程序员

为什么有些程序员似乎有着一种神奇的能力,能够在眨眼间提取代码的意思? 为了回答这个问题,我先从科学的角度来研究我们理解代码的过程. 事实证明,理解代码是有其心理过程的,我们可以利用这方面的知识成为一名更优秀的程序员.它能有助于你理解开发过程中的各个环节,这样你就不会因为编程中的技术瓶颈而裹足不前. 本文将对有关编程理解的知识略有涉及,并从三个方面来讨论如何利用这些知识成为一名更优秀的程序员. 关于成为更优秀的程序员的方法有三种: 首先,你得知道理解代码的能力取决于三个方面: 知识--解决问题所需

在有限的时间内,专注于一件事,重复直至成为优秀的程序员(转)

  晚上看到一篇博客,作者是翻译<黑客与画家>的阮一峰.他说一个网站上有人提问:"最让你感到吃惊的信息是什么?" 有人回答:"人生只有900个月."九百除以十二,计算器准确的告诉我等于七十五,这也差不多是现在的人均寿命.这当中还包括了睡觉吃饭闲扯漫无目的的时间,如果用一张A4纸打印出30x30的表格,每个月过完打一个钩,我们就能清楚地看到这一生是多么有限. 想到这里,我又想到另外一个关于时间的理论,那就是"一万小时天才理论".看到一些

优秀的程序员该如何更上一层楼

关于我们这个行业,"是什么品质使得优秀的程序员区别于其他程序员?"是最难回 答的问题之一.最近我阅读了 Eran Galperin 的<What Makes a good programmer>,很有感触,于是想和大家分享一下我认为团队中每个人都需要具备的基本技能和特质. 1. 适应性和灵活性 很多开发团队都在喊我们需要灵活的开发人员--尤其是在软件开发初期这类人才更为重要.如果你平时是搞 UI 编程的,那么我们希望你能深入到数据持久层.我们甚至可能还会要求你去做一些测试.

优秀的程序员需要擅长数学吗?

天有很多年轻人或经验不足的程序员在 论坛发帖.在 Stack Exchange 网站问:「为了成为优秀的程序员,我需要擅长数学吗?」,在我还年轻的时候,我也问自己同样的问题.最近,我醉醺醺地.也是出于无聊,竟然 Google 了同样问题,差不多有 10 多年没有思考过这个问题了.在我浏览相关话题时,出现的答案模式被归结为以下三个主要类别: 需要 不需要 看情况 貌似「需要」和「不需要」经常带有个人主观偏见,反而显得有点儿草率的反应综合征.因此我把精力更多地放在「看情况」的选项上,以确保「需要」被