您如何与非程序员分享您的技能?


43

有时我感觉自己像个音乐家,无法播放现场表演。编程是一项很酷的技能,并且用途广泛,但是很多事情发生在“镜头外”-在您的头上,办公室里,远离观众。

当然,您可以与其他程序员讨论编程,并且有对等编程,您确实可以创建可以向人们展示的内容,但是当涉及向非程序员解释时,您做了什么,或者如何做。您上班的日子有点棘手。

您如何让生活中的非程序员了解您的工作?

注意:这不是让非程序员了解开发过程的重复,因为该问题与管理客户期望有关。


那就是专业的本质:您的努力几乎没有切实的回报,因为您是唯一了解您的工作的人。然而,知识,金钱对大多数人来说都是足够的回报。
没人2010年


12
很高兴您没有为安全而写东西。安全性比其他任何东西都难以证明。“瞧,它做着以前做过的事情,只是现在很安全了……”
肖恩·D。

2
有人可以告诉我,这个问题适合程序员
。stackexchange.com/ faq

1
如果记忆体对我而言,@ Dave适合该站点仍处于测试阶段时发布的问题类别。那时的规则还没有完全完善。
EpsilonVector '02

Answers:


31

三个词:

dumb it down

编程很复杂。要理解它,需要花费很多工作。编程的乐趣更加微妙。

对于我来说,我要与他人(例如家庭)交流成功的经验,我必须在更普遍的水平上交流。将编程与现实世界中的正常事物进行比较。

(例如,带有仪表板,座椅和...的汽车的物体。)

如果您对听众有所了解,那就更好了,因为您可以使用他们理解的东西,这些东西比普通的日常概念更复杂。

例如,我的妻子是一位学校老师,因此我可以将我的一些软件开发过程与她必须使用的教学过程进行比较。它极大地帮助。

但是最后您必须简化,简化和简化更多内容。即便如此,也很难让人理解具有良好单元测试的精心制作的课程有多酷。:)


25
+1代表“即使这样,也很难让人理解具有良好单元测试的精心制作的课程有多酷。” 我很难让一些程序员理解这一点。
CaffGeek 2011年

3
我喜欢使用错误的类比来解释深奥的概念。
玛拉基

49

我什至不尝试。如果他们的技术取向不足以至少对编程有基本的了解,那么我只会在细节上让他们感到厌烦。通常,我只使用非常高级的内容,例如“我创建网站”或“我编写计算机程序来执行X”


13
+1-我一直都在使用这种方法。如果我真的想让他们知道我今天过得怎么样,我会给他们一些条件,看着它们的玻璃般的外观笼罩着他们的眼睛。然后有人改变了话题。
乔尔·埃瑟顿

7
我发现人们一提到计算机就会倾向于改变主题。要么,要么他们开始抱怨自己的计算机并寻求建议。我猜医生也有同样的问题。
Brian Ortiz

3
@Brian,除了大多数医生解决问题而不是构建新系统之外;)
Armand

2
是。最简单的答案是“我创建的东西...更具体地说,我为...创建了一个高可用性实时集群系统”,然后它们就消失了
Sorantis 2011年

这就是我的工作。然后我等待5秒钟的沉默,然后说:“安妮,那个谈话杀手不在了。那你怎么办?”
pdr 2012年

12

我试图从解决问题的角度来解释它。我只是选择使用计算机程序来解决问题。这样一来,您就可以根据自己要解决的问题来讨论自己所做的事情。一旦他们了解了这一点,通过编程来解决它就不会很远了,通常可以由非技术人员来完成。


12

我让我的兄弟罗布(Rob)向我询问。(他是一位画家和插画家,例如儿童读物,博物馆内饰等。)

我试图通过向他展示Harry Porter的中继计算机进行解释,因为我认为它以一种直觉的方式捕获了计算机和编程的本质。

那不是他想要的,我有点糊涂了。

直到后来我才意识到真正的问题是什么。我想起了奥斯卡·王尔德的这句话:

事实是,文明需要奴隶。希腊人就在那里。除非有奴隶从事丑陋,可怕,无趣的工作,否则文化和沉思几乎变得不可能。人类奴隶制是错误的,不安全的并且令人沮丧。在机械奴隶制上,在机器的奴隶制上,世界的未来取决于。

作为一名工程师,让我兴奋的是,我正在建造机械奴隶。小时候,我想在小河里放水坝,让水车发电,所以当我看着的时候,它可以为我做些什么。在汽车发动机中,有一个凸轮轴。它实际上是一个原始程序。当我需要时,它可以打开和关闭阀门因此我不必这样做。

