我的沟通技能会浪费在软件工程职业上吗?[关闭]


40

我进入金融工程领域(在BA Math和BA Computer Science之后)大约5年(20%的分析/编程,80%的交流),并且以与人交流和讨论技术问题(即互动)的能力而感到自豪与团队)。我喜欢我的工作。去白板画抽象的想法和头脑风暴。

但是,由于种种原因,我想将自己的职业生涯过渡到一家技术公司(软件工程),但我非常担心自己会落入陈规定型的编程工作中,而程序员会戴着大大的耳机进行编码。我当然知道这只是一个刻板印象,但我之前(在初创公司)曾目睹过类似的环境,而且让我感到害怕的是,我会迁移到孤立的职业。

我喜欢通过算法进行编码和思考,但是我不想放弃与人的互动。我了解拥有沟通技巧只是一种积极的态度,但是我是通过过渡到软件工程来为自己的职业生涯失败做准备的。我希望听到任何澄清和/或建议。


14
您确实意识到这里的答案可能有点偏颇,对吧?
JB金

2
绝对可以,但是到目前为止,答案是非常详尽的。
瑞安

我希望您意识到您的问题对于像我这样精通编程但由于缺乏沟通部门而被人力资源部门拒之门外的人(而不是获得这份黄金工作...)感到奇怪。沟通技巧绝对是加分项,尤其是在团队项目(scrum +站立会议...)和远距离工作的情况下。您还将发现在超过需求时会进行一些重新调整。有些职责涉及较少的编程和更多的协调。
James P.

绝对不可以。
Louis Rhys

2
不能同时使用口头语言和书面计算机语言表达其想法的软件工程师毫无价值。
Ramhound

Answers:


53

这是编程的秘密:几乎100%的交流。其中很大一部分是与人交流;剩下的就是将您刚刚学到的东西传达给计算机。

后一部分是两者中较容易的部分。计算机完全按照所告诉的内容进行操作,因此您始终可以测试所告诉的内容是否正确。

前者是另一回事。人与人之间在术语,理解,优先级方面的差异使得很难获得正确的消息以馈送到计算机。与程序员和计算机之间的错误通信相比,此级别的错误通信更为普遍。

优秀的程序员善于与计算机通信;优秀的程序员也善于通过一种或多种媒介与人交流。

您看到的那些程序员永远不会从他们的耳机中走出来吗?他们仍然在进行这种交流,无论是通过电子邮件,错误跟踪器,还是使者。这都在发生,否则他们可能不知道该告诉计算机做什么。

是的,您的沟通技巧将为您提供良好的服务。


总体上讲交流很好,但可以将重点放在个人会议上,变得更加私人化和书面化。
JeffO 2011年

如果您真的认为实现建议的两个部分中比较容易实现,则说明您正在与一个糟糕的团队一起工作,或者您正在执行的实现过于简单。计算在实施和讨论实施上花费的工作时间:显然,实施应占总数的2/3;如果不是,则您的经理需要与老板举行特别会议。
Jonathan Cline IEEE

6
@乔纳森:我会在困难和费时之间做出强烈区分。
pdr

3
随着时间的流逝,我了解到与计算机进行通信与对人类一样困难。我编写的大部分代码都是后来被其他人阅读的(一个月后,另一个人可能是我自己,这令人惊讶的是,这并没有降低它的难度)-对我来说,这实质上使我们回到了与人交流的过程中,书面和间接形式。代码是对未来的一封信,编码者是作家。乔伊斯有人吗?
蚊蚋

任何人都可以编写计算机可以理解的代码,好的程序员可以编写人们可以理解的代码。
迈克尔·布朗

23

程序员可能希望对大耳机(当然,不是所有的人都这样做)的代码,但是,这并不意味着他们不能沟通的,它只是意味着他们不希望被打扰的那一刻 -不是他们永远不会沟通。

在与团队其他成员的会议,临时会议,与业务用户,与其他团队等的会议中,言语交流技巧仍然非常重要。

当您给同事戴上大耳机给同事发电子邮件时,书面的沟通能力也非常重要,这样他们以后才能回复您。


1
完全同意这一点。我只是戴上耳机以表示我很忙。
伊凡

7

在我看来,您应该寻找技术顾问的工作。它通常涉及编程,但也需要大量沟通-与客户,同事,其他公司的顾问... OTOH,这还意味着无需实际编写代码即可解决很多技术问题,如果您不喜欢这样做,应该可能会寻找不同的路径。HTH。


2
你甚至是程序员吗?
CenterOrbit

2
我是。我也曾有一段时间担任技术顾问。是什么让您对我的回答如此沮丧?
SL Barth-恢复莫妮卡

