对于我们这个行业,“优秀的程序员有哪些不同的品质?”是最难回答的问题之一。我最近读了EranGalperin的《What Makes a good programmer》,它非常鼓舞人心,我想与大家分享我认为团队中每个人都需要具备的基本技能和属性。 1。适应性和灵活性 许多开发团队都在叫嚣我们需要灵活的开发人员——尤其是在软件开发的早期阶段。如果你平时是做UI编程的,那我们希望你能深入到数据持久层。我们甚至可能会要求您参加一些测试。您可能被聘为Java程序员,但我们希望您的下一个应用程序是用.NET编写的……擅长多任务处理与成为某方面的专家一样重要。当时它可能会让你发疯,但在你通过它之后,你的简历一定会赢得你的下一个雇主。 2.热情 也许你去大学学习计算机科学只是因为你听说它是一个赚钱的行业。几年后,当你发现回报并没有你想象的那么好时,你可能会开始感到沮丧,失去动力。伟大的程序员真正热爱编程——不喜欢你正在编写的代码是可以的——但总的来说,你应该是一个喜欢构建一些东西来解决问题的人。当您有时间喝杯咖啡时,您会浏览JavaLobby等网站,寻找提高自己的方法。你会对谷歌的最新动向,刚刚面世的web框架感兴趣,说说看。 3.DoersArmedwithScience 《The Pragmatic Programmer》是软件行业最重要的书籍之一。它不仅不局限于特定的编程语言,还为我们提供了一系列的指南,是一部非常经典的作品。在团队中工作时,我们需要考虑自己行为的后果,拒绝“破窗论”。保持一贯的高标准工作——测试、编码、文档等——并逐渐将整个团队聚集在一起,这成为一种习惯。 保持新鲜感的最好方法就是用科学思维武装你的头脑。任何问题都可以分解,所有语言都有一组相似的特性。一些人可以做到而另一些人不能做到的主要原因是你不断地问自己:这段代码可以写得更好吗?这些信息能否以更有条理的方式呈现?我可以很郑重地告诉你,这些问题的答案几乎都是肯定的,所以要好好解决这些“自我怀疑”! 4.良好的组织能力 一个好的程序员会把事情安排的井井有条,甚至每天下班前都会列出明天的任务。这样,如果你需要做其他事情,你至少可以参考这个列表,看看什么时候做是合适的,或者是否会影响其他任务。ps,这里推荐一个非常好用的工具——Mylyn,一个基于任务的Eclipse插件。 在处理代码和文档方面也需要良好的组织能力。如果我们能够有组织地封装、设计、命名类和变量,不仅可以帮助团队成员理解,还可以让你隔几个月再检查一遍,就不会像读别人的代码那样了. 5.通情达理,平易近人 我们大多数人都在团队环境中工作,所以我们必须要有人际交往能力。所有受人尊敬的伟大程序员都是平易近人的。你需要腾出时间去帮助别人,不管是有bug的代码还是项目经理想知道你的估计。此外,你也应该尽量表达清楚——以免对方在交流后对问题更加困惑。 讲道理也很重要。无论您在业务中处于什么位置,总会涉及一些谈判和谈判。或许知道自己是对的就不能心平气和的去做,但是最好还是找到双方都能接受的方案,不要太强势。 6.抓住机会 不要指望别人来告诉你什么是正确的事情。也许您即将发布并且必须迁移到最新的框架版本。如果您对自己所做的事情充满热情,那么您应该跟上时代的步伐。如果你很灵活,你可能愿意牺牲你的午休时间,或者一些在家的空闲时间,来研究一个研究原型,看看它是否有效。每个机会都有它的成本,但在你决定是否使用它之前,仔细考虑是值得的,不要盲目。 把握机会同样适用于你的事业。这个新创业公司值得加入吗?也许你对现在的工作很满意,但你还是应该挑战一下自己。每个成功人士的故事背后都有一个共同的主题——抓住有价值的机会,从错误中吸取教训,从错误中吸取教训。 7.引以为豪 请为自己的工作引以为豪。这是很多专业人士的教诲——那些我们眼中的伟人,始终认为自己的行业是最重要的,坚信我们的世界需要伟大的程序员。 如果你不喜欢编程,很难做到,但还是可以的。如果你不喜欢你的工作,为什么不想办法改正它呢?如果您觉得编写繁琐的代码是您的日常工作,也许加入一个开源项目会点燃您的热情?您会发现以自己的职业为荣的开发人员让您望尘莫及,无论是在他们的代码质量上还是在解决困难任务时的快感上。 当然,以上只是本人的看法,不涉及开发工作中遇到的任何实际技术问题。如果我遗漏或忽略了任何方面,请随时告诉我。最后,您认为优秀开发人员的最佳品质是什么?欢迎留下你的看法。 翻译链接:http://www.codeceo.com/article/how-good-programmer-better.html
