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

高数对后端程序员的意义有多大?

  •  
  •   cnbattle ·
    cnbattle · 2017-10-30 08:51:11 +08:00 · 13032 次点击
    这是一个创建于 2577 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人初中之后上了五年的专科学校,没有学习过高中数学,顾对高数公式的符合都看不懂,有不有必要去学习一下,对程序员的帮助意义有多大?

    没有高数的经验会不会限制某些情况下的编程思维?

    是去学习补下高数,还是学习更深一些的技术?

    目前是两年 php 后端,初中时数学成绩优秀,150 分的卷平均考 130.140 左右.

    第 1 条附言  ·  2017-10-30 10:33:45 +08:00
    指:高中数学 (捂脸......)
    87 条回复    2017-10-31 09:51:03 +08:00
    stcasshern
        1
    stcasshern  
       2017-10-30 08:54:11 +08:00
    我个人觉得数学对于程序员的帮助在于建模能力的锻炼,然后举一反三。
    KNOX
        2
    KNOX  
       2017-10-30 08:56:52 +08:00 via Android   ❤️ 6
    我还以为你说高等数学,原来是高中数学,高中数学跟高等数学差远了。另外,数学好会对理解算法逻辑有帮助。
    azygote
        3
    azygote  
       2017-10-30 08:57:18 +08:00
    不是算法岗的话碰到需要用高数解决问题的概率不大。
    hu0097
        4
    hu0097  
       2017-10-30 08:59:55 +08:00   ❤️ 4
    进来之前我当是高等数学。。没想到是高中数学。。。
    noli
        5
    noli  
       2017-10-30 09:00:26 +08:00 via iPhone
    如果只需要满足 php web 后端的需求,应该对高数不会有什么要求吧。

    另外初中数学和高数完全是两回事。讲道理的话,国外的数学教材难度差不多也是一下子从代数思想到极限思想,微积分之类的,如果不是应付高考其实国内高中数学不学也没啥问题(但你学不懂的话目测应对高数也会有难度)
    miyuki
        6
    miyuki  
       2017-10-30 09:02:44 +08:00 via Android
    后排提醒 高中数学 /高等数学(大学数学中的一部分)
    we2ex
        7
    we2ex  
       2017-10-30 09:03:50 +08:00 via Android
    我刚想搭车问一下高代,结果发现车不对😂
    eccstartup
        8
    eccstartup  
       2017-10-30 09:07:24 +08:00 via iPhone
    黑的漂亮
    mengzhuo
        9
    mengzhuo  
       2017-10-30 09:09:18 +08:00 via iPhone
    搬砖不需要,会加减乘除,三角函数,log,乘方,解简单的二元一次方程就行。

    开心么?
    Norie
        10
    Norie  
       2017-10-30 09:09:27 +08:00
    看工作性质吧,什么大数据科研之类,高数只是最基本要求吧。
    LokiSharp
        11
    LokiSharp  
       2017-10-30 09:10:42 +08:00
    高中数学的话,没用。高等数学的话,有用。
    hand515
        12
    hand515  
       2017-10-30 09:11:27 +08:00
    大学学的高数差不多忘光了
    Perseus1812
        13
    Perseus1812  
       2017-10-30 09:11:50 +08:00 via Android
    不需要,不搞数据分析不需要懂这些。
    liuzuo
        14
    liuzuo  
       2017-10-30 09:12:30 +08:00
    高等数学的第一章=所需高中数学的所有。
    justfindu
        15
    justfindu  
       2017-10-30 09:12:52 +08:00   ❤️ 1
    刚开始吧 觉得高数 / 线代 / 离散 有个毛用, 刚开始工作了写写业务, 然后吧 想要更进一步就会觉得 真应该好好好好学
    sagaxu
        16
    sagaxu  
       2017-10-30 09:13:03 +08:00 via Android
    比起高数,更重要的是搞个本科学历,稍微正规点的公司都是不招专科的
    nullcc
        17
    nullcc  
       2017-10-30 09:13:27 +08:00
    高数=高中数学。。
    数学是基础
    skyjerry
        18
    skyjerry  
       2017-10-30 09:13:37 +08:00 via iPhone
    同意 5 楼,顺便给个建议,不要在没有打算进入相关领域的情况下对计算理论看的太重
    GPIO
        19
    GPIO  
       2017-10-30 09:14:58 +08:00
    还是学一学吧,起码能知道高数是高等数学不是高中数学啊。
    另外如果项目中要用到矩阵卷积什么的(虽然我基本没用过),还是有用的。
    WendellSun
        20
    WendellSun  
       2017-10-30 09:15:40 +08:00
    @justfindu 一样。
    andychen20121130
        21
    andychen20121130  
       2017-10-30 09:21:02 +08:00
    初中数据这么牛怎么不读高中
    luozisha
        22
    luozisha  
       2017-10-30 09:23:20 +08:00
    初中数学满分不是 120 么?
    kinghero
        23
    kinghero  
       2017-10-30 09:24:37 +08:00
    原来高数 = 高中数学 :)
    高等数学的话,更多在于培养数理逻辑能力,数学(高等数学 /线代 /概率...)对算法岗来说还是挺重要的。
    高中数学的话,只能说是基础中的基础吧。
    smallfount
        24
    smallfount  
       2017-10-30 09:27:11 +08:00
    .....我以为是高等数学....
    wupher
        25
    wupher  
       2017-10-30 09:32:16 +08:00
    高等数学还是挺重要的,高中数学是高等数学的基础。

    对后端来说,概率、线性代数都有用得上的地方。有兴趣的话,可以买些趣味性参考性书籍慢慢看着呗,也不难。不用看教材,可能太枯燥反而看不进。
    lujiajing1126
        26
    lujiajing1126  
       2017-10-30 09:32:28 +08:00 via iPhone
    楼主说的是他没学过高中数学所以看不懂高等数学吧?😂

    理论力学老师说这门课就三页 PPT,Lagrangian,Hamiltonian 和 Possion Bracket。那高等数学大概知道积分,微分,泰勒展开应该足够了😒
    zjsxwc
        27
    zjsxwc  
       2017-10-30 09:32:45 +08:00
    高数(或者说 微积分)写服务端时好像确实没怎么用到, 更多的是用来分析简化问题, 比如通过卷积来简化复杂的电磁厂问题为简单的线性代数问题.

    但是线性代数等却用得到, 比如数据库查询的笛卡尔积, 比如矩阵相关的运算实现都涉及到常用的算法(深搜, DP 等)
    likeshu
        28
    likeshu  
       2017-10-30 09:34:16 +08:00
    其实我国的高等数学就是微积分,另外我觉得楼主应该去弄个本科文凭比较好,选本科课程中有高数的,先按照考试要求学一波高数,单独学高数你会崩溃的。
    inisun
        29
    inisun  
       2017-10-30 09:36:21 +08:00 via iPhone
    普通本科生产线出来的,都基本学过高等数学、离散数学、线性代数、概率论。不过说句难听的话吧,绝大部分人都轮不到或者说没资格去做算法,也没多少公司面试会问你什么分布函数啊、定积分之类的玩意,顶到头就让你写几棵树又或者问问常用函数的基本实现而已,我偏向于没必要自己再去学高数,指高等数学,不是高中数学……
    FollowHeart
        30
    FollowHeart  
       2017-10-30 09:38:55 +08:00
    话说初中数学满分不是 120 么, 现在同高中一样 150 了?
    murmur
        31
    murmur  
       2017-10-30 09:39:40 +08:00
    高数不代表你生产用多少 代表你的逻辑思维能力
    we2ex
        32
    we2ex  
       2017-10-30 09:39:55 +08:00 via Android
    @luozisha 好巧,我们也是 120
    @lujiajing1126 可是上过高中就能看懂高数么🤔,这得上过大学吧
    Chingim
        33
    Chingim  
       2017-10-30 09:40:35 +08:00 via Android
    离散数学我觉得有必要学学
    amai
        34
    amai  
       2017-10-30 09:43:32 +08:00
    把高数误解为高中数学的话,那么需要从新补习一下这 2 个高数了~~

    其实高数对于后端的意义主要是眼界问题
    annielong
        35
    annielong  
       2017-10-30 09:50:23 +08:00
    一般只做业务逻辑之类的实际上用不到,但是有些需要,比方解密,解码之类的,见过使用 16 进制通过算法来直接处理复杂字符分类,写的真优雅简洁
    fox0001
        36
    fox0001  
       2017-10-30 09:51:45 +08:00
    高中数学 ≠ 高等数学 ,所以,没事,你所说的“高数”可以忽略
    Shura
        37
    Shura  
       2017-10-30 10:01:38 +08:00
    我可能学了假高数?不过我感觉高中数学还还是有必要了解一下的吧,虽然已经忘记了哪些数学是高中学的了。
    dangyuluo
        38
    dangyuluo  
       2017-10-30 10:02:38 +08:00
    学一学数论吧,哦你说的是高中数学。
    itroad
        39
    itroad  
       2017-10-30 10:03:16 +08:00
    没有接触密码学的话,做后端基本逻辑已经够用了,专门学程序思维就可以了,比如数据结构,递归,二叉树等基本编程思维
    ytmsdy
        40
    ytmsdy  
       2017-10-30 10:03:51 +08:00
    当你开始接触机器学习的时候,你就会发现高等数学的重要性!
    xiaowangge
        41
    xiaowangge  
       2017-10-30 10:08:21 +08:00   ❤️ 3
    《冒号课堂》----答读者问(1)——对程序员的一些个人建议

    http://blog.zhenghui.org/2010/06/03/advice-on-programmer/


    关于数学基础,窃以为并非什么太大的问题。几乎每个得知我数学背景的人都会对我说:哦,学数学的人来学计算机自然容易啦。事实上,这种观点虽然极为普遍,但也极为肤浅。本人从事数学 14 年(从本科算起)、从事计算机 12 年(与前者有部分重合),在这一点上还是比较有发言权的。事先说明,以下提到的数学不包括高中数学。其实大多数从事软件开发的人员用不到太多的数学知识,他们只需要正常的逻辑思维能力和抽象思维能力。整天拿数学说事,要么是无知,要么是找借口,要么是装高深。当然,我不否认一些高级算法、计算机理论以及人工智能等领域可能涉及到高深的数学知识(其实也只是图论、组合数学、数论、概率论、计算几何、抽象代数、数学逻辑等中的一小部分),但那毕竟只是少数。我也不否认自己的数学背景有助于对编程的理解,但投入产出比太低,不值得作为经验来推广。不过若想成为一位计算机科学家,那就另作别论了——这时数学懂得再多也会嫌少的。


    倒是英语我希望你更重视些。我在《冒号课堂》中专门提过阅读原著的必要性,而且你也意识到译著的质量问题。建议不必特地去学习英语(你本来就会了,不是吗?),只要坚持读经典原著即可。其实,计算机方面的英文算是很容易的了,关键是克服自己的惯性和惰性。开始可能不习惯,看多了就习惯了。在此提醒一点,在阅读时请有意识地培养自己对英语的语感,就像编程时要有意识地培养自己对编程语言的语感一样。


    总之,对于程序员来说,数学没有人们认为的那么重要,英语没有人们认为的那么不重要。


    再说说专业方面的问题。你提到愿意重新自学大学课程,虽精神可嘉,但未必可取。从软件(或建筑)设计的观点来看,这是 bottom-up 法。作为学生,最好采用这种方法,但你已经参加工作了,所以我建议你更多地采用 top-down 法。这当然不是轻视基础知识,而是认为获取知识最高效的方法莫过于按需( on demand )学习。在实际工作中意识到某个知识点的重要性,从而有针对性地弥补短板,这样学习起来不仅更有效率,也更有兴味。需要强调的是,绝不能只是 “头痛医头”,而要“拔萝卜带出泥”。只有寻根究底、以点带面,才能快速有效地建立起自己的知识结构体系。对于软件开发这类实践性很强的专业来说,该法尤其奏效。
    satanandroid
        42
    satanandroid  
       2017-10-30 10:08:39 +08:00
    高数被黑的最惨的一次...
    moka20477
        43
    moka20477  
       2017-10-30 10:08:44 +08:00
    莫名其妙的一堆评论,LZ 什么时候说高数=高中数学了?他说没学过高中数学,所以看不懂高数公式
    xiaowangge
        44
    xiaowangge  
       2017-10-30 10:09:42 +08:00
    “事先说明,以下提到的数学不包括高中数学。”
    cnbattle
        45
    cnbattle  
    OP
       2017-10-30 10:15:18 +08:00
    @luozisha 江苏的 150
    49gd
        46
    49gd  
       2017-10-30 10:15:29 +08:00
    所以到底指的是高等数学呢 还是高中数学呢
    hcnhcn012
        47
    hcnhcn012  
       2017-10-30 10:17:38 +08:00 via iPhone
    后端应该不需要像朴素贝叶斯算法这种东西吧
    kx5d62Jn1J9MjoXP
        48
    kx5d62Jn1J9MjoXP  
       2017-10-30 10:24:24 +08:00 via Android
    没用。
    高数不就是微积分吗,码农用得着微积分?我认识的后端连自然底数是什么都不知道
    alber1986
        49
    alber1986  
       2017-10-30 10:26:26 +08:00
    前端路过
    himan85
        50
    himan85  
       2017-10-30 10:27:29 +08:00
    初中数学我都是满分的,,,高中就跪了
    gyorou
        51
    gyorou  
       2017-10-30 10:42:59 +08:00
    高等数学是深入学习的基础,而线性代数,离散数学,和概率统计是深入做研究的基础。
    当然普通的后端码农高中数学程度就行了。
    Rice
        52
    Rice  
       2017-10-30 10:43:08 +08:00
    一开始觉得没用,结果真要用到时跪了
    meszyouh
        53
    meszyouh  
       2017-10-30 10:54:18 +08:00
    随便找本微积分上 之类的, 看看怎么样。初中那点就算了吧, 高中的一节小课就完了
    meszyouh
        54
    meszyouh  
       2017-10-30 10:56:53 +08:00
    @meszyouh 抱歉, 没看到追加内容
    depress
        55
    depress  
       2017-10-30 11:01:38 +08:00
    想成为金字塔尖的从业者需要,否则背一些常用算法每月拿两三万足够,当然数据相关工作者不在讨论之列
    du5t6reak
        56
    du5t6reak  
       2017-10-30 11:06:20 +08:00 via iPhone
    个人觉得,高中数学有三块儿比较有用。集合,概率,还有函数。东西都不难,找本书来看看,百利无一害。
    chenyu8674
        57
    chenyu8674  
       2017-10-30 11:07:31 +08:00   ❤️ 1
    加减乘除让你有饭吃,高数线代离散让你想吃啥吃啥
    RLib
        58
    RLib  
       2017-10-30 11:33:01 +08:00
    计科要求是数学一
    noNOno
        59
    noNOno  
       2017-10-30 11:37:03 +08:00
    @moka20477 lz 的追评可能伤了你的心-_-
    RqPS6rhmP3Nyn3Tm
        60
    RqPS6rhmP3Nyn3Tm  
       2017-10-30 11:38:49 +08:00 via iPad
    正在写高数作业的我:
    还是好好学吧,要不然让你证明一段代码的正确性都没办法
    xhay
        61
    xhay  
       2017-10-30 11:40:48 +08:00
    学好数理化,走遍天下都不怕
    moka20477
        62
    moka20477  
       2017-10-30 11:41:35 +08:00
    @noNOno ┑🙂┍ 摊手
    chiu
        63
    chiu  
       2017-10-30 11:42:06 +08:00 via Android
    高数,高中数学,一脸懵逼
    zzy8200
        64
    zzy8200  
       2017-10-30 11:42:32 +08:00 via iPhone
    计科所有 graduate level 以下的方向都不需要数学,所有 graduate level 以上的方向都需要大量数学,否则就只能调调包。

    以前本科觉得数学没啥用 没好好学,现在被各种虐
    innersenses
        65
    innersenses  
       2017-10-30 11:44:18 +08:00
    去 B 站看视频讲座不就行了,慢慢看,从基础的看起。国内的,国外的,都互相借鉴对比着看。
    libook
        66
    libook  
       2017-10-30 11:45:15 +08:00
    数学对编程本身来说不是刚需。
    都是程序员,看你在做啥行业,如果你在做门户网站的话几乎不会用到数学知识,但如果你在做人工智能或大数据分析的话可能就会日常用到高等数学。
    但有可能遇到的一些场景需要使用数学知识来解决,这个不光是编程,其他很多行业都是一样,看你实际遇到了什么问题、要做啥。
    个人觉得对编程最有用的是:
    数理逻辑:让代码清晰、程序可靠。
    英语:看国外最新潮的文档(但并不是说考四六级就一定能看懂技术文档,日常英语和技术职业英语还不大一样)。
    其次对工作最有用的是:
    形式逻辑:高效沟通。
    语文:准确地应用准确的词汇和句式将意思表达得准确(注意三个 de 的用法)。

    另外并不是说不是刚需就完全不需要学了,只是不是最高优先级而已,实际上数学是一种基础工具,在各行各业都有指导意义,遇到一个问题的时候可能在具备数学知识的情况下会有更优的方案可以选择。

    总之技术人员的核心竞争力之一就是解决问题的能力,而知识储备决定了你能有多少解决方案可以选择,起点低不要紧,要紧的是用多久时间你可以达到行业平均水平。
    joyhub2140
        67
    joyhub2140  
       2017-10-30 11:59:54 +08:00
    高中数学,对我最大的帮助就是大部分求和公式,在很多场景下取代 for 循环,还有估算算法的复杂度,log()是个好东西
    imn1
        68
    imn1  
       2017-10-30 12:14:12 +08:00
    对一般程序员来说,数列 /集合 /排列组合,可能使用的场合更多,尤其是自然数数列
    其实应该是非负整数数列,只是很多数学知识来自 自然数数列
    例如,总和为奇数,分配给两组,他们的差必然为奇数,这样就排除偶数,可使循环次数减少一半
    诸如此类,理论知识和小知识、小技巧都是有帮助的

    利用集合的交并差,可以减少大量“无用数据”,包括 SQL 这些实际上也是集合的知识,这些也是程序员必备的



    很多时候老板只是扔一个问题,或者客户只是提一个需求,方案还是自己想的,中间就可能用到更多数学知识
    如果很幸运一直有人帮你解决方案,10 年、20 年?你很难得到升职或更高薪酬职位,然后就老了

    如果有更强的数学知识,那你就可以“脱离”程序员这个岗位,进入到提供方案的层次
    不是说从此不需要写程序,而是说,写程序变成用来检验你方案可行性,然后再提交给实施者(程序员)
    这样,你的 IT 生涯可以延续更长的时间,可能 30 年、40 年
    qwertyegg
        69
    qwertyegg  
       2017-10-30 12:48:19 +08:00
    当然很重要,包括基本的高等数学也很重要。不然连牛顿第二定律都难理解。只做商业逻辑的话倒是没啥用
    saulshao
        70
    saulshao  
       2017-10-30 14:00:10 +08:00
    其实数学本身对于商业软件开发没什么大用,除非你是从事算法类的开发。
    但是了解基础(无论是高等还是初等)的数学知识和数学语言对于沟通有很大的帮助,主要是减少沟通中的误解。
    但是学习数学来降低沟通成本,确实效费比不怎么样。
    glues
        71
    glues  
       2017-10-30 14:05:59 +08:00
    高中数学有集合、函数,排列组合、概率统计、数学归纳法,反证法等。这些基础知识无论在哪个理工科专业领域都是必须要懂得吧?更何况计算机?
    stabc
        72
    stabc  
       2017-10-30 14:15:38 +08:00
    高数我就只记得一个“夹逼定理”,不影响我写程序啊
    xianyunyehe
        73
    xianyunyehe  
       2017-10-30 15:00:29 +08:00
    高中数学。跟高等数学不是一个概念、学习了数学对程序肯定是有好处的。有利于你进行抽象和建模。
    stirlingx
        74
    stirlingx  
       2017-10-30 15:18:16 +08:00
    初中数学一直满分的,你这分数太低了,不适合,还是转行吗
    OnceMore2020
        75
    OnceMore2020  
       2017-10-30 17:20:37 +08:00
    离散数学更重要点,对于计算机科学的话
    flyico
        76
    flyico  
       2017-10-30 17:45:40 +08:00
    跟业务有关,有的简单的业务初中数学足矣。
    xupefei
        77
    xupefei  
       2017-10-30 17:57:16 +08:00
    说出来很不好听,但是大多数程序员并不需要很多数学知识,因为他们和拧螺丝一样,都是底层工作。
    程序员往上是工程师,工程师需要懂一些数学知识(主要是概率学和离散数学)来进行算法设计。

    最顶级的计算机工作者是科学家,他们需要用严格的数学证明来支持自己的理论,而这些证明在工程师看来可能不需要,就像样本方差里 /n 和 /(n-1) 的区别一样。
    xupefei
        78
    xupefei  
       2017-10-30 17:59:29 +08:00
    @xupefei #77 纠正一下: “因为他们和拧螺丝一样,都是底层工作。” 应该改为 “因为他们和拧螺丝一样,用的都是现成的思路和别人设计好的算法。”
    xiaoyang7545
        79
    xiaoyang7545  
       2017-10-30 18:16:49 +08:00
    做底层算法的话。十分重要。单纯做应用其实接触到的机会不大。
    wingoo
        80
    wingoo  
       2017-10-30 18:23:01 +08:00
    基本的数学逻辑素养还是要的
    zhouyou457
        81
    zhouyou457  
       2017-10-30 18:24:40 +08:00
    高中数学 110,大学高数 20 的路过......现在两个都忘完了
    linlich
        82
    linlich  
       2017-10-30 19:31:03 +08:00
    高数🙉
    dobelee
        83
    dobelee  
       2017-10-30 19:34:03 +08:00 via Android
    高中数学大部分是常识。不考虑那些钻牛角尖的高考题。
    fancyhan
        84
    fancyhan  
       2017-10-30 19:36:17 +08:00
    90%的情况,一毛钱关系都没有.
    wdlth
        85
    wdlth  
       2017-10-30 21:05:10 +08:00
    对算法工程师用处比较大
    Bryan0Z
        86
    Bryan0Z  
       2017-10-31 01:31:58 +08:00 via Android
    @xiaowangge 读经典原著绝对不适合英语不好的人,比如呼啸山庄,通篇 GRE 单词,比如双城记,好多语法和现在不一样
    checgg
        87
    checgg  
       2017-10-31 09:51:03 +08:00
    现在都开始这么花式黑 Phper 了吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1182 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 23:17 · PVG 07:17 · LAX 15:17 · JFK 18:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.