艺术家的世界完全不同。如果您闭着眼睛听贝多芬第9交响曲的演绎,您就会被运送。您必须全力以赴,完成后就渴望着。如果您参观弗兰克·洛伊德·赖特(Frank LLoyd Wright)的杰作之作《下落的水》,您就会被运送。老实说,我不知道有人会住在里面。你在哪里弄得一团糟?它完全捕获了您。这是一场建筑交响曲。

艺术没有做什么你,它的东西你。

我试图从自己的工作中找到艺术。如果您看的话,里面就有美,但您必须看。那就是我们之间的联系。


3
我读到最初是作为《哈利波特》的中继计算机,当然,魔术经常被用来形容我们所做的事情;)
jk。

@jk:我敢打赌,只有这样才能把学生带到他的课堂上:)
Mike Dunlavey,2012年

@jk。我经常在我们的作品中看到黑魔法。
heishe 2012年

7

讲一个故事。不要只专注于自己的工作,而要专注于自己做事时的感受,对工作的热情或无聊,以及与同事的关系。


1
+1专注于与同事的关系。每个人都可以与这种事情相关。“我和老板一起吃了午饭,他说...”比“我花了一半的时间试图消除比赛条件”意义
安迪·亨特

3

为此,我有两个类似的例子:一个食谱和一个庞大的官僚机构。这就是我在本次质量检查中解释的内容: 30分钟为15岁的孩子讲解编程

我已经多次使用食谱类比来解释编程是如何编写一组严格的指令的,遵循这些指令可以产生明显且可预测的结果。

实际上,我只使用过几次官僚机构类比,因为大多数人并不需要真正地理解食谱类比,但是这两次对这个人都很有启发。他们似乎认为编程意味着要完全回忆每一行代码(例如,“但是,如果您的内存如此笨拙,那么如何对计算机进行编程?”),但这实际上是关于构建许多相互配合的自包含模块完成更大的目标。程序的模块就像一个大公司的部门:独立的单元,主要处理自己的整体情况,并通过备忘录与其他部门进行沟通。


有人说他们正在建造机械奴隶,在又一个客户“发出”之后,我觉得我们是奴隶,我们正在建造机械反乌托邦供我们自己居住。
gbjbaanb

2

我认为当我根据代码背后的想法而不是代码本身来解释某些内容时,我会得到最大的回应。我只是去除了所有技术术语,避免提及与编程相关的术语,而只谈论其思想和实际操作

例如,我最近尝试解释垃圾邮件过滤器的工作原理。我只是说过,它会记录垃圾邮件中常见的单词和垃圾邮件中不常见的单词。该记录是使用已知的垃圾邮件和非垃圾邮件建立的。之后,每当收到一封新电子邮件时,我们只需检查其中有多少个单词看上去是垃圾邮件(即在我们的垃圾邮件记录中出现)以及有多少个看起来不是垃圾邮件。如果垃圾邮件过多,则可能是垃圾邮件,因此将其发送到垃圾邮件箱。我与之交谈的非技术人员非常了解这个想法。


1

隐喻

很多时候,我根本没有将其描述为程序,而是尝试将其表示为具有相似相互关系的完全不同的概念。

它使程序的可视化变得更加有趣,有时它可以帮助我从新的角度看待它。

您不会通过谈论电流和电压来向从未使用过电力的人描述电力吗?另外,将某些概念描述为某种超有趣的计算机过程会使它们像魔术一样发生,这很有趣。一点故事的想象力并不会伤害他们,因为现实中的计算机确实如此冷酷合理。


1

我已经更详细地回答了类似的问题,但是要点是:“编程就像建立工厂或装配线。”


1

许多没有编程的人似乎认为程序员花费大量时间乏味地寻找bug,以视觉方式搜索成千上万行代码以寻找错误的逗号。因此,我首先向他们保证情况并非如此,如果是这样,我将完全没有希望。

我经常将计算机编程与编写食谱进行比较。食谱是为人们提供的一组指令,而计算机程序是为计算机提供的一组指令。有些程序比食谱复杂得多,并且程序的修改频率更高,但是结构上有些相似。如果食谱包含制作酱汁的说明的七份副本,并且必须更改配方,则某人必须找到所有这些副本并加以修复。


这将是一个令人痛苦的世界,在这个世界中,您无法对计算机进行编程以使编程变得更加容易(“目视搜索……以错误的逗号”)。
compman '02

1

我认为一个很好的比喻是建立工厂。大多数人都看到过“它是如何制造的”之类的东西,在这里您会看到一些物品通过不同的传送带和机器被打乱,最终成品有望出现。我告诉人们我建立类似的东西,但是它们不是虚拟工厂来处理物理项目,而是虚拟的并且在数据上工作。当然,对于所有类型的编程而言,这都不是一个很好的类比,但是我认为if可以很好地理解复杂性,并且可以并行许多应用程序。


