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

呐,问大家一个程序员的技能问题

  •  
  •   Gothack · 2017-12-04 14:16:17 +08:00 · 4657 次点击
    这是一个创建于 2328 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在实际项目或者工作中,到底是懂得计算机、操作系统、网络这些系统设计和原理重要,还是懂得算法重要?
    第 1 条附言  ·  2017-12-04 22:22:58 +08:00
    感谢各位,事实上楼主运维,非开发类工种

    问这个问题主要是由于工作中上遇到的开发人员多半对系统、网络类知识很匮乏,网卡 discard 增长,网络背锅,udp buffer 满了,网络背锅,tcp 连接被对端 rst 掉了,网络背锅。。。诸如此类,更别提实际解决问题能力,只是甩锅而已


    另外,楼主理解大多数业务开发算法能力不能说很差,但也是基本用不到啥算法的,那这些人究竟在写啥,不懂系统,不懂网络,不懂算法.....码农真的已经成了廉价劳动力了?
    38 条回复    2017-12-05 13:50:14 +08:00
    Lionhu
        1
    Lionhu  
       2017-12-04 14:21:35 +08:00
    得看具体工作,没有前提条件无法得出结论,只能说都重要
    riggzh
        2
    riggzh  
       2017-12-04 14:23:48 +08:00   ❤️ 1
    都重要,有些实现你不优化算法 性能问题折磨死你,相反你算法很强,但是遇到项目的非软件 BUG,你也得会排查
    yulitian888
        3
    yulitian888  
       2017-12-04 14:23:49 +08:00   ❤️ 2
    这两组技能是对立的?
    riggzh
        4
    riggzh  
       2017-12-04 14:24:07 +08:00
    当然,我是针对你所说的项目来的
    yulitian888
        5
    yulitian888  
       2017-12-04 14:25:33 +08:00   ❤️ 1
    补充一下,上面敲快了直接发出去了。
    前者是知识(类比背英语单词,记住了就是你的),后者是技能(类比游泳、骑车,掌握了才是你的,看书学不会的),这两组能力根本就不是对立的好不好?
    coderluan
        6
    coderluan  
       2017-12-04 14:26:15 +08:00   ❤️ 3
    实际工作中,能解决问题就行,谁管你是懂原理还是百度复制。
    Patrick95
        7
    Patrick95  
       2017-12-04 14:26:50 +08:00   ❤️ 1
    都很重要,虽然你可能实际工作中用不到。
    但是能力和回报成正比,懂得越多自身价值越高。
    wxsm
        8
    wxsm  
       2017-12-04 15:38:28 +08:00   ❤️ 1
    至少都要懂一点吧,不然容易成为井底之蛙,会被嘲笑的。
    zhx1991
        9
    zhx1991  
       2017-12-04 18:56:49 +08:00
    map 和 list 哪个重要?
    cheesea
        10
    cheesea  
       2017-12-04 19:27:22 +08:00
    操作系统,计算机网络这些是死知识,知道就是知道,不知道就是不知道。
    UnknownR
        11
    UnknownR  
       2017-12-04 20:07:12 +08:00
    基础决定高度,你说的这些都是基础,我这种平时写脚本的都能遇到交叉关联的情况,更何况是复杂度高 n 倍的完整程序项目
    alcarl
        12
    alcarl  
       2017-12-04 20:48:22 +08:00 via Android   ❤️ 1
    算法决定上限,前面那些东西决定解决问题的能力。撸业务代码确实用不到,但撸业务代码也不会一帆风顺的,总会碰到各种问题,这时候,刚说的那些就需要了
    daliang
        13
    daliang  
       2017-12-04 20:57:08 +08:00
    这都不会还算程序员?
    DeweyReed
        14
    DeweyReed  
       2017-12-04 21:01:21 +08:00
    第五个包子吃饱了不能说前四个没用的不是,哪个不重要呢。
    cxbig
        15
    cxbig  
       2017-12-04 21:26:54 +08:00   ❤️ 1
    取决于你要做什么方向的工作

    你不可能学会所有的东西,所以除了工作的核心技能,按自己的喜好去扩展。
    总会找到合适的用武之地。
    jatesun
        16
    jatesun  
       2017-12-04 22:10:09 +08:00
    还是觉得应该根据自己工作学习兴趣去学习。
    mskf
        17
    mskf  
       2017-12-04 23:21:27 +08:00
    业务逻辑大多数不涉及算法,性能调优或者底层架构才会涉及到
    privil
        18
    privil  
       2017-12-04 23:23:57 +08:00
    有些开发就是菜…… 当然你说菜在运维里面存在不存在,也是存在的
    Lpl
        19
    Lpl  
       2017-12-04 23:31:49 +08:00 via iPhone
    我也是运维...你说的网卡 discard 满了,udp buffer 满了。。我都没遇到过,我感觉我也是菜
    dychenyi
        20
    dychenyi  
       2017-12-05 09:38:53 +08:00
    换个思路,你们这些运维,真正网络负载大的时候能有几次,除此之外你们在干嘛?给每个员工修电脑么? 真是无聊又 low 的工种。
    而软件开发不仅仅是算法了,就像一套 office 办公套件,有什么算法,但你来开发出来看看呢。
    skadi
        21
    skadi  
       2017-12-05 09:55:15 +08:00
    你要是遇上网络编程相关的开发者,能怼死你。
    Gothack
        22
    Gothack  
    OP
       2017-12-05 09:58:58 +08:00 via iPhone
    @dychenyi 你以为,运维只有一种么……
    Gothack
        23
    Gothack  
    OP
       2017-12-05 10:00:33 +08:00 via iPhone
    @skadi 身边都是网络底层和系统底层的开发,他们都懂网络懂系统,不会问这些低级问题
    slgz
        24
    slgz  
       2017-12-05 10:04:47 +08:00
    @Gothack 身为网络底层和系统的开发人员来说,不懂网络,他怎么能胜任此工作。 再说,普通的开发人员,开发个 V2EX 此类的网站出来也不是很难。那你能说,他们不能胜任此工作?
    ioth
        25
    ioth  
       2017-12-05 10:07:20 +08:00
    别想那么多,最重要。
    Gothack
        26
    Gothack  
    OP
       2017-12-05 10:09:17 +08:00 via iPhone
    @slgz 兄台说的没错,但他们请求响应不过来的时候时不时来找茬就是他们不对了……
    dychenyi
        27
    dychenyi  
       2017-12-05 10:14:29 +08:00
    @Gothack 很简单,本帖不就是你以为系列么, 我都说换个思路了, 你真以为我是那样认为的吗? 。。。
    你都说了,那些码农不搞算法不知道在干嘛, 我就类比,你们运维,不解决极端负载不知道干啥。
    还是 25 楼说的最好,别想那么多。
    qingfengxm
        28
    qingfengxm  
       2017-12-05 10:24:06 +08:00
    何必相爱相杀,技术能力那个行业不是参差不齐,全是高手企业也养不起不是
    ofnh
        29
    ofnh  
       2017-12-05 10:28:19 +08:00 via Android
    术业有专攻,不懂很正常啊,就好比你作为运维你也不懂算法
    bxqqq
        30
    bxqqq  
       2017-12-05 11:25:56 +08:00   ❤️ 1
    大多数都在写逻辑啊...调用 api,我觉得你说的网络这个合格的码农都应该懂吧?现在还有几个职位不和网络打交道的...至于 os 什么的,这些知识个人觉得知识在 debug 的时候偶尔才用到,但是这些东西程序员是应该懂的,至于算法也是一样,不做算法岗,但是平时遇到个场景要知道用什么算法,看代码,别人写了个算法的代码能一眼看出来大概是什么,而不是完全没有概念,我觉得到这种程度就可以了。不过算法很锻炼思维,没事平时的时候可以多想想。
    vegito2002
        31
    vegito2002  
       2017-12-05 11:50:49 +08:00   ❤️ 1
    全都是基础课吧
    vegito2002
        32
    vegito2002  
       2017-12-05 11:51:29 +08:00
    真正需要的深度, 得看你工作中的项目是什么方面的了
    bramblex
        33
    bramblex  
       2017-12-05 11:57:26 +08:00
    不懂算法+数据结构你操作系统网络能学好?
    你学的是怕不是名词解释……
    bramblex
        34
    bramblex  
       2017-12-05 11:59:17 +08:00
    我还深刻记得我们操作系统老师从一段 linux 代码里面抽了一段经典代码给我们讲如何从四个方面进行算法效率的优化。
    bramblex
        35
    bramblex  
       2017-12-05 12:04:03 +08:00
    可以这么说,你操作系统和网络里面的所有的算法,几乎都是被优化到通用场景下的极限的。
    SuperMild
        36
    SuperMild  
       2017-12-05 12:35:24 +08:00 via iPhone
    你自己开发的产品,你可以自由决定怎样收费,怎样提供服务。别人开发的产品,不宜评价。

    好不容易有人走回用户交费使用服务的正统路线,非逼着人家靠弹广告收费才开心吗!
    SuperMild
        37
    SuperMild  
       2017-12-05 12:35:44 +08:00 via iPhone
    发错了
    xiqingongzi
        38
    xiqingongzi  
       2017-12-05 13:50:14 +08:00 via iPhone
    @dychenyi 好多运维其实干的是开发的活、搞各种各样的集群管理系统,比如 CMDB (好像叫这个,有次看到了)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5175 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 08:13 · PVG 16:13 · LAX 01:13 · JFK 04:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.