2018-04-17 19:11:13 +0000 2018-04-17 19:11:13 +0000
173
173

处理同事的反应

我是在西欧一家大公司做软件开发人员。我有2年的行业经验,还有2年的自由职业者兼职做web app。总的来说,我从前端到后端的软件流程都有过。

不过,我不是上大学学计算机专业的。我是一个自学成才的开发者。这种不正规的路线,在我的一个同事(CS专业毕业的)那里引起的反应不大。每当我们坐下来休息或讨论一些任务的时候,她总是开始解释,好像我是一个没有任何编程技能的初级开发人员。昨天,她从字面上开始向我解释什么是JSON,以及如何操作它。我一点也不介意技术上的讨论(这是我的工作),但我觉得这有点让人反感,我不知道该如何应对。

另外,通过社交媒体,我注意到她对自己的CS学位非常自豪。当然,这确实是一个非常了不起的成就,但她似乎莫名其妙地被我作为一个自学成才的开发者,而没有那么多大学的威望等等,她的存在感让我感到了挑战

我的问题是,如何应对这种类型的人的反应?如果我继续听下去,就意味着我真的不懂编程的基本概念。如果我说出来的话,有可能会被贴上不喜欢批评的标签

PS。我通过了这个工作的技术面试,以及之前的工作。

Respostas (20)

275
275
275
2018-04-17 21:51:17 +0000

FYI,大多数大学不教JSON这样的东西。他们教的东西,比如深度第一树遍历,理论上你可以应用于创建你自己的JSON库,但比这更实用的东西,几乎每个人都是自学成才或在工作中学习的。解释像JSON这样的实用技术,即使是大学毕业生,我们估计也会偶尔需要做的事情。社交能力比较强的人,会先问你是否熟悉。如果他们不问,你可以直接打断他们,告诉他们。

71
71
71
2018-04-17 19:20:23 +0000

在技术讨论中,你没有理由不指出你的同事提供了多余的信息。

嘿,同事,让我们跳过那些琐碎的细节,进入问题的核心。

她可能只是倾向于过度解释或偏离主题,但在与其他开发人员互动时,你要培养一个好的技巧,就是有礼貌但又坚定地保持互动简洁明了,紧扣主题,这样大家的时间就会被有效地利用。

37
37
37
2018-04-17 21:37:53 +0000

平心而论,我的资历还算不错,以前的一个主管也经常这样对我做。我上了一门很深的CS课,上过数据库设计的课,做过各种数据库驱动的应用,专业工作多年,他还敢于(当着大家的面)给我讲解初级数据库设计原理,

但我不确定他是故意的。事实是,设身处地的为别人着想,站在别人的角度,站在别人的层面上说话,是需要很大的精神力的。你经常看到这样的情况:专家有时会向你抛出一些无意义的行话,或者别人会对你低声下气。但他们不一定是故意的—-他们只是没有花足够的精力去琢磨如何做好沟通。

以我的经验来看,这是做CS辅导最难的地方。我不仅要深入地理解教材,还得花很多脑力去揣摩学生们的想法。但并不是每个人都会在随意的交谈中进行这样的练习。

所以不要急于把它归结为恶意。这很可能只是他们自己的社交尴尬。我会告诉你如何不把它放在心上,但我自己也还在努力。我个人也受不了……

20
20
20
2018-04-17 22:06:28 +0000

这个和其他的答案差不多,但是有几个具体的例子。

**如果你是在求助/你们两个人在讨论手头的任务*

当我在另一边的时候。解释的时候,真的很难知道别人有什么背景知识,

解释不足和解释过度都不好。在你的例子中,在她太过深入地解释JSON之前,打断politely),让她把这个从她的 “需要解释的事情清单 "中剔除。我不知道的是如何在C#中将其反序列化为对象。

或者在讨论中。比如说,如果有人提出要用JSON作为格式,而你有顾虑。你还是会打断,因为你想快速进入相关的话题。

我对JSON很熟悉。我认为XML可能是一个更好的选择,因为我们的上游服务已经期望用XML格式。