作为能满足客户需求的个人技术顾问?
James P.

@James P.是的,我的意思是,那是我当技术顾问时所做的。去客户办公室,帮助他们解决技术问题。显然,开发人员也需要强大的沟通技巧,但是此处其他人对此进行了详细讨论。
SL Barth-恢复莫妮卡

6

沟通技巧对软件开发人员极为重要。某个地方有一个统计信息(可能旁边的统计信息说占所有统计信息的68%是组成的),该统计信息表明大多数软件项目由于通讯不畅而失败。作为可以与软件开发团队进行业务交流(并了解业务)的人,这是一个不错的选择。


6

我坚信,与其他程序员和IT类型相比,我最大的竞争优势是我能够与不懂IT概念的人进行交流。它是IT社区中普通人最容易低估和开发的技能,但它也是最重要的技能之一。

在几乎可以想象到的每个角色中,在某个时候,您将需要与几乎不了解您的工作的人交谈,并且您将需要能够根据自己的工作来出售他们。

您可能还需要与用户打交道,以收集对规范的要求-交流也是一种特殊的聆听方式(加上正确的提示和问题)!

当然,它的确还有另一个好处-良好的沟通能力使在一开始的工作变得非常容易。


4

恭喜你 作为应用程序工程师,然后是应用程序工程经理(FAE Manager),您将拥有光明的未来。

作为这一纯正专业的一部分,您将为I级客户创建PowerPoint演示文稿,并在其上书写“软件堆栈”文本,并将非常复杂的软件工程设计抽象为不同颜色的矩形块,这些矩形块通常是随意排列的。这些演示文稿将由研发最高层的首席软件工程师发起,并渗入到最低共同点的客户心态,然后粘贴回需求文档中,再提交给顶层的主要软件工程师。研发成败的规范。您的奖金之一将取决于对“云”一词的自由使用。


应该注意的是,应用工程师通常比同级别的设计师平均多赚20%到30%。这仅仅是因为,作为更好的沟通者,他们更有能力要求更高的薪水。而典型的设计工程师,作为沟通欠佳的人,通常不需要更多。因此已经设定了标准,App Engrs一直笑到银行,而每天离开工作的时间都比设计师早。我是否提到了昂贵的,价格更高的非办公室午餐,而开发人员则幸运地在会议室吃外卖披萨?
Jonathan Cline IEEE

3

出色的沟通能力会更好。头脑冷静的程序员经常是那些没有被投入到令人兴奋的项目中的程序员,因为他们的经理们可能也不太理解他们。本质上,如果您从不出气,您将被冠以“角落里的怪异家伙”之称。

同样,我们正在努力进行定型工作,并非每个环境都是这样,但是至少,良好的沟通技巧可以帮助您更好地了解业务和周围的人,因此您将有能力应对在您遇到的复杂问题特定领域。

您的沟通量取决于您。对于您来说,很少会出现这样一个团队,该团队充满了精明的程序员,没有人愿意说话,但是如果您不喜欢幽默的话,请准备好快速引入。另外,要为不可避免的社交尴尬的程序员做好准备。总有至少一个。


3

可以说,大多数软件项目的失败不是由于技术问题,而是由于通信问题。编写出色的代码对于软件工程师当然很重要,但是良好的沟通能力对于团队来说是一笔巨大的财富,而且比编码技能更难提高。


2

我目前正在戴着大耳机编程。好吧,我只是在编程。显然我现在正在使用StackExchange ...

的确,许多编程工作都是团结进行的。为了编程良好,您需要重点和隐私。但是,您是否真的认为您大部分时间都花在编程上?您的很多时间都将花在团队会议,战略演讲,散步,思考,讨论等上。实际上,坐在办公桌前打字并不是您的一生。我记得在我的软件工程课程中读过一项研究,即团队中最好/最有生产力的程序员是外向的程序员,而不是内向的程序员。

好的程序员可以与他们的团队进行良好的沟通。从技术主管或经理那里获得并理解需求通常不是一件容易的事。需要良好的沟通能力来阐明您的任务以及与团队进行沟通。如果您逐步升为技术主管或经理,则沟通技巧对于将团队团结在一起至关重要。

我也是一个喜欢外向的人。首先,我不得不承认,我发现编程工作中的团结程度有些令人沮丧。我还是采取了一些措施使工作更加社交化,主要是:1)拒绝独自吃午餐2)与朋友一起去健身房/篮球休息

编程工作不应该是反社会的。


2

