文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

要想成为优秀程序员,你要具备这五种关键能力

2024-11-30 15:20

关注

审校 | 重楼

极客程序员具备的编程技术就像多功能的工具,但是每种技术都是用语言表达的模式集合,而且大多数都不是新的模式。如果人们理解了这些模式,就可以很容易地理解体现它们的任何编程技术。

行业专家指出,擅长编程并不是优秀开发人员的标志。例如一名才华横溢的开发人员在工作时间付出全力创建清晰、准确、可维护的代码,在午餐时谈论工作以外的事情,然后按时下班享受从键盘释放出来的生活,这有什么错呢?

以下是专家认为优秀程序人员必须具备的五种关键能力。而要了解为什么这些能力很重要,需要思考软件是什么:软件不是无穷无尽的一系列语句,也不是对API的任意调用的集合,更不只是代码的剪切和粘贴。与其相反,它是一个高度结构化的代码层次结构网络,几乎不采用复制的代码(不一定是GOF模式,而是像“延迟初始化”、“模型驱动的代码生成”或“XML脚本”这样的模式)。软件只有在满足业务需求并且质量足够好的情况下才有用。因此,需要对开发人员具有的能够实现这些目标的能力进行评估。

1.分析:条理清晰,善于思考,善于解决问题的能力

如今,很多人将沉着、自信或快速连续的陈述误认为是智力,其实是一种特征,因此人们需要非常了解开发人员的智力特征。

软件是关于功能和结构的分解,所以智力的关键方面是天生的、后天的或意志力的分析能力。善于分析的人会从多个角度考虑问题,并选择总体中最好的方法,然后能够将一个问题分解成多个子问题。

在面试求职者的过程中,就可以很容易地发现这种能力,因为求职者会很自然地试图澄清模棱两可的问题,或列出一个解决方案的组成部分和关系,或列出一个问题的“头部和尾部”,在详细讨论之前确定它的范围。

为了检测这种能力,不需要向他们提出一个新问题,只需要让他们描述做过的任何事情:例如开发的软件、面向对象、软件开发的角色或过程、互联网等,或者是真实或理想的城市的布局、民主的本质、进化的定义和操作等等。

当完成描述后,面试考虑一下是否听到列举了这些片段,或者求职者是否描述了问题的核心。这就是他们采用的分析能力。

2.抽象:能够识别和理解抽象和模式的能力

软件是复杂的,人们通常无法通过阅读每一行代码来理解它。可以通过寻找结构、构建关于代码如何建模的理论,然后在阅读时验证和更改该模型来理解它。

开发新软件很像理解一个现有的应用程序,除了模型还不存在,只有软件的“理论”在脑海中。而开发的程序可以用代码模型来表达理论。

如果从抽象的角度考虑,编写功能或技术规范与编码并没有什么不同,只不过采用的是人类的语言,解释器表达了某人或其他人的思想。规范是抽象的,因为没有程序可以运行它,但如果它是准确的、完整的、清晰的和结构良好的在代码中寻求的所有品质,那么开发人员就可以实现它。

3.精确:简明扼要地表达事物的能力

有些开发者通过复制例子获得了一定程度的成功。他们通常寻找一些接近想要实现的现有例子,然后对其进行调整。这就像雕刻一样,除非是用代码完成的时候,其结果通常不是很清楚,不是很简洁,而且可能并不完全准确。

类似地,一些开发人员只能通过示例来解释,而不能通过命名底层概念或模式来解释。这是可以接受的,但这也是一个绊脚石,因为他们不太可能在代码的微观或宏观级别上识别、理解和应用模式。

语言精确但不一定快速或令人印象深刻的开发人员将会开发出更精确的代码,并更容易向其他开发人员解释其技术或需求。

4.优先和务实:识别必须做什么和可以做什么的能力

敏捷方法自然倾向能够尽快编写代码。即使在采用瀑布式开发的开发公司中,能够区分必要性和可能性仍然是一项至关重要的技能。

软件产品通常只有在按时交付的情况下才能完全成功。务实的开发人员做需要做的事情,创建一些钩子并编写为未来奠定基础的注释。

务实主义还表现为对实现、完整和完成的渴望。这驱使并鼓励人们去定义什么是成功,帮助优先考虑实现成功的方法,专注于完成任务而不是表面功夫。

5.理想主义:渴望做正确的事情

注重实效的开发人员有时会变得懒惰,他们通常只开发当前所需的功能,而且只为这些功能编写代码,而不是为未来必须维护这些代码的开发人员编写代码。

理想主义的开发者实际上关心他们所交付的产品所有品质:

理想主义和务实主义是必要的对应物,可以平衡和指导开发者的决策。

其他能力

当然,开发人员还需要具备其他能力:

结论

最后一个能力是人们都需要的——认识到没有唯一具有价值的技能或能力。对于任何组织来说,成功有多种方式,需要扮演多种角色,个人的工作只是工作过程的一部分,所有这些都需要努力才能获得成功。

聪明的人有时会忽视其他类型的能力,人们需要相互尊重,并开诚布公地提出自己的观点,即使自己认为正在纠正错误,也会惊讶地发现经常会将观点和态度混为一谈。

然而,开发人员如果具备上述能力就会做得很好。然后,他们就能很好地推进自己的职业生涯,或者在技术轨道上一路前行,先成为高级开发人员,然后是开发负责人,最后成为架构师。或者也可以走上管理轨道,而诚信正直,尊重他人,以及激励和帮助他人实现目标的愿望则是他们在管理轨道上具备的更关键的能力。

原文5 Software Developer Competencies: How To Recognize a Good Programmer,作者:Mohamed Aboelez

来源:51CTO内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