V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coderluan
V2EX  ›  随想

从博弈论谈谈入坑学编程

  •  1
     
  •   coderluan · 2016-07-31 21:48:18 +08:00 · 4257 次点击
    这是一个创建于 3037 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天一个网友问了我个问题,“你怎么看现在这么多人想入坑(当程序员)?”。

    其实这类问题我已经回复了无数遍了:

    无法是前两年房地产不景气,导致实体经济低迷,很多钱投到了互联网和 IT 上面,程序员需求大,所以待遇好,大家都不傻,自然想当程序员了。

    但是想了想最近半年新人程序员找工作其实明显更困难了,上边的回复貌似已经不那么准确了,或者我应该补充些“资本寒冬”之类的说法了,可惜我并不赞成什么“资本寒冬”,即使有也只是“互联网资本寒冬”。而 IT 并不是只有互联网,个人认为 IT 还是未来发展的趋势,很多人也就是这么认为的,所以他们毅然决然的跳到程序员这个坑里了。还有些人即使不认为程序员有那么好,但是他们一时半会也想不到什么更好,所以也就半推半就的跳坑了。

    “你怎么看大家 XXX ”的问题其实包括两个部分“ XXX 本身怎么样”和“ XXX 会怎么样”,“大家会怎样”三个问题:

    “当程序员怎么样的问题”刚刚谈了,简单来说就是挺好。

    “程序员会怎么样”这个问题其实也不难回答,即使不懂技术,懂点市场规律也能猜到。无非就是“程序员会贬值,但等级越高影响越小”。

    “大家会怎么样”这个问题容我卖个关子,讲个博弈论的故事:

    每人给出一个从 0 到 100 之间的数字。把所有人的数字求算术平均值。谁选的数字最接近这个算术平均值的 2/3 ,谁就赢得整场游戏。

    结果是所有的平均数: 31.445 ,它的三分之二是 20.96333333 。选 22 的人获胜。

    下面来分析分析什么样的人会选什么样的答案,他们选择程序员又会怎么样。

    [超过 66 的人] 。没听题目的人。现实中这种人根本没考虑将来什么职业会好。会不会当程序员完全取决于父母让没让他们报相应专业。 [再说选 0 的] 。搅局的贱人。自己不想考虑正确答案,却也不想让人得出正确答案。现实中当不当程序员随缘,但是工作中肯定没少坑队友,注定自己也与成功无缘。 [选 33 的] 。 正常人,他们考虑到了如果大家随便写数字,那样平均数可能就是 50 ,于是写了 33 。现实中感觉搞 IT 好,就去学编程,然后非常单纯的选择了某些“热门”方向。但是完全考虑过这些方向本身的发展,运气好可能没啥大问题。运气不好可能就悲剧了,比如现在网上抱怨学 IOS 投了无数个简历都石沉大海的人。, [赢得游戏的 22 ] 。胜利者,简单来说就是他们考虑到了很多人会选 33 ,于是自己写了 22 。这类人现实中感觉 IT 有发展,但是同时考虑到了很多人也会想到这点,于是避开了那些目前热门方向,而是选择了那些等他们学完了才会热门的方向。或者干脆不直接搞 IT ,而是为搞 IT 的人提供各种各样的服务。比如你感觉加班太累,在微信叫了个按摩的技师,边按边聊,结果发现这个主要客户都是程序员的按摩技师的工资居然完全不输给自己。

    下面再讲两个简短的故事,第一个“大家都淘金,他卖牛仔裤,他发了”。第二个是“大家都淘金,他卖桶装水,他发了”。

    说了这么多,其实想表达的很简单,“大家会怎么样”,取决于你自己是如何思考的,跟风的结果可能就是接盘侠。深思熟虑,主动思考,主动去了解这个行业现状与动向,主动去了解自己的兴趣,主动去了解自己的优势与劣势,这样的人才更可能获得成功。

    18 条回复    2016-08-02 11:21:16 +08:00
    EPCoo
        1
    EPCoo  
       2016-07-31 22:54:07 +08:00 via iPhone
    赞同楼主的观点,博弈故事也很有意思。
    stellar
        2
    stellar  
       2016-07-31 23:10:14 +08:00 via iPhone   ❤️ 2
    所以这个时候是培训机构发财了
    albertofwb
        3
    albertofwb  
       2016-08-01 07:59:27 +08:00 via Android
    津津有味
    yalanaika
        4
    yalanaika  
       2016-08-01 08:07:07 +08:00
    这题目是用来评测一个群体对群体自身的智商估计的
    coderluan
        5
    coderluan  
    OP
       2016-08-01 09:28:44 +08:00
    @yalanaika 是的,智商估计越高,数字就会越低,写成个函数就是迭代了。
    zjqzxc
        6
    zjqzxc  
       2016-08-01 09:29:03 +08:00
    “[再说选 0 的] 。搅局的贱人。自己不想考虑正确答案,却也不想让人得出正确答案。”别骂人好不。。。
    “结果是所有的平均数: 31.445 ,它的三分之二是 20.96333333 。选 22 的人获胜。”楼主在钓鱼?

    事实上这个博弈的最终答案还真应该(可能)是 0 。
    “简单来说就是他们考虑到了很多人会选 33 ,于是自己写了 22 ”->进一步来说,有人会想“简单来说就是他们考虑到了很多人会选 22 ,于是自己写了 13 ”->"13-8"->"8-5"->"5-3"->"3-2"->"2-1"。
    所以最终的结论所有人都选择 0 或者 1 (所有人选 0 ,平均值为 0,2/3 后仍然为 0 ;所有人选 1 ,平均值为 1 , 2/3 后 0.666≈1 ),并达到均衡。
    在 0,1 二选一这种情况下,考虑到只要有超过 25%的人选 0 ,则最终结果应为 0,( 0*0.25+1*0.75 )*( 2/3 )=0.5 ,所以进一步分析,选 0 才是更为稳妥的选项。


    事儿说的没错,不过故事没编好。
    coderluan
        7
    coderluan  
    OP
       2016-08-01 09:36:30 +08:00
    @stellar 和按摩不同,培训机构会明确的增加这行的从业人数,同行竞争也会增多,培训机构想长久的把钱赚了,现在反而得花钱去抢占市场,高价打广告,高价挖名师。能做到这样的培训班才是 22 。现在跟风开搬的人依然都是 33 。
    coderluan
        8
    coderluan  
    OP
       2016-08-01 09:50:00 +08:00
    @zjqzxc 这个是博弈论的一个很广泛的例子,不是我编的。

    而且你说的那个观点我并不同意,实际上 @yalanaika 说的比较正确,这个结果取决于你对所在群体的智商估计,而你那么估计明显对整个群体的智商进行了最高化估计,现实中明显不可能的。
    yszx
        9
    yszx  
       2016-08-01 10:18:41 +08:00
    我就会选 0 或者 100 ,在玩谁是卧底的时候我也经常乱编写东西···因为我觉得游戏这样子才有趣,获胜很多时候并不是第一选择。这和现实工作中坑不坑有什么关系嘛。
    单纯从博弈上来讲···不就变成那个海盗游戏了么
    coderluan
        10
    coderluan  
    OP
       2016-08-01 10:27:42 +08:00
    玩游戏享受的是过程,博弈论追求的是结果。所以这里边谈游戏时的行为没有意义。举个例子,如果你玩谁是卧底的时候,赢家有不菲的奖金,那样你还会为了有趣而乱编吗?@yszx
    coderluan
        11
    coderluan  
    OP
       2016-08-01 10:28:12 +08:00
    @yszx 玩游戏享受的是过程,博弈论追求的是结果。所以这里边谈游戏时的行为没有意义。举个例子,如果你玩谁是卧底的时候,赢家有不菲的奖金,那样你还会为了有趣而乱编吗?
    SuperFashi
        12
    SuperFashi  
       2016-08-01 10:50:13 +08:00 via Android
    你这根本不是博弈论,要是你这么说的话,我要选 0 。

    因为博弈论的思想是,考虑到对方和你是一样聪明的,所以你可以预判对方的行动从而判断局面的胜负,否则就没有“必胜”概念了, nim 也没法玩了。

    而有人既然能选 22 ,说明大家都可以考虑到 22 ,就会都选 22 。这样一来,答案在 15 左右。再按照这样推下去,最后答案无限趋于 0 ,所以我选 0 。
    ipconfiger
        13
    ipconfiger  
       2016-08-01 10:51:59 +08:00
    程序员不是你相当, 相当就能当......
    coderluan
        14
    coderluan  
    OP
       2016-08-01 11:03:42 +08:00
    @SuperFashi
    这个是博弈论的例子,我看到的,并不是我编的,而且博弈论本身讨论的就不是“必胜”,而是优化策略。
    这个博弈的重点其实是对整个群体的智商进行分析,也实际就是你得考虑这个群里的人能考虑几步,并不是单纯的无限递归就行的,因为显然有些人想不了那么远,有些人不认为别人会想多远,所以也不会无限想下去。
    zjqzxc
        15
    zjqzxc  
       2016-08-01 17:31:08 +08:00
    @coderluan 这个例子在耶鲁的博弈论公开课里做过一个类似的,具体记不清了。

    我只是想说你的这句话 “[再说选 0 的] 。搅局的贱人” 有些不够友好。
    coderluan
        16
    coderluan  
    OP
       2016-08-01 21:22:08 +08:00
    @zjqzxc 这个评价是原文的,后面才是我补充的,我也感觉不太友好,但是一时也想不出更准确的说法。
    archxm
        17
    archxm  
       2016-08-02 10:38:44 +08:00
    最适合博弈的就是 war3 的 dota
    qhxin
        18
    qhxin  
       2016-08-02 11:21:16 +08:00
    写代码写傻了,什么是算术平均值。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2820 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:34 · PVG 17:34 · LAX 01:34 · JFK 04:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.