沟通技巧绝对不会浪费。即使您花费80%的时间编写程序代码,也需要清楚代码的功能。必须与您的客户(或项目负责人)进行有效的沟通,以确保您的工作不会浪费,并且实际上会产生所需的结果。此外,您将能够向不熟悉编程的人员更轻松地解释您的工作,设计中的潜在问题,更简单的实现等。最后,在对用户交互软件进行编程时,沟通技巧将对设计用户界面很有帮助,该界面以易于理解的用户友好方式获取正确的信息。它还将帮助您从用户那里获取正确的信息以执行工作。


1

我同意这里的每个人的观点,他们认为交流是计算机编程中的关键。老实说,我认为您将成为一名出色的首席程序员或更多的“软件工程师”类型。我最初是在一家公司中担任一般IT职务,一旦能够证明自己的编程技能后,我便转而从事程序员工作,因为我非常社交和面向团队,现在我是两个项目的首席程序员。您会发现,您在编程链上获得的地位越高,白板和解决问题的能力就越大。

如果您的个性具有“领导”特质(这就是您要暗示的特征),您将很快升至最高职位。只要提供您所在的公司,您就能以这种方式成长。

社交技巧,解决问题和良好的编程往往比您想像的要少。雇主为此谋杀。我认为您在正确的轨道上。只要保持良好的工作!


1

我同意所有其他人的观点,他们说软件开发中有很多交流,并且我还要补充说,即使编写良好的代码也需要良好的交流技巧。

编写正确的代码很重要;可以说编写其他人可以理解的代码更为重要。如果您的代码包含一些错误,但是编写方式使我可以轻松地了解发生了什么,那么对我来说找到并修复这些错误就不难了。如果您的代码是完全正确的,但是以不确定我理解的方式编写,那么我就不能确定它是正确的,以后我可以正确修改它的几率要低得多。


1

当然,良好的沟通很重要!我要集中精力成为一名优秀的老师。真正有效的程序员可以通过15分钟的电话来解释花了多年时间才能理解的东西的基础。在同一对话中,您必须以非技术术语解释细节,以便热线另一端的人员可以做出有根据的决定,这对于他们的长期业务来说是最佳的。


1

这取决于你去哪里。我知道一家定量贸易公司,您会在白板上花大量时间与博士进行头脑风暴。我知道一家著名的咨询公司,在这里您也会做很多沟通,但是与没有技术背景的人进行交流...我知道一家大型非软件财富100强公司,在这里您也会做很多事情交流,但主要是在玩政治。

OTOH,许多初创公司和软件产品公司都需要人员进行平视编码。当然,您传达了一些信息,但是起床去介绍可以卖给您公司的演示文稿与与其他编码员交谈有很大不同...

沟通真正发挥作用的一个领域是销售工程/技术咨询等。在这里,如果您是真正的优秀沟通者(而不仅仅是社交不尴尬的软件工程师),您将获得付了不错的钱。那里也有一些销售


0

哦,嗯,​​从外面来的人的角度来看……我不能像其他所有人一样真正地说编程就是沟通。

这不是真正正常的一天基于相互交流一天的尊重利益,以及木桩 ......它更多的是心灵的阅读,那种护理,有些争论肯定参与。谈判也很多,但不是您可能习惯的那种谈判

您并没有真正向程序员出售sh-t,您必须对它们进行游戏,或者用大量证据和事实诱使他们。虽然这可能看起来公平关键任务相关的问题,它应用到小滋扰没有人,甚至没有提出它的人,真的应该关心过,并... 欢迎来到地狱通信

如果您对外界 (销售东西/交易完成/握手世界)有所了解,那么很难适应各种程序员在小隔间中遇到的那种(有些少年,有些学术)的交互程序员。

课程的业务部分将被大量浪费,除非您能找到一种比than之以更快地爬上管理阶梯的方法。


0

沟通技巧很有帮助,但技术能力胜过开发人员的一切。

作为一名应用工程师,您可能会更快乐,也就是说,一名帮助客户适应和利用“低调”开发人员生产的软件产品的工程师。这样一来,您就可以使用软件,但是大部分时间都在聊天。


0

由于您已将编程与对沟通(与人讨论)的解释分开,并且希望80%的时间与人交谈,因此编程不是一个好选择。也许如果您遇到这样的情况,您可以成为专职分析师,架构师,经理或客户联络员(您可以与客户和程序员交谈,那么您就是解释者(抱歉,有些Office Space幽默)。

在项目的某些阶段中,您可以花一整天时间在董事会上,但是最终您必须编写代码。这是一种沟通形式,但并非您所描述的那样。也许在结对编程商店中,您可以在编写代码时聊天很多。大多数时候,您需要专注于键盘。戴着耳机意味着周围有太多没有耳机的人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.