当前位置: 首页 > 科技观察

一个好的程序员有什么好处?

时间:2023-03-12 23:00:03 科技观察

多年来,我和很多程序员一起工作过——他们中有些人很棒,有些人绝对是一般人。由于最近我有幸与一些熟练的程序员一起工作,我花了一些时间来考虑我羡慕他们的地方。是什么让一个好的程序员如此优秀而一个糟糕的程序员如此糟糕?或者,简而言之,是什么让一个优秀的程序员如此优秀?以我的经验,成为一名优秀的程序员与年龄、教育或赚多少钱无关紧要。重要的是你的表现,更重要的是你的想法。我注意到,我敬佩的程序员有一个一贯的管理自己的习惯,而不是他们所选择的语言的知识、对数据结构和算法的深刻理解,或者多年的工作经验——在他们沟通的方式上,这是有意义的根据他们的精湛技艺了解他们的编程方法。当然,要成为一名优秀的程序员,任何人都无法列举,而且我不会仅根据这些实践的存在(或不存在)来判断任何程序员。但我确实知道,当我看到,当我看到一个具有这些特征的程序员时,我想,“这个人真的知道他们在做什么。”然后去”,或“用谷歌搜索”。无论您怎么称呼它,您可能遇到的大多数编程问题都已经以某种形式得到了解决。传道书早已记载,日光之下并无新鲜事。在GitHub上的库文件列表中,在Internet上的博客中,或者恰好与某人交流经验,优秀的程序员知道在解决问题之前先进行研究。我见过伟大的程序员急于寻求解决方案,但我共事过的最差的程序员从来没有咨询过,导致大量重复性工作或只是错误的解决问题的方法。不幸的是,他们最终为自己的错误付出了代价。阅读错误消息(并对其采取行动)这包括堆栈跟踪的符号解析。是的,令人厌恶和不幸——但如果你不愿意这样做,你怎么知道哪里出了问题?我认识的最有生产力的程序员不怕深入研究问题。效率最低的程序员看到错误甚至懒得去阅读错误信息。(这听起来很荒谬,但您会惊讶于我遇到这种情况的频率。)此外,优秀的程序员会发现问题并急于解决它。对于他们来说,阅读错误信息只是第一步;他们急于深入研究问题并找到错误的根源。他们对推卸责任不感兴趣,他们对寻找解决方案感兴趣。问题真的在于他们。他们会查看源代码文档、测试和人员:这些都可能是谎言。不一定是故意撒谎,但如果你想确切地知道代码是如何工作的,你必须自己查看源代码。即使它不是您非常熟悉的语言也不要害怕——例如,如果您主要是一名Ruby程序员并且您怀疑Ruby的C包中存在错误,只需解压缩并查看即可。是的,你可能一无所获。但谁知道呢,你说不定也会发现问题所在,至少选择了一条比什么都不做更有机会的路。如果您在非开源环境中工作,这就没那么容易了,这很不幸,但原理是一样的。糟糕的程序员通常对查看源代码不太感兴趣,因此,他们通常比那些愿意研究源代码的人在这些问题上停留的时间更长。言出必行的程序员往往会采取行动。他们似乎有一种无法控制的冲动——一旦他们发现问题或看到对新功能的需求,他们会立即开始解决它,有时甚至过早或过于激进。他们对问题的直觉反应是正面解决它。有时这会导致麻烦——但正是他们的热情让他们变得如此优秀。当一些人还在拖延逃避或者幻想问题可以自己消失的时候,优秀的程序员已经开始动手了。更简单地说(也许太直白了),如果您看到有人兴奋地发现并解决一个问题,那么您很可能已经找到了一个优秀的程序员。他们采取预防措施,这可能是一个糟糕的程序员的标志——他们纠缠于一个接一个的人为错误,在不理解前一个错误的情况下从不继续下一个错误。他们总是抱怨他们程序的错误部分,但花费数小时调试完美运行的代码。他们让自己的情绪起主导作用,相信直觉而不是仔细和明确的分析。如果你突然遇到一个问题——或者每个问题都像是世界末日——你很可能是在犯错误,而不是解决根本问题。伟大的程序员会花时间去了解哪里出了问题,即使这是一场真正的灾难,除此之外,他们将反复出现的问题视为分配的任务。由于他们更准确地解决了大多数问题,因此不会增加您团队的紧张程度。他们擅长沟通毕竟编程也是一种沟通方式。能够清楚地表达你的观点对于写代码和写诗一样重要——随着时间的推移,我发现能够写出简洁的电子邮件、优雅的报告,或者只是高效的备忘录的人往往会成为更好的程序员。这一发现既适用于英语,也适用于书面程序。当然,在一行中写满括号和一个字母的函数是可以的,但是如果没有人能理解你在写什么,那又有什么意义呢?一个好的程序员,不管是什么媒介,都把时间花在如何更好地表达自己的观点上。他们充满激情,我认为这是优秀程序员的最好表现(而且,不仅在计算机行业,这适用于任何行业)。如果你真的很在乎你所做的事情——不只是把它当成一份工作,而是一种兴趣,一种对你有很大吸引力的事情,那么在这个行业,与其他人相比,你有巨大的优势。优秀的程序员会一直写代码,他们每天在这个行业的时间不少于8小时——包括工作和业余时间。在编写项目和教授谜题之间,他们不偏袒任何一方。他们不会花时间沉迷于一项新技术或一种新的编程语言,只是为了弄清楚某些东西是如何工作的。当我在星期天看到一个程序员在一个他感兴趣的项目上工作,创建他需要的工具,并被新的和有趣的东西所吸引时,我意识到我正在看一个每个人都忍不住思考的项目。尊重的人。最终,伟大的程序员不会将他们的职业视为赚钱的工具,而是改变世界的手段。我认为这是成为一名优秀程序员的真正原因。对他们来说,编程意味着创造世界。只有这样的人,才值得我们由衷的敬仰和敬仰。