如果你因为不做一些事情而被人指责。那么你也会遵循同样的模式

她:你可以用X,X是个 -

你(打断)。是的,我对X很熟悉,我用Y,因为X有这个缺点。我也考虑过Z,但也决定不选它。

她:那A呢?啊,是的,我也考虑过A。

她:如果你把A和Z结合起来,就可以解决REASONS。是的,这可能是可行的。

我通常用 "是的,"是的,我知道,"是的,我知道,"的短语,这样就能减轻压力。只要确保你是的时候,你是同样的开放和诚实。

如果你在聊天时一般*

现在我们进入了礼貌的谈话礼仪领域。这不是我的专长,但我是这样处理的。

在很多情况下,我只是点点头,等他们说完了再说话。之后我会说一些类似 "啊,我对JSON很熟悉,我在X中用过。'我在X中使用过。

如果我有地方要去,没办法,我只能打断他们的谈话。这在一般的谈话中比较难。但基本上我只是在他们说话的时候说'嗯',然后点头。只要他们稍微停顿一下,我就会说上一段的那句话。

告诫*

告诫

我就会告诫以上所有的事情。有时候,无论如何,听听是件好事,因为你可能会发现一些你不知道的东西。事实上,我经常要求别人解释概念,就像我对这些概念一无所知一样。

13
13
13
2018-04-17 21:16:38 +0000

免责声明:我不是软件开发人员

我建议你避免做出她故意居高临下的假设。很有可能是她认为你没有受过高等教育意味着你不懂基本的编程概念,但你没有证据证明这一点,所以你最好不要这么想。我经常在计划会议中解释基本的概念,因为这有助于我思考某些问题,并确保每个人都在遵循我的思维过程,而不是因为我认为房间里的其他人都是白痴。

除了@Link0352和@JeffO的出色回答,在可能的情况下,我建议把对话轻轻地引导到讨论的水平,让讨论更有成效。

当然,我们可以操作JSON,但这可能会导致问题X。如果是这样,我的回答就不太适用了。)

11
11
11
2018-04-18 09:00:29 +0000

补充一下其他答案,我的一般解决方法是:

当他们解释完后,翻桌。开始解释最近的话题更深层次的知识,或者解释另一个很明显的比如

别人的。Json对………..,你可以做……

(微笑/友好)。恰恰是这样! 我还喜欢Json的地方是,你可以………..

或者如果你想有点小气的话

别人:Json是个很好的工具,你可以……: Json是一个很好的………..,你可以做…… *你**(微笑/友好)。没错! 你听说过XML吗?这是一个[很明显的解释]。

10
10
10
2018-04-19 06:52:19 +0000

来自另一位女开发者

我是一名大学学历的开发者,已经工作了一段时间了。我不得不说,我对自学成才的开发者除了佩服,没有什么可佩服的。说实话,有很多东西是我努力学习的,我真不敢相信你们居然能自学成才。我喜欢和那些自学成才的人讨论,因为你们通常比大学里的人有另一种技能。这让人很受启发,也很厉害。

至于那个开始向你解释JSON的女士,不要多想。我们经常会遇到这种情况。那些好心的男人,最后却因为我们是女生,而且我们在这个领域里是不常见的,所以他们觉得要多帮我们一点,哪怕有时候会变得有点侮辱性。我很幸运,在我工作的地方,除了尊重之外,我没有遇到过什么,但我也听过一些恐怖的故事。

她可能并没有什么不好的意思,但这很可能只是她自己的不安全感在一点点地闪过,也许她觉得她必须通过教你一些东西来证明自己。

10
10
10
2018-04-17 22:37:25 +0000

我建议你要有耐心。我见过一些训练有素、有几十年经验的人在讨论一个编程的情况时,他们从绝对的原点1开始讨论。那就是我们需要在软件中表示一个现实世界的实体,建立了一个数据结构来作为这个表示,这个数据需要通过网络传送到另一个系统,等等。

