优秀软件工程师的二十大品质:你应该背API

266 阅读2分钟
原文链接: zhuanlan.zhihu.com

本文编译自 My New Book Concept and Top Qualities of a Good Software Engineers

作者:Azat Mardan

(译者注:曾经我以对着文档写代码为荣,最近参加了一些面试,改变了这种看法,正好看到这篇文章,就摘译了过来)

在思考软件工程行业的职业生涯时,我想到的是哪些技能最重要。

和任何职业一样,软件工程需要特定的技能和技术组合。我从事软件工程已经超过 15 年,既培训过白纸一张的新手(在 Hack Reactor),也培训过财富五百强企业的专业人士。

优秀软件工程师最重要的技能不是聪明,也不是其能写出多好的代码,抑或是软技能。

这些年以来,我观察到以下技能会造就优秀软件工程师:

  • Logical thinking(逻辑思维)
  • Pattern recognition(模式识别)
  • Memory(记忆)
  • Reading(阅读)
  • Typing(打字速度)
  • Tenacity(坚持)
  • Thoroughness(思虑周全)
  • Learning fast(快速学习)
  • Social (soft) skills(社交技能)
  • Technical (hard) skills(技术能力)
  • Decomposition and chunking(恰到好处的分解问题)
  • Prioritization(分得清轻重缓急)
  • Ability to focus(专注能力)
  • Initiative(主动)
  • Innovation(创新)
  • Pragmatism(务实)
  • Business alignment(与业务保持一致)
  • Curiosity(好奇心)
  • Courage for change(勇于改变)
  • English(英语,译者加)

一些技能如主动和快速学习能力在任何职业中都很重要。

有些技能需要加以说明:记忆包括记住在什么地方能找到答案、领域知识,知道可以去问谁,乃至类名。

不要低估打字速度快这样看起来很细微的技能。快速打字和(某个编程语言)的类及方法烂熟于心,可以让你节省出更多时间去学习,去解决问题和创新。

如果硬要我选的话,最重要的技能是坚持、逻辑和记忆。记忆又和快速学习、阅读能力重叠。