在面试初级软件工程的职位时,我的编程技能大多是理论的。这些面试仅仅是根据我的编程技能来评分的,大多数面试者都没有进行行为面试。
原来编程是最重要的。凭借几年的行业经验,我的看法发生了变化。虽然编程语言熟练程度或调试的专业技能很重要,但开发人员需要擅长的不仅仅是编码。
这五种关键的软技能可以让软件开发人员脱颖而出。
1. 有效的沟通
你能很好地向别人解释概念吗?
构建软件是一项团队运动,而这个团队是一个由具有不同经验、信仰、偏见和知识的人组成的。
如果你想要创造一个好的产品,你必须与他人合作。毕竟,正如康威定律所解释的那样,您设计的系统将模仿您组织的沟通结构,团队成员之间的沟通不良将导致设计不良的产品。最好的软件开发人员会与非技术人员或仍在学习的技术人员交流复杂的技术概念。如果你能与不同角色的人交流并教其他人,你将成为一名出色的开发人员。
2. 同理心
你是否设身处地为用户着想?
作为一名软件开发人员,我总是被产品的目的所驱动。当然,我喜欢学习新技术或探索最新的开发工具,但为何我们的工作如此重要?
最优秀的开发人员关心他们所构建的软件的目的,并设法理解他们所帮助的人。有一种常见的产品管理方法叫做“同理心映射”(Empathy Mapping),它专注于清晰地概述用户是如何思考、感受以及如何与产品交互的。通过了解用户的行为和感受,我们能够构建一个他们真正会按照预期使用的产品。
通常情况下,产品是在没有提前与用户沟通的情况下构建的。即使是团队中的开发人员,理解用户的想法也会对整个产品产生问题和改进。想要更多地了解用户的想法?参加用户研究会议,看看你的应用是如何真正被利用的。
3. 创造力
你在寻找聪明的解决方案吗?
任何软件开发人员最大的超能力之一就是他们的google能力。当一个不可能的问题出现时,创造性开发者知道解决方案可能已经存在。当它不能解决时,开发人员并不害怕头脑风暴一个新的解决方案。
解决问题需要创造力。作为一名软件开发人员,不应该盲目编码去获取解决方案。相反,您必须探索各种可能性,权衡不同的技术和您的团队的技能。在获得了一些了解存在哪些技术的经验之后,将创造性地这些解决方案组合在一起就变得更容易了。
作为一个全职的软件开发人员,你不能失败——如果你的代码中存在问题,一定有相应的解决方案,你会找到它。这将是对你创造力的真正考验。
4. 可靠性
你的队友信任你能把工作做好吗?
我的桌子上堆满了便利贴。我每天花十分钟浏览我的待办事项清单。如果有人需要我做什么,我会写下来。
在一个团队中,人们会依靠你来完成工作,尤其是当你承诺完成一项任务时。如果你是可靠的,没有人会检查你的进步,因为你已经证明了你可以承担责任。
领导者希望软件开发人员不需要任何保姆。他们希望直接下属同意做某件事,然后履行承诺。不管你是否相信,很多开发人员都不可靠所以做一个可靠的开发人员会让你成为新任务和新机会的首选。
5. 好奇心
你问的问题够多了吗?
有些人从不问问题,有些人却总是问问题。我曾经就是不常问问题的人之一,,尤其是在一大群人面前,问问题会让我感到焦虑。然而,随着我职业生涯的发展,我发现问问题是一件受益良多的事,因为这些问题为你和回答问题的人提供了学习的机会。
事实上,当我回答问题时,我总是感激对方提出了这个问题,因为我在教别人的时候能够达到更好的学习效果。
在科技行业,总是有更多的东西需要学习。好奇的开发者是那些质疑现状、探索新技术、热爱学习的人。
提出问题来挑战以往的做法是加速团队前进的好方法。提问是提升你自己、你的团队和你的产品的机会。好奇的开发人员是最能推动改变的人。
作为一个开发人员,你拥有的应该不仅仅是你的技术技能。