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

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

  •  
  •   cnbattle · 355 天前 · 8103 次点击
    这是一个创建于 355 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

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

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


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


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


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


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

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

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

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

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



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

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

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