0

您还不能真正分享自己的才能-只是与他人谈论您的工作

但是,您可以做的是与拥有相同工艺的人共享您的生活,而不是与他人共享工艺:


0

我通常不谈论如何完成工作,而是谈论工作的特点

我通常会强调说,它是如此的复杂,如此之复杂,以至于没有一个人能希望开始完全详细地了解正在发生的事情。这可能需要30年的时间来研究各个交互部分(通过框架的电子学),每行有效的代码行大约需要一个小时,到那时,您将不得不重新学习,因为硬件会发生很大的变化,以至于翻阅最新版本还需要10年。

另一个重要的部分是,创造出如此灵活的东西,使成千上万的人可以使用它来丰富自己的生活,这是多么有意义的事情,这是独特的(至少在细节上),并且您从中学到了很多东西。

如果此时没有人用袜子塞住我的嘴,我会很高兴地演示一个应用程序,它显示出所涉及的复杂性和灵活性。


0

我告诉他们,除了编写交响曲,数学论断和小说外,编程是在这种复杂性和复杂性水平下从事任务/结构的唯一机会。当然,并不是说一个像样的Web应用程序是一个历史性的杰作,而是一旦人们意识到您每天都可以在这种水平上使用您的思想,那么他们就会“得到它”。许多工作是值得和高薪的,但归结为一个相当简单的程序性任务,一次又一次地重复。

至少,我就是这样看的。我可能是错的。


0

与其他15个答案不同的是...

相反,解释我的工作(编程)的细节,我试图把重点放在了解决方案,这项工作解决了,即什么样的问题做了系统/软件我建立真正为用户解决。除非您正在编写编译器之类的东西,否则通常这是一个非编程领域,在这种情况下,您必须解释为什么这很有用。

这样,它使人们更容易理解它的复杂性质以及它与“现实世界”的关系。

打个比方,作为一个中世纪的铁匠,我可能会(向当地小酒馆的一位女士解释)说我用剑将敌人劈成碎片,而不是我如何用一定角度和力对钢铁进行锤打(除非他们问)。希望她能理解,将敌人分成几块是有用的(...),而且做起来可能很棘手(钢铁短缺,装甲敌人,烟熏烟熏的工作场所等),因此您对执行复杂的任务会有所感激。

(因此,使用铸铁砧相当于制造编译器,并且您必须解释它们的用途...)


0

如果我们生活在一个充满异国情调的粒子和反时间的奇异宇宙中,我将其与盖房子相比:

您有一个真正酷的房子的想法,因此您要对它的外观进行粗略的草绘,并有一个总体计划。您去五金店买些木材建造墙,但由于地面不平坦,它们不断倾倒。因此,您去买水泥打基础,但是水泥不会干,您也无法弄清楚原因。您回到五金店,问为什么,但是员工出事了。您去了8家不同的五金商店,直到有人告诉您所用的水泥是1989年秋季开发的,但是您是在1989年冬季购买的,因此它们不兼容,并且他向您出售了最新的2013.1.1水泥。您回去打基础,然后水泥就消失了。这次所有的员工都进入紧张状态,因此,您在自己的房子上用Google搜索,发现它曾经是一个核试验场。然后,您搜索核试验对土壤的影响,并发现它会导致自由基。你用谷歌搜索,然后开始研究电磁辐射,然后研究费米子,然后玻色子,然后弦论,以及关于猫的东西。您不想放弃,因为您浪费了太多时间,因此您很难解决问题。你回家晚了,发泄了对妻子的愤怒,声称她是你不能盖房子的原因,因为她和孩子们都花了所有时间...大约三个月的时间,你意识到自己从 还有关于猫的事 您不想放弃,因为您浪费了太多时间,因此您很难解决问题。你回家晚了,发泄了对妻子的愤怒,声称她是你不能盖房子的原因,因为她和孩子们都花了所有时间...大约三个月的时间,你意识到自己从 还有关于猫的事 您不想放弃,因为您浪费了太多时间,因此您很难解决问题。你回家晚了,发泄了对妻子的愤怒,声称她是你不能盖房子的原因,因为她和孩子们都花了所有时间...大约三个月的时间,你意识到自己从几乎要装修房子,甚至都不知道为什么要建房子。


-1

我只是告诉他们,我要做的是看他们为工作所做的事情,并创建使他们的工作更轻松的计算机软件。


或替换他们的工作,哦,不!
2011年

-2

就像你们中的一些人说的那样,使用对他们有意义的类比。我总是尝试以某种方式引入Google,如果我的代码执行类似于Google的操作,或显示财务收益,或者这如何以某种方式帮助人们...


-2

有时我会放弃,只是说我花了一天的时间编辑文本文件。如果不是全部,通常也是如此。

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.