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

技术上是广度优先还是深度优先?请各位大佬指点迷津

  •  
  •   lichen003 · 2019-05-15 16:10:20 +08:00 · 9167 次点击
    这是一个创建于 2013 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是多学几门语言好,还是先把一门语言学精

    87 条回复    2019-05-16 14:32:15 +08:00
    artandlol
        1
    artandlol  
       2019-05-15 16:14:18 +08:00 via iPhone   ❤️ 1
    小孩子才做选择
    gliyechen
        2
    gliyechen  
       2019-05-15 16:39:08 +08:00
    个人感觉先广度一下,发现喜欢的,再深度一下
    Ediacaran
        3
    Ediacaran  
       2019-05-15 16:41:10 +08:00 via iPhone   ❤️ 9
    去一个新城市,先扫一眼地图,然后想去的景点认真看
    wu67
        4
    wu67  
       2019-05-15 16:42:58 +08:00
    个人感觉是广度.

    曾经被问过‘你的简历就一张纸?’ ‘好的, 你还会其他语言吗? ...’ ‘你有用过某某某吗?’.

    广度不够, 连逼都装不出来, 人家也不继续关心你的深度了, ‘好了今天就这样吧, 你先回去等通知, 我们近期就会给你答复’...
    wyntalgeer
        5
    wyntalgeer  
       2019-05-15 16:44:44 +08:00   ❤️ 1
    如果楼主会双重影分身,那无疑先学 C 和 JAVA
    如果楼主会三重影分身,那无疑先学 C、JAVA 和 Dart(flutter)
    如果楼主会多重影分身,请 gayhub 搜一下技能书,同时点亮所有叶子就可以了

    那么问题来了,楼主会几重影分身?
    index90
        6
    index90  
       2019-05-15 16:44:45 +08:00
    技术的广度就是多学几门语言……
    zhuangzhuang1988
        7
    zhuangzhuang1988  
       2019-05-15 16:45:24 +08:00   ❤️ 1
    先深度后广度。
    ynohoahc
        8
    ynohoahc  
       2019-05-15 16:45:54 +08:00
    广度能给开发者带来更好的安全感
    undeflife
        9
    undeflife  
       2019-05-15 16:46:13 +08:00
    广不是具体的语言。 会用 10 种语言写 hello world 也没什么用,比如你主要专注后端的,那了解下前端的生态、工具链等,而不是盲目去怼 Javascript,这是广 。别的方向也是相同的道理。
    lichen003
        10
    lichen003  
    OP
       2019-05-15 16:46:18 +08:00   ❤️ 1
    @wyntalgeer 我可能就是鸣人刚学分身术时,分出来的那个
    labnotok
        11
    labnotok  
       2019-05-15 16:47:15 +08:00
    迭代加深
    yuchting
        12
    yuchting  
       2019-05-15 16:48:39 +08:00
    广度决定门面,深度决定内涵
    meetocean
        13
    meetocean  
       2019-05-15 16:49:38 +08:00
    一精多广。
    精通一门语言,其它语言都差不多,可以举一反三,闻一知百。
    ipwx
        14
    ipwx  
       2019-05-15 16:50:21 +08:00   ❤️ 2
    我的经验是,先深度,后广度。

    不论是编程语言,还是数学,还是学机器学习。
    marsgt
        15
    marsgt  
       2019-05-15 16:51:00 +08:00
    多学几门语言不如多学几门语言吧。。🤦‍♂

    可能你学到第三门就知道了,语言设计都大同小异(包括类型系统啊流程控制啊什么的),最多会带一些本门特性(坑),和你追求的“广度”应该差的很远。。。当然也不排除确实有装 13 需求这种情况🤷‍♂
    lichen003
        16
    lichen003  
    OP
       2019-05-15 16:51:47 +08:00
    @index90 不好意思,可能描述不是太准确,大佬你可以说说你的见解
    PALELESS
        17
    PALELESS  
       2019-05-15 16:52:36 +08:00
    个人感觉, 先广度, 在深度, 比如先学会使用 linux, 懂得网络是如何运转, 明白什么是数据库..., 然后再进行个人爱好进行深度学习, 程序员就搞算法, 诸如此类
    lichen003
        18
    lichen003  
    OP
       2019-05-15 16:52:49 +08:00
    @undeflife 嗯,我描述的不是太清楚,不好意思哈
    Fazauw
        19
    Fazauw  
       2019-05-15 16:53:08 +08:00 via Android
    深造广度优先,尤其从底层一层层的缕上去
    急着赚钱就专精一门 js,php 这样的应用层面的技术。
    way2create
        20
    way2create  
       2019-05-15 16:55:03 +08:00
    广度也是要建立在一定深度基础上的吧,写 hello world 或者熟悉普通 mvc 框架 那种也不叫广了 随便就能上手的
    version
        21
    version  
       2019-05-15 17:00:59 +08:00   ❤️ 4
    数据结构.设计模式 很熟练了一门语言后.
    去学其它语言.基本都很容易.从中你会发现每种语言个有特定需求的优势..

    后端开发者:数据量 10 万 50 万 100 万 1 千万 和并发 10 并发 100 并发 1000 并发 1000 多人长连保持, 你会发现完全都不是一个世界

    前端开发者:页面性能.打开解析速度.兼容度.开发效率.设计效果和自己写的效果是否千差万别.等都值得研究..
    lichen003
        22
    lichen003  
    OP
       2019-05-15 17:06:11 +08:00
    @version 嗯,我觉得最重要的还是基本功,像数据结构,操作系统等等,这些都是真正的屠龙技啊
    FFSephiroth
        23
    FFSephiroth  
       2019-05-15 17:14:44 +08:00
    比较形象的比喻是,广度决定了你能就业的范围,深度决定了你能带就业公司中做的有多高
    busyboy
        24
    busyboy  
       2019-05-15 17:25:23 +08:00
    如果你想去大厂工作,就先深度,但要足够深,如果你只是想先找到工作,就业; 那就先广度。
    Deteriorator
        25
    Deteriorator  
       2019-05-15 17:36:12 +08:00
    看你的工作,测试是先广后深,开发是先深后广
    loveour
        26
    loveour  
       2019-05-15 17:44:19 +08:00
    个人认为,一般来说,要先达到一定的广度吧,这个广度,不是说多几门语言,而是计算机的基础知识,了解程序运行原理,数据结构,软件工程,网络知识,数据库等的相关理论。
    lichen003
        27
    lichen003  
    OP
       2019-05-15 17:54:07 +08:00
    @loveour 嗯,计算机基础知识是内功
    babytomas
        28
    babytomas  
       2019-05-15 17:56:44 +08:00
    当然是"广度"优先, 二八定律.

    一门技术在你学习到 20% 的时候就可以完成大部分工作了, 余下的"深度"再根据需要精修.
    xuanbg
        29
    xuanbg  
       2019-05-15 18:01:14 +08:00
    技术的广度绝不是多学几门语言啊,语言学的再多,增加的广度也很有限的,楼主千万不要自误。
    daryl
        30
    daryl  
       2019-05-15 18:03:37 +08:00
    基础知识学扎实,再来谈深度还是广度。
    Takamine
        31
    Takamine  
       2019-05-15 18:04:15 +08:00 via Android
    给你一个公式 `20%*20%<5% `体会:smile:。
    passerbytiny
        32
    passerbytiny  
       2019-05-15 18:07:28 +08:00
    @lichen003 这不是鱼与熊掌不可兼得的关系,这是先迈左脚还是先迈右脚的关系。没有对一的深入学习,哪里来的对多的全面了解;没有对多的全面了解,哪来的对一的深入理解。
    111qqz
        33
    111qqz  
       2019-05-15 18:23:04 +08:00 via Android
    @wu67 感觉与其说是因为没有广度,不如说是技能不 match ……
    gaobing
        34
    gaobing  
       2019-05-15 18:27:49 +08:00 via Android   ❤️ 1
    以工作为目的深度优先,不用工作纯兴趣广度优先。
    Justin13
        35
    Justin13  
       2019-05-15 18:28:24 +08:00 via Android
    先广后深
    lscho
        36
    lscho  
       2019-05-15 18:31:31 +08:00
    一群人这么认真的讨论是认真的吗?你想要深度的话,自然而且必然会有广度。。。像贯通广度的话,必然会有深入的理解。。。#32 说的是对的。
    lincanbin
        37
    lincanbin  
       2019-05-15 18:35:53 +08:00 via Android
    往深了走,自然而然就会有广度
    nguoidiqua
        38
    nguoidiqua  
       2019-05-15 18:36:33 +08:00   ❤️ 1
    先博而后渊,这是杨昌济给他某个学生的答案,这个学生开始换了不少学校。

    上面已经有人提到了,其实大部分技能,开始花点时间就可以掌握绝大部分,想继续深入,那要花的时间成指数增加。一百个小时可以工作,一万个小时才能成为专家。这一万个小时就要好多年,总得先看看情况再决定吧,先再花几百个小时学点别的看看不会亏,磨刀不误砍柴工。

    而且学习这个事情也需要一个周期,有瓶颈期,并不是全部投入于此就能加快进度的,这个和人月神话讲的道理差不多。
    supuwoerc
        39
    supuwoerc  
       2019-05-15 18:41:35 +08:00
    这问题==粗的好还是长的好(搞黄色)
    nguoidiqua
        40
    nguoidiqua  
       2019-05-15 18:50:01 +08:00
    另外讲句现实的话,提升广度要比提升深度容易得多,现实得多。

    并不是每个人坚持一万个小时都能成为专家的,最怕的结果是既没有广度,也没有什么深度。现实情况中,绝大部分人是一年经验用多年。

    而且深度这玩意,并不固定,是不断被人在拉高的。现在看起来很深度的技术,可能几年后属于很平常的技术。群体中,最终都只能有少数成为技术引领者,如果不能竞争过他们,那么你就在被拉远,就算你自己相对自己深度增加了,也在被拉远。
    bk201
        41
    bk201  
       2019-05-15 18:55:44 +08:00
    先广后深再广,自己体会
    YouXia
        42
    YouXia  
       2019-05-15 18:56:38 +08:00
    @wu67 那是因为你的简历没有让面试官可以问的地方。
    quqiuzhu
        43
    quqiuzhu  
       2019-05-15 18:58:26 +08:00 via Android
    先深度,深度自然会带来广度,先广度没效率。
    woscaizi
        44
    woscaizi  
       2019-05-15 19:03:11 +08:00
    先广再深。
    先 get 到编程界的一些趋势,然后再深入学习一项。。
    lzxz1234
        45
    lzxz1234  
       2019-05-15 19:03:20 +08:00
    专职深,它职广,工作用到的要深,之外的要广
    zzh1224
        46
    zzh1224  
       2019-05-15 19:29:33 +08:00
    通常是深度钻研的厉害,但是很多人都做不到,所以只能退而求其次,在广度上做文章
    vanishcode
        47
    vanishcode  
       2019-05-15 20:06:04 +08:00 via Android
    一专多能
    chnhyg
        48
    chnhyg  
       2019-05-15 20:07:33 +08:00 via iPhone
    没得选,

    打个比方,

    用锄头挖地,只在一个点挖(深度)是挖不深的,要挖深必须还要挖开旁边的土壤(广度)。
    lichen003
        49
    lichen003  
    OP
       2019-05-15 20:07:48 +08:00
    @gaobing 有道理
    lichen003
        50
    lichen003  
    OP
       2019-05-15 20:13:15 +08:00
    @nguoidiqua 先博而后渊是不是可以狭义的理解为先学习好基本的一些计算机知识,然后再朝着一个方向深耕
    saozhu
        51
    saozhu  
       2019-05-15 20:13:42 +08:00 via iPhone
    知识广度是知识深度的副产品
    lichen003
        52
    lichen003  
    OP
       2019-05-15 20:16:42 +08:00
    @lscho 认真讨论才好了,这样才能集思广益啊
    smdbh
        53
    smdbh  
       2019-05-15 20:25:05 +08:00 via iPhone
    当然是广度,九浅才一深
    nguoidiqua
        54
    nguoidiqua  
       2019-05-15 20:35:40 +08:00
    @lichen003 可以这么说吧。杨昌济的意思是要先去多去了解下不同的知识,有一定见识了,有了对比了,再自己决定自己的方向。
    lichen003
        55
    lichen003  
    OP
       2019-05-15 20:40:16 +08:00
    @nguoidiqua 嗯,受教了
    zqguo
        56
    zqguo  
       2019-05-15 21:36:10 +08:00
    先广后深
    tankren
        57
    tankren  
       2019-05-15 21:39:06 +08:00
    工作用得到的要深,工作范围之外的要追求广,顺便追求高度
    ShaunSS
        58
    ShaunSS  
       2019-05-15 22:18:12 +08:00
    先广度, 视野够用之后再深度.
    taotaodaddy
        59
    taotaodaddy  
       2019-05-15 22:37:44 +08:00 via Android
    先深再广,再深再广,再深再广,无穷匮矣
    anyele
        60
    anyele  
       2019-05-15 22:40:23 +08:00 via Android
    都要,但先深度,时间分配用 7 深 3 广
    Bardon
        61
    Bardon  
       2019-05-15 22:40:42 +08:00
    必然不是深度,先深的后果是,你到可以横向扩展的时候,已经过去好多年了,你等得起么
    必然是先吃上饭,再考虑深研
    chenoe
        62
    chenoe  
       2019-05-15 23:04:49 +08:00 via Android
    参考下目前浙江高中信息技术的教法。基本是教 VB,但是实际上搞了半天最后弄得最多的是算法。VB 其实到最后没教几条语句,90%的时间都是处理算法,各种程序填空、程序纠错、自主设计。最后毕业了如果你需要提高广度。那就试试看把你学过的东西放到别的语言里面实现。另外本身教 VB 其实也有争议,总的来说就是到底用什么语言也要跟上时代的步伐。希望对你有帮助。
    murmur
        63
    murmur  
       2019-05-15 23:10:20 +08:00
    吹牛逼的技术优先
    再广的东西吹不出来也是白扯
    filazy
        64
    filazy  
       2019-05-15 23:21:27 +08:00
    其实知识体是个球状,要挖掘完它,可以从一个洞打到底也可以一层一层地挖,这就是学深和学广的区别,最终是殊途同归,都是又深又广
    linvaux
        65
    linvaux  
       2019-05-16 07:53:15 +08:00 via Android   ❤️ 1
    建议深度优先欸,不然干都是半吊子,满瓶水不响,半瓶水晃荡
    Weixiao0725
        66
    Weixiao0725  
       2019-05-16 08:49:51 +08:00
    千万不能深度,而且就算是深,也要适可而止,量力而行,否则很容易浪费大量时间。
    anmie
        67
    anmie  
       2019-05-16 09:05:02 +08:00
    我来给楼主带来另外一个视角:
    看你在什么地方,大城市机会多,就业环境好,就注重深度,茫茫程序猿海中,这必然是你的亮点
    但是假如在三四线小城市,你会的 Android 可能都找不到工作 你懂吗?
    但其实深度和广度都不是特别的重要,重要的是你工作一段时间后的学习能力,触类旁通,学什么语言技术根本就是几天的事,这时候你认为你讨论这个问题还有意义吗?没有了,想深就深,想广就广
    arzterk
        68
    arzterk  
       2019-05-16 09:05:23 +08:00
    工资优先
    lichen003
        69
    lichen003  
    OP
       2019-05-16 09:50:44 +08:00
    @anmie 嗯,很多东西还是要考虑实际情况
    qiumaoyuan
        70
    qiumaoyuan  
       2019-05-16 09:53:19 +08:00
    广度优先的坏处是容易不小心觉得自己什么都会,容易盲目自信,真要开始干的时候什么也干不好。比如说大部分程序员觉得自己会写代码。
    lib360
        71
    lib360  
       2019-05-16 09:55:09 +08:00
    PS:说了你也不会听,也听不进去

    技术只是一环,更重要的是,好好利用技术做一些有价值的事情,这个是最重要的,学什么技术应该取决于你找一件有意义的事情去做
    lichen003
        72
    lichen003  
    OP
       2019-05-16 09:58:04 +08:00
    @lib360 可能我缺少的是一件有意义的是去驱动自己吧,哈哈哈
    Cbdy
        73
    Cbdy  
       2019-05-16 09:59:13 +08:00 via Android
    都要,做 T 字形人才
    micean
        74
    micean  
       2019-05-16 10:00:31 +08:00
    广度优先
    深度除非你有信心特别深,可以通用领域(算法、协议、通信之类)深耕
    BUPTGuo
        75
    BUPTGuo  
       2019-05-16 10:15:09 +08:00
    如果单纯指语言的话,搞通两个足以
    wly19960911
        76
    wly19960911  
       2019-05-16 10:20:18 +08:00   ❤️ 1
    广度优先,别钻到自己的技术栈里面去,太多的算法、用法,你平时不可能接触,多接触多思考,然后对比优劣来为自己以后的进阶打下基础。

    目前很多深度你没法掌握,我现在的考虑是多看,看其他语言对一个项目的分层、差异,好处和坏处。然后培养成能掌握一个应用每个模块,这个东西仅仅看自己公司或者盯着深度没法掌握。然后还能掌握一些设计模式上的经验,然后把经验应用到自己的领域继续深挖。
    michaelcheng
        77
    michaelcheng  
       2019-05-16 10:47:49 +08:00
    张无忌先练精了九阳神功,再学其他武林绝学更是事半功倍。
    baiducom
        78
    baiducom  
       2019-05-16 10:48:37 +08:00 via Android
    哈哈哈 技术吧!
    chiu
        79
    chiu  
       2019-05-16 10:50:41 +08:00
    工作三年,个人目前倾向于深度优先,感觉自己工作了几年还没有在哪个领域上技术比较深入,觉得和刚毕业差不多
    alex8
        80
    alex8  
       2019-05-16 11:02:09 +08:00
    深度优先,大型企业没有全栈,但不乏各个领域内专家
    ww940521
        81
    ww940521  
       2019-05-16 11:02:14 +08:00
    最重要的是基础吧,先别谈什么广度深度。
    lonelygo
        82
    lonelygo  
       2019-05-16 12:07:03 +08:00
    个人认为:谈广度的前提是应该有一个或多个锚定的深度。
    换句话说:搞明白一两件事,然后拓展到周边相关领域,然后回头再看,就知道其实还不算明白了。
    或者说:没有体系化的广度只能算是“健谈”而不能说是对某个领域理解全面。
    whutxzj
        83
    whutxzj  
       2019-05-16 12:35:04 +08:00
    前期:术业有专攻
    后期:一览众山小
    coderluan
        84
    coderluan  
       2019-05-16 12:55:47 +08:00
    理论来说,都是先深度走两年,到时候根据自己的实际情况,决定接下来走深度还是广度。

    实际来说,大多数情况就是工资优先,给更高的工资就跳槽了,根本不太会考虑下一份工作是适合深度还是广度,大部分人没时间没能力业余时间学习。
    wr410
        85
    wr410  
       2019-05-16 12:57:57 +08:00
    不知道你说的深度是什么?

    当年我 basic 玩的炉火纯青,可是现在他妈的 basic 被淘汰了!!!
    opengps
        86
    opengps  
       2019-05-16 13:02:46 +08:00 via Android
    跟着需求走,用到什么学什么
    chevalier
        87
    chevalier  
       2019-05-16 14:32:15 +08:00
    先把日常工作用到的技术栈,给深入了。一方面有利于业务发展和团队装逼,另一方面也有利于面试。
    每个公司的技术栈都不尽一样,面试官不会追着你不熟悉的东西持续问,会深入问你项目中用到的东西。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2929 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 14:23 · PVG 22:23 · LAX 06:23 · JFK 09:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.