V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
irenicus
V2EX  ›  程序员

感觉算法啥的比 web 开发简单多了

  •  
  •   irenicus · 2018-05-14 10:11:57 +08:00 · 24405 次点击
    这是一个创建于 2410 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rt,正常么 难道说我真的只适合科研不适合工程

    web 开发要学的东西蛮多的 N 年以前试图从 java 入手,javase 入门了 但 spring,serlvet 啥的就没学会,还有一堆杂七杂八的东西,感觉好多

    年前看了一晚上 python 语法,上个月认真学了一遍 现在看 flask,requests,scrapy 啥的又不少 不会也像 javaee 那么复杂吧。。。

    非科班,会点 perl,平时写个脚本还是没啥问题,代码风格也比同事好很多 SICP 看过一点点(前三章),算法导论也看过点,感觉比 web 开发简单多了

    第 1 条附言  ·  2018-05-14 11:06:48 +08:00
    可能表述的有问题
    我是觉得算法相关的这些东西学起来比 web 开发的东西学起来简单,更自然
    说的是比较基础的那些,入门的那种
    第 2 条附言  ·  2018-05-14 11:15:03 +08:00
    算法相关的东西,以及 web 开发的东西,我都是感兴趣看一看,没有深入研究
    只是从自己接触的一点来看,觉得算法的东西学起来更自然一些,更好理解
    所以才这么说的

    btw,我确实数学还行,偏科很严重的那种,不过我不是数学系,是学微电子的
    高考时候想报数学来着,当时觉得微电子热门报的微电子
    149 条回复    2018-05-15 19:20:22 +08:00
    1  2  
    jssyxzy
        101
    jssyxzy  
       2018-05-14 16:38:30 +08:00
    "各大厂的算法岗位",这种都是机器学习和人工智能的算法;
    楼主说的算法只是普通程序的算法;
    算法比 web 要难,只不过楼主前 20 年数学的学习积累觉得简单而已; web 开发你好好积累两三年,再看看难不难;
    或者你让一个文科生来学学,看看觉得算法难还是 web 开发难。
    murmur
        102
    murmur  
       2018-05-14 16:40:59 +08:00
    @jssyxzy 第四年你发现前面的白积累了 你学过的技术淘汰了 坑埋上了 旧的浏览器不用了不解决兼容性问题了 带宽更宽设备更猛了 以前做动画现在贴视频 以前优化现在各种 mvvm 使劲上
    jssyxzy
        103
    jssyxzy  
       2018-05-14 16:45:29 +08:00
    @murmur 这只是归纳总结的问题,就好比 coding 我还用一个一个去记 api ?我缺心眼?一个 dash 解决了。就好比学校为什么教 C++,计算机网络,数据结构,操作系统,没见过哪个学校专门教某种语言快速入门的,那不成了培训机构。这些东西,平时带着积累,需要的时候去查下就是了。有了 google,还有什么问题?
    oyosc
        104
    oyosc  
       2018-05-14 16:57:29 +08:00
    只能说内行看门道,外行看热闹
    yumenkun
        105
    yumenkun  
       2018-05-14 17:09:47 +08:00
    觉得算法简单是还没在一些需求中遇到硬性坎吧,例如淘宝的量级每提高 0.1 秒都很难,普通网站根本每这个量级
    RubyJack
        106
    RubyJack  
       2018-05-14 17:24:36 +08:00   ❤️ 2
    学算法像吃屎,写 web 就像回家一样,里面个个都是人才,又方便装逼,写 web 超开心的。。。
    winglight2016
        107
    winglight2016  
       2018-05-14 19:10:54 +08:00
    拿着锤子看什么都像钉子,楼主大概对 web 开发没多少概念,等你做多几个实际的 web 项目就明白算法实现和 web 开发并没有什么可比性,比如,软件程序就是由算法(逻辑)和数据组成的,web 程序一样有很多算法
    murmur
        108
    murmur  
       2018-05-14 19:15:07 +08:00
    @winglight2016 真正要在 web 程序里写算法的少只有少 真以为人人左手开发 virt dom 右手裸写 d3.js
    还不都是 npm 里哗哗拽包
    lsido
        109
    lsido  
       2018-05-14 19:38:49 +08:00 via Android
    算法是艾滋病,Web 是口腔溃疡
    masterAtyan
        110
    masterAtyan  
       2018-05-14 19:55:35 +08:00   ❤️ 1
    @jssyxzy web 开源的框架多,人工只能开源的算法也多,web 学个三年觉得不难,是因为框架用的熟悉罢了,就像说自己会 tensorflow 一样,有多少人知道原理并能代码实现的,不也是调参侠吗,根据 api 接口调调参数,写写周边非核心的代码,不觉得高级到哪里去。或许等个三四年,人工智能行业热潮过后,就知道谁是在裸泳了
    jssyxzy
        111
    jssyxzy  
       2018-05-14 20:20:52 +08:00
    @masterAtyan 算法是个人都能写出来,哪怕是人工智能,但是效果就不一定了;人工智能里大师多了,我可没听说过哪个 web 做的极好的成为大师的;至于你说的哪种调参工程师,我不讨论。
    算法看的是内功,看的是深度,是智力。就像国外大公司为什么面试大多是考的是算法和系统设计,只要招进去的是聪明人,还怕他们看不懂几本书么?
    masterAtyan
        112
    masterAtyan  
       2018-05-14 20:48:33 +08:00 via Android
    @jssyxzy 只能说你把计算机理论看的太浅,web 从界面到 v8 引擎,里面有多少理论可以说的清?有多少大师?计算机的内功是编译原理和操作系统。你所说的只是做 web ui 和业务逻辑的。

    我看过 深度学习 并不觉得你说的高门槛在哪?大部分的人工智能算法都有现成的。

    就像编程的,只有少部分人能写商用虚拟机,做算法的大部分人,也是在看别人的论文,用别人的框架。而理解论文也只是时间罢了。
    smdbh
        113
    smdbh  
       2018-05-14 21:22:07 +08:00
    刚开始,是这样的。但是,后来,就
    pexcn
        114
    pexcn  
       2018-05-14 21:58:24 +08:00
    或许 lz 数学真的很 6 (
    notreami
        115
    notreami  
       2018-05-14 23:32:00 +08:00
    简单的算法,代码库里都用、高级点的,高级点算法库里也有(神经网络啥的,现成的库都不知道有几个了)。更高级点的算法,不就是和更高级 web 一样,github 上,或者论文上,已有现成的方案或者实现,大家拿来理解,实现,再调整,去掉些原来设计上的问题和逻辑判断,增加已知的相似方案,尝试替代。
    说算法难的,麻烦整出点无法反驳的,比如你们申请了专利之类的。
    mozutaba
        116
    mozutaba  
       2018-05-14 23:39:58 +08:00
    砌砖比画图纸难?
    wtdd
        117
    wtdd  
       2018-05-15 00:15:10 +08:00
    算法是难,更需要逻辑,开发是复杂,更需要记忆
    yylucifer
        118
    yylucifer  
       2018-05-15 00:54:59 +08:00
    瞻仰大神,居然说算法简单!
    wengjin456123
        119
    wengjin456123  
       2018-05-15 01:15:28 +08:00
    说 web 简单的,写一个 V8 来看看?
    defel
        120
    defel  
       2018-05-15 02:49:48 +08:00 via iPhone
    强力安利 lz 把计算几何耍一耍,尤其是三维问题,就知道数学和算法的威力了……
    thedrwu
        121
    thedrwu  
       2018-05-15 04:47:21 +08:00
    各种 Web 前后端库,花点时间最多几个月总是可以理解的,即使细节浩瀚,不一定看得过来。

    然而电子行业用到的许多算法,从小写程序做算法题且受过正统数理与电子专业训练又混身于世界一流的研究所,仍然感觉这辈子都无法理解了。有些虽能免强实现,却无法分析误差,遇到不收敛却不知从何入手,更不用说去证明。
    wlwood
        122
    wlwood  
       2018-05-15 06:35:45 +08:00 via Android
    楼上说去调别人库的,调 api 的,特么你们这还叫写算法么?
    不可否认,你们去调 API,调别人库也可以完成你的工作,但是,你那不叫写算法!!!那不叫写算法!那不叫写算法!

    难点在哪里?
    你倒是写出一个堪比 CNN,RNN 这类的算法来啊!
    wlwood
        123
    wlwood  
       2018-05-15 07:45:09 +08:00 via Android
    严格来说,算法应该有个数学论证(无论是数论,图论还是组合数学还是其他),然后用编程语言把它描述出来。
    难点在哪里?肯定在数学推导论证啊

    经常写的那些什么快排,md5,其实都在写别人早已论证的数学推导 而已
    murmur
        124
    murmur  
       2018-05-15 07:46:10 +08:00
    @wengjin456123 v8 不属于 web 啊
    2010
        125
    2010  
       2018-05-15 08:10:13 +08:00
    我看算法导论,快放弃人生了
    huiyifyj
        126
    huiyifyj  
       2018-05-15 08:14:13 +08:00 via Android
    @wengjin456123
    v8 什么时候成 web 了?😅渲染引擎而已。
    kimown
        127
    kimown  
       2018-05-15 08:15:14 +08:00 via Android
    @murmur

    那 v8 属于什么,而且现在 wasm 导致 jsc,再跑一个 js engine 在浏览器上,wasm 不是为了 web 而生吗,你这样逻辑面试 爪哇 就不问 jvm 了,因为 jvm 根本不属于后端啊
    murmur
        128
    murmur  
       2018-05-15 08:41:11 +08:00
    @kimown 考 jvm 是因为 jvm 可以调优 需要内存分析 你了解了 v8 又如何 最终的程序跑在别人 v8 上 你又不能给他调优也不能修改什么
    VoidChen
        129
    VoidChen  
       2018-05-15 08:43:27 +08:00
    @thedrwu 前辈能不能告诉我,你们研究所真的是做研究的吗,想进研究所过了应届是不是没有机会了。。。我觉得那些想出线性代数用以实现高维投影低维的人真的很厉害啊。。。
    kimown
        130
    kimown  
       2018-05-15 08:54:15 +08:00 via Android
    @murmur

    chrome dev tools 用的也不少啊,还有 node 啊,webpack 爆内存也不少见了,面试官不是喜欢问 js 各种 trick 的优化技巧吗,不扯这些怎么加工资,这几天在看 google io 中的 wasm,按这个趋势发展下去,web 跑 js,c,cpp,c#....将来 web 就是一个终极平台,各种语言,技巧,思想在这个平台上百花齐放 ,这时候 web 会简单吗
    murmur
        131
    murmur  
       2018-05-15 08:56:07 +08:00
    @kimown 我印象中是把这些语言编译成类似字节码的东西,是直接跑么
    kimown
        132
    kimown  
       2018-05-15 09:08:25 +08:00 via Android
    @murmur

    对,有些项目 wasm 已经投入生产环境了,youtube 上面有视频,
    ,里面还举例介绍了 autocad web 版的进化史,c++在 web,android,ios 代码共享,想想所有的语言都能在 web 上跑,感觉潜力无限。

    这是 jsc wasm 版本:https://mbbill.github.io/JSC.js/
    这是 sqlite asm.js 版本: http://kripken.github.io/sql.js/GUI/

    这是已经 port 为 wasm 的项目
    https://github.com/kripken/emscripten/wiki/Porting-Examples-and-Demos
    gabon
        133
    gabon  
       2018-05-15 09:31:15 +08:00 via Android
    @saybye 双指针
    murmur
        134
    murmur  
       2018-05-15 09:39:59 +08:00
    @kimown 15 行的数据建表花了 15 秒
    简单一个排序 就这 15 行 用了 1.6 秒
    这速度怕是来丢人的吧。。
    离生产大概还多少年
    visonme
        135
    visonme  
       2018-05-15 09:46:42 +08:00
    好像某些东西让你误解了。

    抛开框架和库的思维,你就发现其实都很简单的。这些无非都是简化工作的工具,通一个其他也差不多就是两三天的事情了。

    还好你没入门前端,不然这几年层出不穷的框架和库,够你难受的了
    linux40
        136
    linux40  
       2018-05-15 09:46:55 +08:00 via Android
    少年,多项式时间的线性规划算法,不来一个吗?算法不是很简单吗?几十年前就研究出来的多项式时间算法应该很轻松吧?
    kimown
        137
    kimown  
       2018-05-15 09:52:09 +08:00
    @murmur

    其实性能这块也不是它的理论最高性能,它现在性能提升是对标现在 web 唯一语言 js 的,其实这块很大是拓宽了 web 的触及范围,有点类似 nodejs, RN 拓宽了 js 的范畴,自己学习下,然后投入项目实践,又不吃亏😆
    kx5d62Jn1J9MjoXP
        138
    kx5d62Jn1J9MjoXP  
       2018-05-15 10:02:19 +08:00
    这个网站前端多, 所以觉得算法难一点都不奇怪, 毕竟连个 quick sort 都是去看阮一峰版本的...
    juicy
        139
    juicy  
       2018-05-15 10:31:58 +08:00
    大多数工程师只是选择算法、用算法而已,创造一个算法是可能要花一辈子时间的事情
    DiamondY
        140
    DiamondY  
       2018-05-15 10:35:11 +08:00
    数学学几年了?编程编几年了?
    jimi2018
        141
    jimi2018  
       2018-05-15 10:52:32 +08:00
    学微电子的都不搞芯片,知道为啥芯片不行了吧。
    feverzsj
        142
    feverzsj  
       2018-05-15 10:53:48 +08:00
    井底之蛙
    nuxt
        143
    nuxt  
       2018-05-15 13:35:12 +08:00
    觉得简单,可能是深度不够吧。
    data2world
        144
    data2world  
       2018-05-15 13:42:11 +08:00
    @masterAtyan 也许你只是调包而已,实际的生产数据都没接触过。接触过你就不会这么说了,很多现成的算法包,sklearn、tf、都是需要改成和业务相关的,更有实现新的算法满足项目需求的。。所以薪资来讲算法一般都比 web 高,同样的门槛也相对高。
    masterAtyan
        145
    masterAtyan  
       2018-05-15 14:13:53 +08:00
    @data2world 你所说的改成业务相关的,只是比调包稍微高级一点罢了,所谓业务相关,在我看来就是处理业务属性的数据,用包去处理而已,核心的代码是不会改动的。
    门槛高是因为需求量没有 web 大而已。而且业界比较火的人工智能,大部分还是推荐系统相关的算法,这部分真心不觉得有什么技术含量,因为算法都是现成的,网上教程一大片。
    说到底,普通做算法的(不谈 nb 的)就是比做 web 的多看了几本概率论和线性代数。而且大部分做人工智能的找到高薪工作的也很少吧。
    data2world
        146
    data2world  
       2018-05-15 14:25:24 +08:00
    @masterAtyan 额,,,大部分是推荐算法。。。。可能你真的不太清楚,你所看到的推荐算法多,只是因为“展示给你了“。如头条的推荐,淘宝 JD 的推荐。实际上这都是不同的 domain。头条的推荐主要针对的是自然语言方面,文本方面。而电商的数据更多的是用户历史行为、图片方面的数据处理。希望亲多了解一下,谢谢
    masterAtyan
        147
    masterAtyan  
       2018-05-15 14:37:59 +08:00
    @data2world 在我看来都是业务上的区别。你可以说他们很难,如果你们真正的优化了推荐算法的核心原理。要不然真的只是在做算法的“前端”,做一些业务数据的预处理工作。我承认是有一定的门槛,但并不能说这些比 web 难罢了。如果有一天,人工智能也有 web 一样的工业化水准,而且职位有 web 开发一样多的话,也是烂大街。
    data2world
        148
    data2world  
       2018-05-15 14:54:36 +08:00
    @masterAtyan 个人认为门槛确实比 web 高。因为不懂数学,纯调包是不可能应聘上算法工程师的。举个例子,如不懂非参贝叶斯就很难看懂 DP,看不懂 DP 就很难理解 HDP 算法。无法理解那么"不确定文本主题聚类"就很难实现。这算法在 gensim 上虽然有实现,但是,实现的是不完整,甚至可以说是错的。这就需要自己实现了。你只调包,怎么可能实现,这也是为什么大多数算法岗位需要研究生,甚至博士生的原因,而 web,有经验的大专生都可以做 [没故意的 diss 学历,只是讲一下事实]
    masterAtyan
        149
    masterAtyan  
       2018-05-15 19:20:22 +08:00
    @data2world 我认为的门槛高低是市场供需决定的。如果 web 招聘人数和算法岗一样高,估计大公司招聘 web 工程师的素质绝对不必算法低。你说的难,只是术业有专攻,现在人工智能的算法难,是网上教材少,博客少。就像我们编程遇到问题,如果没有 stackoverflow,个人认为起码一个框架级别的问题,一般的开发是搞不定的。如果不幸遇到系统级别的问题,大部分开发都束手无策。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3323 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 11:28 · PVG 19:28 · LAX 03:28 · JFK 06:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.