java中级开发人员技能


容易想到,成为一名优秀的软件开发人员仅需要技术技能。 毕竟,软件开发人员花费大量时间来设计软件和编写代码。 显然,技术技能很重要。

但是,如果您要编写生活软件,则必须能够与其他人一起工作。 这包括您的团队成员,其他同事和您的客户。 为了使事情变得更有趣,这些人中的每个人对您的期望都不同。

当我开始学习软件工程时,我没有意识到这一点。 我猜这是一个普遍的错误,但问题是它会严重损害您的声誉(和职业)。 当我获得第一份编程工作时,我意识到人的技能对于每个软件开发人员都是至关重要的。

那么,什么是人类技能? 人类技能一词的一种定义指出:

人际交往能力是指与他人单独或集体有效地合作以实现特定目标的能力。

让我们找出拥有良好的人际交往能力为何重要的原因。

1.人际关系技巧可帮助您了解客户

客户和软件开发人员生活在不同的世界中。 他们确实有一个共同的目标。 他们俩都想解决客户的问题。

问题在于,软件开发人员不一定会看到许多客户的问题。 例如,客户可能会受到其老板和其他利益相关者的压力。 这可能会影响他的交流。

软件开发人员不一定理解这一点。 相反,他们通过这样的话抱怨顾客:

客户抱怨我们进展缓慢。 他不明白我们正在尽力而为。 完成工作只需要一些时间。

当然,客户很可能是不合理的混蛋。 但是,我认为客户承受巨大压力的可能性更大,这会使他采取这种方式。

如果您了解客户的行为受您看不见(也不应该看到)的原因指导,那么您可以以富有成效的方式对他的行为做出React。

事实是, 对客户的bit骂是没有用的 。 它无助于您了解他的处境或避免与他发生冲突。 实际上,这种行为经常会增加您与客户之间的紧张关系。

这是一场灾难。

2.人际技巧帮助您表达想法

在团队中工作时,您必须了解两件事:

  1. 每个人都有指导其行动的“隐藏”议程。
  2. 激励您的事情不一定激励团队成员。

这意味着,为了传播您的想法,您必须首先弄清楚团队成员的想法和动机。

为什么? 因为

  1. 如果您确定指导团队成员行动的因素,则可以通过对团队成员有意义的方式来表达您的想法。
  2. 如果您了解是什么激发了团队成员的动力,则可以以一种让人着迷和激发动力的方式来表达自己的想法。

每当我听到有人抱怨他们的团队成员对尝试新事物不感兴趣时,我都会感觉到这个人以错误的方式表达了自己的想法。 这是一件可悲的事情,因为如果他完成了功课,很可能至少现在会使用他的一些想法。

3.技能可以帮助您创建更好的API

当我开始编写用于生活的软件时,软件开发人员为用户界面设计师带来了很多乐趣。 我们曾经认为它们的存在仅出于一个原因:用其荒谬的想法折磨软件开发人员。 我(当然)错了

如今,我认为用户体验设计是软件项目中最重要的事情之一。 毕竟,我们编写供人类使用的软件。 确保我们的软件提供出色的用户体验是很有意义的。

那么,这与API有什么关系呢?

实际上很多。 API开发通常被视为一项技术任务。 尽管API的实现是一项技术任务,但API设计不是。 仅了解用户的需求还不够,因为有可能实现满足其要求的不可用的API。 因此, 用户体验设计是API开发的重要组成部分

这与人类技能有什么关系?

Wikipedia将术语“用户体验”定义如下:

用户体验(UX)涉及一个人使用特定产品,系统或服务的行为,态度和情感。 用户体验包括人机交互和产品所有权的实用,体验,情感,有意义和有价值的方面。 此外,它还包括人们对系统方面(例如实用性,易用性和效率)的看法。 用户体验本质上可以被认为是主观的,其程度是关于系统的个人感知和思考。 用户体验是动态的,由于不断变化的使用环境以及对单个系统的更改以及可以在其中找到它们的更广泛的使用上下文,随着时间的推移,用户体验会不断进行修改。

换句话说,如果您想创建一个提供出色用户体验的API,则必须

  1. 实现提供所有必需功能的API。
  2. 了解开发人员如何使用您的API。

拥有良好的人际交往能力将帮助您实现第二个目标。

您不必成为专家(但会有所帮助)

软件开发不是孤立进行的活动。 在团队合作中,软件开发人员必须与客户,团队成员和同事互动。 你不必外向成为一个好的软件开发者,但是你必须能够理解别人并与他们交流

同样,您不必非要成为人类行为的专家,但您对人类行为的了解越多,您将从中受益越多。



参考: Petri Kainulainen博客上的JCG合作伙伴 Petri Kainulainen指出了对开发人员而言技能对于软件开发人员很重要的三个原因



翻译自: https://www.javacodegeeks.com/2014/02/three-reasons-why-human-skills-are-important-for-software-developers.html

java中级开发人员技能