本文编译自 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(英语,译者加)
一些技能如主动和快速学习能力在任何职业中都很重要。
有些技能需要加以说明:记忆包括记住在什么地方能找到答案、领域知识,知道可以去问谁,乃至类名。
不要低估打字速度快这样看起来很细微的技能。快速打字和(某个编程语言)的类及方法烂熟于心,可以让你节省出更多时间去学习,去解决问题和创新。
如果硬要我选的话,最重要的技能是坚持、逻辑和记忆。记忆又和快速学习、阅读能力重叠。