我从他们的做法中推断出的是,通过花几分钟的时间,尽可能多的明确假设,建立一个共享的推理链,就为共同工作打下了坚实的基础。

可能不一定是这些解释是对你的不尊重或反感(或者是试图向你证明她的学识),但可以将其转化为一个机会,让你站在同一起跑线上,分享观点,让工作关系变得更好。

如果有一次失控了,或者你真的觉得有必要说点什么,我建议问一个问题,说明你的理解极限。"

“JSON是一种将数据结构表示为文本的格式。”

“哦,JSON,我刚才看了一下不同的实现,你知道有没有用lexyacc构建的JSON解析器的参考例子吗?”

8
8
8
2018-04-18 08:13:26 +0000

打开你的思路,

大学确实教给你一些书本上找不到的技能(除了大学课本之外),如果你是自学成才的话,你很可能会缺乏这些技能。我是怎么知道的?我学过,但有些领域的部分不在我的课程范围内,我是自学成才的。所以我知道两边都知道。

她可能有东西要教你,但你们两个人都没有意识到那是什么。她认为她需要解释基本的概念。这可能是因为她居高临下、社交尴尬、傲慢、自大、有自卑情结或其他任何你想相信的东西–也可能是因为她真的想支持你。然而,一旦你意识到你已经知道她想解释的是什么,就感谢她并解释说你已经明白了这一点。问她还有什么其他的东西,你渴望不断地学习和改进。这就是自学成才的好处。你明白学习是一个不断学习的过程,不会因为考试或硕士论文而结束,

利用这个优势。向她学习,那只能是对你有好处的。

总有一天,会有你知道而她不知道的东西。用一种友好的、不卑不亢的方式教她,你们两个人可能会有一个辉煌的、相互支持的工作关系。

6
6
6
2018-04-18 16:53:39 +0000

作为咨询师,我多年来也多次看到过这样的情况。答案很简单。这是一种应对机制。

这是两种情结之一,也可以是两种情结的结合。

都是一种防御机制。

如果你是这种行为的唯一目标,那么主体很可能是受到你的技能或能力的威胁。这可能是简单的,就像对自己的学位过于骄傲一样。没有人可以免于成为众矢之的。比如说,我见过学位较低的人攻击学位较高的人,比如工程师。这是一种水平机制,试图通过降低另一个人的地位来提高自己的自尊心。

虽然你可能不想因为这样的侮辱而攻击别人,但这种行为可能会对你和其他人造成危险,尤其是在职场上。原因是,这种交易的设计不仅是为了表示优越感,而且还想寻求一种回应,以强化这种优越感。

