我们只需4/30即可调整Futureestack注册。条款和条件适用。 现在注册

非常成功的软件开发者的10个习惯

10分钟阅读

经过凯文凯西

想象一下,你正在比较两个软件开发者的简历:Dev A和Dev b。两个候选人都拥有几乎相同的背景和技能:语言、框架、平台、方法、行业等等。从表面上看,他们实际上是同一个人。然而,有一些事情可以表明,Dev A在职业生涯中可能比Dev B更成功。这是如何计算的?

事实证明,技术技能和经验只会让您到目前为止。高度成功的软件开发人员还培养了将它们与人群分开的关键行为特征和心态。我们向各种软件专业人员询问了关于习惯和特征的习惯和特征,将伟大的开发人员与其余的包分开。他们提出了10种习惯,预测成功:

1.您写入清洁,可重复使用的代码,更容易读取和测试。

男性软件开发人员有很多方法可以编写清洁代码,更容易重用,阅读和测试 - 无论方法如何,都是高质量的软件开发的日益关键的特征。安德鲁·麦基,英国基于软件开发经理谜数码,提供了这样的起点:为每个功能只指定一个目的。

“当你开始编码时,常见的是在代码行后开始写入线,进入变大而更大的函数,”Magee说。最初可能似乎更容易,但它会产生几个问题:您的代码变得更加难以读取,更难重用,更难测试。“一个函数应该只做一件事和一件事。如果它不止一件事,它缺乏焦点。“

Magee还建议为变量和函数分配清晰、有意义的名称——如果遵循一个函数、一个目的的经验法则,这应该会更简单。“作为一名开发人员,你花更多的时间阅读代码而不是编写代码,”Magee指出。“重要的是,当你写完代码几周后再回过头来看它时,你可以快速而轻松地理解它要做什么。”

2.您了解您的代码如何有助于推动整体业务。

有很多人可以编写代码,例如,公司的新移动应用程序。较少的大图片愿景需要较少为什么该公司首先正在构建移动应用程序。伟大的开发人员“广泛地了解公司在商业水平上运作,讲业务”语言和大师将商务语言转化为技术,反之亦然,“软件工程副总裁截图说:询问申请。同样,斯蒂芬补充说,伟大的开发人员可以与业务条款的技术价值交谈 - 换句话说,根据公司其余的,包括C-Suite,了解。

Jose MiguelPérez.,首席技术官MarketGoo,对这个伟大开发人员的这种特征分享类似的观点:“他们寻求了解一个宽阔的项目的目标,目标和影响,超越他们在其上发挥的部分。”

以下是更好地了解您对大图片的代码的贡献的关键步骤:专注于用户或客户。“成功的Devs对他们提供的东西负责 - 不仅仅是存储库,而是对用户来说,”新的遗物开发人员倡导粘土史密斯。“忍者Devs搬运着寻呼机。”

3.你听的比你说的更多 - 或者你至少听之前你说。

软件开发人员同事“如果您在与其他开发人员的办公室,请先听,然后发言,”开发商的开发人员负责人克里斯托弗门迪说evus技术。“这是学习的最快方式。”

这需要谦逊,尤其是当你认为自己是房间里最聪明的人时。MarketGoo的Perez补充道,优秀的开发者“有能力也愿意承认自己的未知”。此外,他建议不要程序员,喷出一堆技术术语而不是承认他们可能尚未知道对特定问题的答案。

你是纪律的。

人才,除了可能的数量,不是一切。实际上,人才或技能只是成功的公式的一部分。“纪律是另一部分,”Gady Pitaru,首席技术官獾地图, New Relic的客户。“一个没有纪律的高技能软件工程师就像一个没有地图的老水手:真正擅长掌舵,却找不到岸。”

Pitaru将一个自律的软件工程师描述为

  • 没有牺牲速度质量的人。但是,当他们绝对必须,“他们了解他们正在创造的技术债务,并争取将来支付给予。”
  • 他们接受过程是因为他们意识到这些过程能够帮助开发者获得成功。例如:“他们在代码评审期间充分出现,并鼓励建设性的sprint回顾。”
  • 了解开发工作的重点时间价值的人:“他们通过使用来弄清楚以确保他们得到它的方法番茄汤,阻挡日历时间或戴耳机,以命名几个例子。“

你能够深入关注正确的事情。

女人的软件开发人员New RelicRuby代理软件工程师Katherine Wu分享标志着高度成功开发者的一种特定形式的原则:专注于特定项目的共同目标,而不会因不切实际的想法而偏离目标。

吴说:“我认为这是一种非常常见的习惯,或者在特定技术实施的边缘案件中包裹。”她描述了“如果我们可以做x,y和z?” - 当项目的实际目标是“a,b和c”时,这是“如果我们可以做x,y和z,这不会很好。这是工程师的自然思想过程,可以确定,但有时需要重新定位一个。“当你退回一点点时,你可能会意识到你对某些对每个人都在努力实现的更广泛的目标来说,你对某些问题的努力。”

吴说,能够期待能够向前期待,这肯定很好,只要你能够重新分开你的重要性知道你需要完成与你有什么关系可能需要完成。部分是确保您与团队其他部分相同的波长。作为新的遗物的史密斯笔记,“成功的设计明白创新是一项团队运动。”

6.您是一个持久的问题解决者。

“顽固 - 有些问题很难,”门迪分手了。“有足够的时间和研究总有一个解决方案,并找到解决问题的解决方案是最好的感觉。”

7.你在网上得到陌生人的帮助。

男性开发者不要骄傲混淆持久性。成功的DEVS不会让他们的EGOS将编程问题转化为不必要的生产率漏极 - 尤其不是在在线方面可以随时获得解决方案。有时,要求帮助 - 是的,Google Counts-是解决解决方案的最有效的第一步。

“擅长Googling,”Mendy建议。“关于您将遇到的计算机编程中的每个问题都已解决。在某个地方有人遇到了你所拥有的同一问题,他们经常发布他们的解决方案。“亚博直播平台

不要认为在线获取帮助只意味着复制和粘贴代码堆栈溢出然而,线程。New Relic开发商提倡Tori Wieldt他指出优秀的开发者会花时间去理解他们在网上找到的任何解决方案的内容,原因以及方法。她建议:“研究一下这些代码的作用,以及它为什么能解决问题。”“你可以剪切和粘贴,但如果没有背景知识,它可能会反过来困扰你。”

8.您超越技巧,实现专业知识,但不一定掌握。

当询问招聘Dev Talent时,Stephan在一个人的先前经验中寻找专业知识,并且不需要在直接映射到他试图填补的工作的地区。“如果一个人以前迅速建立了专业知识,那么这个人可以再次与其他技能和技术一起做,”他说。

Pitaru在Badger地图解释了技能和专业知识的差异:“一个好的软件工程师可以编写Django数据库查询,但是一个高技能的软件工程师将知道如何最有效地写入该查询,以便一行代码尺度。”

不过,要区分专长和精通。后者意味着你没有什么可学的了。曼迪说:“不要认为你能掌握任何东西。”“如今的发展只是持续教育。”

你对新事物开放。

软件开发人员团队另一种持续教育门德的先决条件描述了上面的:对新事物开放并根据需要将它们拥抱。

“非常成功的软件工程师不断地学习行业中的新趋势,并将它们直接应用到他们的工作中,”Pitaru说。“不断有新的语言、框架和方法涌现,成功的软件工程师知道如何过滤和筛选能够帮助他们继续做得最好和成长的东西。可以说,对于一个成功的软件工程师来说,最重要的技能是知道如何获得新技能。”

的确,正如Pitaru所说,学习并不会因为完成计算机科学学位或编程训练营而停止,也不会因为听到“你被聘用了!”(如果你担心这正在发生在你身上,也许是时候来一场重新启动)。

“开放思想。你可以做的最糟糕的事情是专注于一种语言或工具,“Mendy推荐。毕竟,“如果你拥有的只是一个锤子,那么一切都开始看起来像钉子。”

你很舒服,不舒服。

新遗物的吴说,她对正在进行的教育和技能发展的不断发展的方法是由书的启发深切的工作加州纽波特。一个关键的引言:真正的技能发展需要“能够深入了解一个话题,并面对它的困难领域,并坚持即使在那些挫折的时候,这样你才能真正探索,真正理解你面前的东西。”

这对于所有原因来说,这可能是艰难的,包括所有这些东西 - 电子邮件,松弛,会议等 - 这通常会让我们感觉忙但不一定有助于吴武的深刻智力努力。例如,吴曾注意到她正在努力了解一个复杂的话题:她的注意力开始漂移。“我可能正在阅读一篇技术博客文章的中间,而字面意思是在一个段落的中间,一个关于一些想法的句子中间,我的大脑几乎反叛 - 我想知道在Facebook上是什么?”

作为回应,吴把她从新港的书中学到的东西付诸实践,留出一段时间,比如两个小时,远离干扰,专注于一个单一的目标。她把它比作一个冥想练习,撇开那些块启用的时间:“注意到敦促我的注意力离开,轻轻的将它回到手头的任务,这样我就可以通过斗争和识别的好,这部分我不明白吗?我怎样才能找到答案?我需要做个实验吗?我是否需要编写一个玩具项目并将其与此联系起来?我需要找个专家给我解释一下吗?’这包括努力在艰难的问题上取得进展。”

要清楚,关闭电子邮件几个小时不会让您成为更好的开发人员 - 这只是一种专注于真正进步和改进的机制。为了变得更好,她说:“你必须努力努力对你很难的事情。即使您是无分心的,并且在一遍又一遍地构建同样的简单应用程序,也不一定会延长您技能的边界。如果你没有故意伸展技能的界限,你可能不会试图在能够帮助你真正成长为技术贡献者的方向方面进行结构。“

一定要检查一下8种方法让你成为更好的程序员