在这种情况下,犯罪者似乎已经采取了家长的角色。只有成人的回应才行。父母或孩子的回应,就意味着你输了。这可以通过阅读我没事,你没事和[人们玩的游戏](https://en.m.wikipedia.org/wiki/Games_People_Play_(book)]可以看出。这两本书都是建立在事务分析法的基础上。看完第一本书会有帮助。这本书相对简单易懂,教你如何认识这三种状态,以及如何应对。这需要在当下进行打击。

作为参考,交易分析不是流行心理学。它是一个真正的工具,应该被理解。我在我的咨询生涯中使用过TA,对我作为IT顾问的成功有很大的意义。它让我在房间里宣称自己是成年人,提出自己的观点,并希望能为我的解决方案提出有效的案例。通常情况下,权力被夺走了,而这个人现在是防守的人。像这样的战斗往往是关于权力的争夺,要么是权力的丧失,要么是权力的获得。其目的是通过最大限度地减少损失,将威胁降到最低。例如,在一家全球性的公司里,微软的邮件已经老化,不得不更换。负责的员工紧紧握着缰绳,将所有的服务器集中在一个地方进行管理。对于一家全球性的电信公司来说,这是一场灾难。在日本的人必须连接到弗吉尼亚州的服务器上才能读取电子邮件。负担是巨大的,电子邮件在24小时内无法送达。这位员工对不懂也不知道的技术感到恐惧,对分布式全球系统的工作感到担忧。解决方案是通过培训、测试安装、支持远程系统,让他认识到自己在组织中仍然扮演着举足轻重的角色。他并没有失去权力,而是获得了权力。所有这些都是通过TA来完成的。

好的。很好,很好。我的简短答案是,了解这三种交易类型,并学习如何呈现出成人的姿态,以及如何认识到你所面对的交易的真正目标。你可以在所有人都没有意识到的情况下,快速、轻松地将问题短路,以一种无声但有效的方式将自己定位为领导者。整体效果就会显现出来。

4
4
4
2018-04-19 09:50:28 +0000

大多数的答案在这里讨论对抗或同情你的经验。我不相信对抗是不值得你或其他开发者的时间。

相反,我建议你用一些社会工程的方法,这也是本杰明-富兰克林(Benjamin Franklin)经常使用的本杰明-富兰克林效应:

寻求帮助,寻求建议,寻求建议。求助是一种亲密和信任的表现。

这可能看起来是反主动的,但如果你对一些棘手的问题提出一些尖锐的问题,会在潜移默化中使对方承认你了解基本的主题,从而给予你更多的信任。这也会让他们觉得你更信任他们,因为你为这个 “困难 "的话题来找他们。

这是一个快速的非对抗性的解决方案,在大多数情况下都会奏效。

3
3
3
2018-04-21 17:08:02 +0000

IT是一个宽广的领域。

假设一个人有4年的经验(或40年的经验)就一定要懂JSON,这对你的同事来说是相当愚蠢的事情。

更糟糕的是,你可能只是部分地学习了JSON的使用方法(例如,通过修改某人的工作,而他的工作不够仔细);在没有确保你知道JSON在你的组织中是如何使用JSON的情况下,就给你分配一个JSON的工作,可能会导致一个不合格的产品。例如,也许你的代码不仅要工作成功,还要在出错的情况下显示出合适的信息。

考虑到你是个新手,你的同事要确保工作正常进行的手段之一就是复习你的知识。上面描述的方法是可用的方法之一,她也可以选择向你提问,或者等你的任务完成后再复习代码。我不知道你是否愿意选择其中的任何一种。当然,在她确定你能胜任这份工作之前,让你去做是有风险的(对你、对她和企业来说都是如此)。

注意,以上这些都与你没有学历认证无关。技术面试只是对你能力的一个非常肤浅的评价,它告诉你能写出好用的代码,但并不能说明你能写出好的代码。

还有很多方面很重要,但不能轻易考察:

–理解问题的能力。

–阅读别人的代码的能力。

  • 写出好的结构化代码。

  • 写出好的结构化代码。

  • 使用工具的良好实践(版本控制、自动化测试)。

而对于 “学位与自学 "的问题,接受这个问题,没有学位意味着你的对话者可以少做一些你知道的或不知道的假设1。特别是关于上述解释的几点(很多自学的人根本就不知道这些因素的存在,只是去了 "我想做一个做X的项目 "2)

有学位的人可以证明最起码的知识基础3,没有学位的人更强,你的对话者可能会不确定你的水平直到你证明自己。所以,如果你的对话者选择了重复检查你的知识是否足够完整,以完成手头的任务,不要防备。

TL/DR*给那个程序员一些时间,让她自己检查你的能力。但学位保证了他至少应该知道这个概念的含义。

2现在我正在修改一个程序完成的程序

3事实上,这基本上就是学位的效用。

3
3
3
2018-04-18 18:43:02 +0000

你对她的行为的解释是,她的行为是因为她把你当成了没有经验的人。许多其他的答案都给出了对她的行为的替代性解释的建议,也有的给出了如何关闭这种行为的建议,在不知道她为什么这样做的情况下,这可能只是不必要地给这段关系带来额外的压力。

要知道她为什么这样做的唯一方法就是和她谈谈。理想情况下,你可以直接问她,让她知道你为什么要问,并向她保证,如果你不明白的地方你会问。我注意到,当我们在店里聊天的时候,你经常会陷入我认为是标准话题的相当基本的解释中。

这是为什么呢? 我希望是因为X或Y(从别人的解释中给出一两个比较慷慨的解释),但经常感觉我给你的印象是我需要这些东西的解释。如果是这样的话,我们似乎在浪费宝贵的时间,而这些时间本来可以更有成效地讨论所需的功能。如果你不确定我对某个话题的经验,你可以问我对这个话题的了解,如果讨论涉及到我的经验之外的东西,相信我会问的。

我一开始不会在她在讲解的时候打断她进行这种讨论,因为这样做似乎更容易让人觉得她是在反动或防卫。 他们都有至少十年(或二十年)的行业经验,而且在他们的职业生涯的不同阶段,都曾经做过web项目。他们只是从未使用过任何框架或需要技术的地方。

在同一个项目中,我们有一些与我们一起工作的业务人员交替使用相同的两三个术语,指的是两个密切相关但(事实证明)不同的主题。一个特定的术语是指哪个主题,取决于他们中的哪个人在什么情况下使用的。实际上,我们花了几次迭代后才明白了这一点。在这之前,我们从来没有明确地指出,甚至没有明确地指出有不同的主题。最近在讨论一个错误配置的应用程序时,我的一个团队成员花了半个小时的时间对我们的配置框架提出了错误的修改建议,以防止选择错误的默认环境,而问题是应用程序的个别设置有错误的默认值_。(框架允许在当前环境没有被覆盖的情况下设置默认的回撤值,应用程序把应该是只生产的值设置为默认值,所以当测试环境没有覆盖的时候………..)

有什么用?几乎任何一个专业领域都很宽泛,对于任何一个人来说,无论经验水平如何,都不可能面面俱到。每个人的知识和经验都会有不同的漏洞,而且很可能会有亚文化和专业的专业与行话冲突。你不能只是对别人知道什么,或意味着什么,或他们为什么要做某些决定做出假设。

根据我的经验,未说明的假设可以(并最终会)是非常昂贵的。在这种情况下,你假设她这样做是因为你是自学成才,和/或(如果你的假设是正确的)她假设你需要指导,这对你们的工作关系造成了伤害。

2
2
2
2018-04-19 07:30:11 +0000

不管有没有学位的开发者,在职场上都要受到同等的尊重。

我看了上面所有的回答,大部分都是指出她是在仁慈,而你是想多了。

在我看来,是时候了,你需要展示一下你的技能。也许在她的认知中,学位是软件开发人员的标准,但根据我的经验,从事实时项目和解决关键场景的工作才是一个 “软件开发人员"。不要吹牛,要主动参与到技术讨论中去。”

为了展示而不吹牛,要开始帮助你的队友、后辈等。你的工作、技术水平等一切都将为你自己说话。

2
2
2
2018-04-19 22:19:12 +0000

这比某些答案中的答案要棘手一点。你不应该只是站出来说你不需要帮助(傲慢),也不应该默默地继续听着(这很烦人!)。

我的建议是………..用你的知识让她眼花缭乱。在软件开发行业中,如果有人给你讲解的东西你听懂了,那就通过讨论,然后逐步介绍你的高级知识,来表明你听懂了,让对方知道你听懂了。当有人只是听的时候,很多人,尤其是工程师,很容易认为听者因为不懂而无法参与讨论,

案例与要点,当有人在行业内向你解释一些显而易见的东西时,保持沉默,很有可能他们会用略微不同的方式再解释一次………..几次渐渐的挫败感。

要完全停止技术上的纠缠,表现出你知道的东西比试图教你的人更多,他们很快就会学会不要教训你,如果有什么问题就来找你。

现在,如果他们在向你解释JSON是因为你犯了一个关键性的错误,或者只是演示了一个遗漏的架构概念,这时你就应该闭嘴听着。

1
1
1
2018-04-19 18:35:31 +0000

警告: 这只在某些情况下对某些人有效;YMMV。这个答案没有保证。

  • * * * * * 在这种情况下,我会*做的是用主题摘要来打断他们。例如,用JSON举例:

Them。JSON是JavaScript Object Notation,它是一种表示 - 我:类似于字典的对象,以及,数组和基元以及,我是说,JavaScript基元,以序列化的格式表示。JSON是JavaScript Object Notation,它是一种表示 - 我:JavaScript中的任何对象都可以用字符串的方式来表示。 Them:不,因为它不能存储函数,也不能存储具有隐藏属性的对象;它是一种非常简单的表示…..

在这种情况下,用 “是的,我知道 "打断他们,会导致后来的问题,当我发现自己其实并不知道JSON是什么,所以在代码中造成了我的假设问题。如果你是 "自学成才",那么这意味着你可能会有一些空白,而大多数人都会认为你已经填补了这些空白,因为你知道 "较难的东西"(尽管大多数教育机构也是按照really weird顺序教授这些东西!),而这种假设可能会导致由于错误的假设而导致一些微妙的、难以发现的问题。

1
1
1
2018-04-20 15:57:46 +0000

我在一家大型高科技公司工作,经常招聘年轻的开发人员(0-2年工作经验)。他们上的学校和他们的学位对我来说没有丝毫的区别,

我最近拒绝了两个来自全国最好的学校的候选人,雇佣了一个来自我都不记得名字的学校的候选人。他们之间的区别在于,前两个人都很优秀,第三个人很出色,也是因为他是自学成才的。5分钟后很明显,他的成绩会很好。

***这在你的问题中是什么意思?可能你可能更适合在一个对知识的重视程度比学校更高的行业里工作。

1
1
1
2018-04-19 22:30:12 +0000

我想你可以说–我已经知道一点(强调一点)关于JSON的知识。那么,我们可以暂时不讲JSON吗?但是,如果我对JSON有什么不懂的地方,我以后可以请你帮忙吗?

0
0
0
2018-04-17 19:43:24 +0000

让我们对你的例子说,你_不操作JSON。你取JSON,将其转换为模型对象,操作模型对象,然后将其转换回JSON。我敢打赌,如果你的同事试图直接操作JSON,肯定会有bug,因为JSON很简单,但并不是那么简单。

如果他这么聪明,现在把这篇论文https://www.ics.uci.edu/~dan/pubs/LenLimHuff.pdf打印出来,这篇论文是关于计算有限码长的最优Huffman码(无限码长的Huffman码很简单),请他给你解释一下这个算法。很可能他做不到,最坏的情况是你让他闭嘴好一阵子。限长的Huffman码很重要,因为它能让解码器的效率更高)。PS.如果他或她能解释清楚。如果他或她能向你解释算法,那么他或她好的。我很怀疑。

除此之外,如果有人试图向你解释JSON,你问他们在那里想达到什么目的?难道他认为JSON是个很难的东西,没有CS学位你就不能理解?真的吗?难道他不觉得他自己有点自以为是吗?他的行为是在侮辱你,所以你给他的回馈是他应得的。

-1
-1
-1
2018-04-23 14:51:10 +0000

自学成才的开发者往往会在自己有实践经验的地方成为技术专家,但有时候问题是他们不知道自己有多少不懂的地方。比如说,我经常遇到自学成才的开发者发明一种新的算法来解决一个问题,当有一个众所周知的标准算法的时候,往往会好很多。

试着记住,如果你是水管工或电工,更不用说医生或律师了,没有正式的资格证书是不允许你执业的。事实上,编程是相当独特的,允许那些完全自学成才的人从事这个行业。而许多这样做的人,都做得很好。但是要承认那些有CS学位的人学到了你没有学到的东西,并且愿意向他们学习。但它会教给你关于JSON属于哪一类的语法,因此你需要用哪一类的解析器来处理JSON:它可以教你避免尝试用正则表达式解析JSON的错误,因为理论告诉你这是不可能的。你只需要关注StackOverflow几周,就能知道有多少程序员不知道这样的基础知识。