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

为什么很多后端程序员认为前端很难学?

  •  
  •   jimmyismagic · 2020-07-23 10:46:05 +08:00 · 30588 次点击
    这是一个创建于 1582 天前的主题,其中的信息可能已经有所发展或是发生改变。

    很多工作了多年的后端程序员,都会有些个人创业的想法,但是不会前端,觉得前端很难,不知道怎么学?

    为什么会有这种现象呢,前端的难到底在哪里?

    224 条回复    2024-05-22 20:17:27 +08:00
    1  2  3  
    lilywang
        1
    lilywang  
       2020-07-23 10:50:15 +08:00
    工程化
    lanbatian
        2
    lanbatian  
       2020-07-23 10:50:54 +08:00   ❤️ 15
    大哥我是前端,我跟你有相反的疑惑...
    YadongZhang
        3
    YadongZhang  
       2020-07-23 10:52:57 +08:00   ❤️ 1
    liubaicai
        4
    liubaicai  
       2020-07-23 10:53:01 +08:00   ❤️ 1
    一方面是扣样式细节太麻烦了。另一方面是懒得学。
    abelmakihara
        5
    abelmakihara  
       2020-07-23 10:53:27 +08:00
    没尝试过 很多大学完全没学前端的
    有陌生感 真觉得难吗未必吧
    huiyadanli
        6
    huiyadanli  
       2020-07-23 10:53:38 +08:00
    一般是相反的吧。。。

    后端 web 开发基本都会点前端的。。

    早期没有前端的时候都是后端一个人一把梭的。。。
    nianyu
        7
    nianyu  
       2020-07-23 10:54:46 +08:00   ❤️ 2
    前端不难学 后端不难学 算法 操作系统也不难学
    特别难学的根本产生不了这么多的岗位, 纯数 理论物理真正难的东西也不会普及
    lewis89
        8
    lewis89  
       2020-07-23 10:54:56 +08:00   ❤️ 36
    后端
    1+1 = 2
    2+2 = 4

    前端 CSS:
    1+1 = 2
    2+2 = 4.1
    2+null = "2null"

    前端 CSS wtf?
    nicevar
        9
    nicevar  
       2020-07-23 10:55:30 +08:00   ❤️ 5
    不是难学,是太乱,轮子太多,搞出太多奇奇怪怪的东西,容易让人一头雾水,看 github 上前端的项目,很有意思的一点就是跟其他项目比会有一堆 issue 都是项目跑不起来的。。。
    koharu
        10
    koharu  
       2020-07-23 10:56:01 +08:00   ❤️ 1
    相反吧...后端=前段+后端+运维+测试 wdnmd
    duwan
        11
    duwan  
       2020-07-23 10:59:36 +08:00   ❤️ 2
    我是后端,我感觉 vue 挺好学,但是 CSS 实在是太难了。。
    duwan
        12
    duwan  
       2020-07-23 11:00:38 +08:00
    也是没系统学过 CSS,就是使用过后的个人感觉
    HolmLoh
        13
    HolmLoh  
       2020-07-23 11:00:39 +08:00   ❤️ 1
    前端有带 ui 的框架搬砖的话我觉得不算难
    cs 什么?
    什么 ss ?
    c 什么 s ?
    gantleman
        14
    gantleman  
       2020-07-23 11:00:52 +08:00   ❤️ 1
    个人觉得前端更偏向艺术设计和人机交互。
    后端更像机械工程,偏重效率和逻辑结构。
    luckyrayyy
        15
    luckyrayyy  
       2020-07-23 11:01:08 +08:00
    要不是前端太啰嗦而且换方向麻烦,我就搞前端去了...写页面多简单噢,反馈又快有成就感。
    baiyi
        16
    baiyi  
       2020-07-23 11:04:03 +08:00
    难在 css
    swieer
        17
    swieer  
       2020-07-23 11:04:28 +08:00
    前端没有话语权,系统架构,项目经理都是后端的人
    kop1989
        18
    kop1989  
       2020-07-23 11:05:36 +08:00   ❤️ 9
    前端和后端的实现逻辑不同。
    前端是面向 ui 编程,目的是让界面更美观、易用、性能更好。ui 的需求五花八门所以知识非常细碎。
    后端是面向数据编程,所以需求更集中,“保证正确的前提下优雅的增删改查”,是后端的唯一追求。
    前端的难点在于“条条大路通罗马,到底该选哪一条”。
    后端的难点在于“千军万马过独木桥,你还让我性能高”。
    iConnect
        19
    iConnect  
       2020-07-23 11:07:52 +08:00 via Android
    前端偏艺术性,后端更逻辑性。叫工程师去画美女一样,各自难的方面不一样。
    uminokoe
        20
    uminokoe  
       2020-07-23 11:08:43 +08:00   ❤️ 11
    下图可能是原因之一...

    linxl
        21
    linxl  
       2020-07-23 11:09:22 +08:00
    没耐心写 CSS 而已 (定制 ui 实在搞人).
    通用后台很多现成的, 还好.
    murmur
        22
    murmur  
       2020-07-23 11:11:12 +08:00
    css 不难,主要是前端要兼职设计,还要踩兼容性的坑
    gadsavesme
        23
    gadsavesme  
       2020-07-23 11:11:20 +08:00
    不难学啊。。一般后端的程序员多少都会点前端的东西吧。我就写过 vue 和 angular,当然解决不了的很高深的问题。
    mtrec
        24
    mtrec  
       2020-07-23 11:12:57 +08:00 via Android   ❤️ 2
    长一点的 css100 个人写可以写出 100 种不重样的写法
    tolerance
        25
    tolerance  
       2020-07-23 11:13:31 +08:00
    琐碎,各种小细节
    takemeaway
        26
    takemeaway  
       2020-07-23 11:13:47 +08:00
    难易程度:
    前端<后端<算法、数据处理、应用软件<编写语言、中间件、驱动<操作系统<芯片架构。
    glaucus
        27
    glaucus  
       2020-07-23 11:15:05 +08:00
    我自己来说的话一是样式觉得细节挺多挺难的,二是不知道选哪个框架技术栈,三是 npm 那一套用不太管。。。。
    lovecy
        28
    lovecy  
       2020-07-23 11:15:43 +08:00
    不是难,而是没必要自己搞前端,感觉就像苦力活,找个打工仔干活就行了[doge]
    onfuns
        29
    onfuns  
       2020-07-23 11:15:46 +08:00   ❤️ 2
    前端难学吗?不就是写写样式,调调接口而已。
    后端难学吗?不就是增删改查,拼拼数据而已。
    0x000007b
        30
    0x000007b  
       2020-07-23 11:16:46 +08:00
    我后端,用前端感觉是真的啰嗦。。。。就花里胡哨一大堆轮子,一个简单的功能要实现工作量贼大,但是思路上又没有太多其他场景可重用抽象的地方,技术迭代太快,学了这个第二天就变了。
    我只简单学了学 VUE+iview,抱着能跑就行绝不自己写的心态,简单的地方自己写给自己用,现成的后台套一套还行。真要转前端可能要疯
    lp7631010
        31
    lp7631010  
       2020-07-23 11:17:06 +08:00 via iPhone   ❤️ 1
    请不要把你当成很多
    295464512
        32
    295464512  
       2020-07-23 11:17:55 +08:00
    不是难学,是懒得学....
    lp7631010
        33
    lp7631010  
       2020-07-23 11:17:56 +08:00 via iPhone
    很多时候不是觉得难 是觉得没必要
    masker
        34
    masker  
       2020-07-23 11:20:07 +08:00 via Android
    请不要以你自己的思维去以为所有人都是和你同一个思维
    1069401249
        35
    1069401249  
       2020-07-23 11:22:02 +08:00
    我是后端,我没觉得前端难学啊
    angryfish
        36
    angryfish  
       2020-07-23 11:23:01 +08:00
    css 麻烦,还诡异。
    MengiNo
        37
    MengiNo  
       2020-07-23 11:25:02 +08:00
    传统的所谓后端都会一点的那种 JQuery 一把梭的页面,现在应该已经都不配纳入前端范畴了吧。个人认为前端最难的就是不确定性,不像后端求稳讲逻辑,用了十几年的、ifesle 兼容到爆炸的祖传代码也不在少数。而前端纵向不用对历史负责的特性,导致新花样新轮子每天都有,而横向的兼容性问题又导致各种包一个个“百花齐放(贬义)” 胡里花哨,最终的结果就是后端对这种无法把控的行为越来越感到没有安全感。
    luhe
        38
    luhe  
       2020-07-23 11:28:13 +08:00
    纯后端新手,我感觉前端零零碎碎的东西太多了。html 标签巨多,css 属性巨多,怎么调样式好看没头绪;浏览器兼容性要调试;我个人看 js 代码有种凌乱感,看 java 就没有;框架更新太快了; npm start 跑一下跑半天,跑出一堆文件,删都要删半天,导致我抗拒感很强。
    sockball07
        39
    sockball07  
       2020-07-23 11:29:54 +08:00   ❤️ 1
    前端的适配是我最不想做的事之一...
    raaaaaar
        40
    raaaaaar  
       2020-07-23 11:30:08 +08:00 via Android
    和人有关系吧,许多人不愿意踏出舒适区去学新东西,对他们来说都是困难的
    daimubai
        41
    daimubai  
       2020-07-23 11:31:21 +08:00 via iPhone
    不难呀,我觉得前端挺有意思的
    arischow
        42
    arischow  
       2020-07-23 11:31:23 +08:00
    不会设计,如果我做前端的话我想把 UI 也做得很好。
    wee911
        43
    wee911  
       2020-07-23 11:31:27 +08:00
    觉得 css 不难,都是初级前端
    LiuJiang
        44
    LiuJiang  
       2020-07-23 11:33:39 +08:00
    我觉得后端简单,前端是真的难,各种新玩意。
    zooo
        45
    zooo  
       2020-07-23 11:37:44 +08:00
    后端 我也觉得 css 好难搞
    yuhangch
        46
    yuhangch  
       2020-07-23 11:38:59 +08:00
    css 一生之敌
    viiii
        47
    viiii  
       2020-07-23 11:40:49 +08:00
    难学倒不是, 太乱变化太多是最主要的
    janxin
        48
    janxin  
       2020-07-23 11:40:56 +08:00
    因为前端麻烦...很多工作很原始不像后端有很多高度封装并且还需要很多自定义,像 Java 程序员这么舒服肯定是没可能了...
    dinjufen
        49
    dinjufen  
       2020-07-23 11:42:11 +08:00
    css + 适配 = 蛋疼
    zjsxwc
        50
    zjsxwc  
       2020-07-23 11:44:19 +08:00
    并没有, 大部分后端都懂 html 、js,只是懒得切图和调 css
    namelosw
        51
    namelosw  
       2020-07-23 11:44:39 +08:00
    arthas2234
        52
    arthas2234  
       2020-07-23 11:52:49 +08:00
    作为后端,我也在学前端,也是比较烦 CSS 。后端程序员比较喜欢确定的以及自己能把控的东西,CSS 对我来说太玄学了
    难搞哦~靓仔
    miv
        53
    miv  
       2020-07-23 11:54:11 +08:00
    我认识有一些后端的开发,前端不会。
    一方面是自己不想学,另一方面是感觉太难。
    如果从难这个角度来说,有很多封装好的前端框架,可以减低一些难度。
    不过让一个只会一点 CSS 、HTML 、JavaScript 的后端开发,去搞 Vue,然后用上一些框架,这里面还是有一点难度的。
    我本身来说,从一个会 CSS 、HTML 、JavaScript 的小白到会 Vue 使用,也得花几个月。
    为了实际的项目开发,如果要用上 Antd 、Element 、Vant 这种框架也得至少一个月。
    当然如果学会了 Element,再去学 Uniapp 、Element 之类相似的东西的话,学习就快一半的实际差不多。
    可以说:熟能生巧、举一反三。
    我身边有几个这样的例子,他们也和我一样,之前会后端,因为项目需要,了解了 Vue 、用上了 Antd 也就几个月的事情。
    当然、我这里说的“会用”,其实很惭愧,只是会使用而已,具体的内部原理之类的东西,还是不知其所以然。
    回到主题,如果有“创业的想法”而不会前端,其实有创业想法也不一定需要自己会前端啊,如果自己搞不定,为啥不花钱或者找合伙人呢?
    以上。
    mymike
        54
    mymike  
       2020-07-23 11:54:59 +08:00 via iPhone
    适配太烦了 其他还好 上手挺快的
    aydd2004
        55
    aydd2004  
       2020-07-23 11:55:30 +08:00   ❤️ 1
    前端是烦
    zarte
        56
    zarte  
       2020-07-23 11:57:21 +08:00
    前端写法太多了。。。
    securityCoding
        57
    securityCoding  
       2020-07-23 12:00:25 +08:00
    是很难,主要是 css 我至今没搞懂过 , js 这玩意写起来也是没有固定范式, 看前端人员飘逸的写法让我很惭愧
    kzfile
        58
    kzfile  
       2020-07-23 12:01:49 +08:00
    写 js,html 都没啥问题,就是 css 实在搞不懂.所以我都用各种 ui 控件,避免自己写样式
    GeruzoniAnsasu
        59
    GeruzoniAnsasu  
       2020-07-23 12:05:02 +08:00   ❤️ 1
    “用代码画图”:
    后端:
    实现画板抽象
    实现画笔抽象
    实现画板和画笔的相互作用
    实现高级平滑机制
    实现填充工具
    实现封闭区域检测算法
    。。。


    前端:
    计算形状边长
    计算形状可以用哪几个基本形状拼出来
    计算子形状旋转角和偏移
    计算元素层级和遮挡关系
    修复换个浏览器位置不对的问题
    修复边长计算参考的元素位置会变的问题
    修复参考元素位置不变了但是会错误遮挡页面其它部分的问题
    修复这个形状在关闭上层窗口后还会显示出来的问题
    。。。
    yinzhili
        60
    yinzhili  
       2020-07-23 12:06:04 +08:00
    css 适配比较繁琐。后端相对好很多,比如 java/python 代码一旦写好,换到不同的机器上运行效果都是一样的,但是在 A 浏览器预览正常的 css 换个浏览器 B 看就可能变样了。
    julyclyde
        61
    julyclyde  
       2020-07-23 12:06:10 +08:00
    js 里面好多都是把数据 /对象作为主语的吧
    后端语言一般是作为宾语
    DoodleSit
        62
    DoodleSit  
       2020-07-23 12:14:49 +08:00   ❤️ 12
    玛德搞了 9 年前端了
    css,学了 Transformer 、Animation
    css,知道了贝塞尔曲线、矩阵变换,回头看了下数学
    html canvas,我又学了计算机图形学和 opengl
    js 复杂计算,然后学了 WebAssembly,为了写 WebAssembly 代码,又学了 Rust
    js 事件知道了事件派发和冒泡
    要做混合 app,学了 android ( java )和 ios ( oc )
    自己搭网站,学了 php laravel
    公司用的是 spring,然后又学了 spring boot
    。。。

    现在,头发也掉光了,腰不行了,钱也没赚到多少
    KyonLi
        63
    KyonLi  
       2020-07-23 12:15:46 +08:00
    所以现在大环境是默认前端很廉价喽,随便找个人学 2 小时就能出活
    tlday
        64
    tlday  
       2020-07-23 12:15:48 +08:00
    老式的 css 难,因为不健全,跟不上 html 和 js 的发展。需要用 table,float,各种负值的 margin/padding 来 hack 想要的布局,还有很多会导致效果不符合预期的 BFC 之类的东西。现代 css 中其实 95%的布局可以 display:flex 一把梭。

    BTW,css 因为理念不同于普通编程,导致几乎没法 debug 是生手感觉难的核心所在。
    yidinghe
        65
    yidinghe  
       2020-07-23 12:27:28 +08:00 via Android   ❤️ 1
    前端不难学,但是生态环境很乱,不成熟。
    ChenFanlin
        66
    ChenFanlin  
       2020-07-23 12:35:12 +08:00
    ..Android 开发, 之前想学 Web 开发, 到 CSS 直接劝退... 一个居中都有那么多种方法...
    Zien
        67
    Zien  
       2020-07-23 12:45:52 +08:00 via Android
    英语不好导致学习成本太高
    qiaobeier
        68
    qiaobeier  
       2020-07-23 12:51:04 +08:00
    不是难,是杂,乱,多
    wolfan
        69
    wolfan  
       2020-07-23 12:54:07 +08:00 via Android
    CSS 越到后面确实越南,曲线直逼 90 度。
    calming
        70
    calming  
       2020-07-23 12:55:08 +08:00
    主要是 css,其他的没什么,调样式简直要命好吗
    imn1
        71
    imn1  
       2020-07-23 12:56:28 +08:00   ❤️ 2
    1.不上框架很容易学
    2.上框架不知道学哪个,其实后端遇到多个功能相同的三方框架也难选,但后端们互相有反馈,还能选一下,前端的反馈看不懂就没法选了
    3.排版是个问题,如果只有横或竖是简单的,一旦多个组件组合,流式还是固定……
    4.排版影响定位
    4-1.为何连字体、字号不同都影响定位❓❓❓
    5.事件驱动,但事件太多,例如一个小小的输入框,可能有 on keypress, on finished, onclick, on mouse over, drag & drop, on focus ... 十多个事件,后端一般只考虑数据,个个控件都考虑一遍全部 event,太累
    不过,如果学过前端,就知道几乎所有控件来来去去都是那几个 event……控件独有的 event 其实不多,用到才去研究就行
    6.前端数据格式,无论初始如何,最后是字符 /字节输出(且要考虑格式漂亮),后端只是传数据
    7.前端数据安全和后端数据安全,概念和处理完全不同

    A.前端几乎没有 try/catch …… 任何显示错误都是 bug
    B.老板会对前端指手划脚,对后端甚少

    其他还没想到
    poppersd
        72
    poppersd  
       2020-07-23 13:03:07 +08:00
    因为 CSS 辣鸡(不正交,压根不知道动了 A 会影响 B,神奇)啊,前端轮子还多,最近几年索性出了三大框架好点了。
    black11black
        73
    black11black  
       2020-07-23 13:03:48 +08:00   ❤️ 1
    因为前端语言设计的结构性不强,模块化即使经过 es6 修正后也只是勉强达到了堪用的程度,远称不上好用,后端程序员的一个追求是写出“优美、简洁”的代码,强调通过算法和结构性解决问题,写前端对于他们来说就是灾难了。另外下面一条是个人观点,即便使用框架,我只会写 vue,工程化的部分我个人觉得设计的不好用,强行限制多,自由度小。

    Python 之禅里对良好语言的设计哲学说的很明白,“简单优于复杂,复杂优于混乱,扁平优于嵌套,间隔优于紧凑”,不管你写什么语言,你代码写的越多越会感觉这几句总结的精辟,前端语言自己对号入座对上了哪条吧。
    black11black
        74
    black11black  
       2020-07-23 13:04:14 +08:00
    @black11black 结构性最差的我觉得就是 css 了,简直是灾难。。
    xiqingongzi
        75
    xiqingongzi  
       2020-07-23 13:04:24 +08:00
    前端难学的部分在兼容,如果只是基础的逻辑,好办。但是兼容不同的系统、不同的设备,难办。
    dobelee
        76
    dobelee  
       2020-07-23 13:08:41 +08:00 via iPhone
    前端扣样式细节,后端有缺陷不会直接暴露给产品。
    falcon05
        77
    falcon05  
       2020-07-23 13:09:50 +08:00   ❤️ 1
    难的是 css,这玩意靠经验积累,有些奇技淫巧你没用过还真的不知道
    weizhen199
        78
    weizhen199  
       2020-07-23 13:12:10 +08:00
    会被用户烦死。。。
    firefox12
        79
    firefox12  
       2020-07-23 13:14:24 +08:00
    我想说的是前端的东西,没有类型,一会儿是字符串 一会就是函数名 可以申明 可以不申明,全靠记忆, 这都是什么乱七八糟的杂烩。终于有了 typescript.
    silif
        80
    silif  
       2020-07-23 13:23:19 +08:00
    @wee911 觉得 css 难的都是后端😂
    bonfy
        81
    bonfy  
       2020-07-23 13:24:03 +08:00
    前端 肯定是会点的

    但这就不是技术问题 是审美问题
    christin
        82
    christin  
       2020-07-23 13:24:34 +08:00 via iPhone
    css 太麻烦了 有时候一个属性写错样式就不对 折磨人
    inwar
        83
    inwar  
       2020-07-23 13:25:54 +08:00 via Android
    缺少统一标准
    水平不行,写出来外观靠猜
    huanglexus
        84
    huanglexus  
       2020-07-23 13:27:01 +08:00
    前端又不一定要写 css,我多年没碰过 css 了
    PiersSoCool
        85
    PiersSoCool  
       2020-07-23 13:27:47 +08:00
    我写过一段时间的 NodeJS 后端,简单的前端页面(没用任何框架)。
    JS 还算好学,就是太自由不好,而且没有什么工程化的东西;后来我写到 ES6,语法还好,但是和后端的语法不是很一致;到最后我写到 TS,发现包管理确实比较麻烦。最麻烦的是,由于语法过新,语言各种各样,各种需要转义的工具,增加了极多的门槛。
    后来写过一点点 CSS,CSS 拆开来讲不是很难,组合起来就比较麻烦;需要记忆的点太多,如果搜索也很难去下手,需要经验(就比如我一开始不知道圆角,后来才知道这个专业名词,我开始搜索的是如何让表格变平滑)。这种东西我觉得属于另一种领域,后端一般涉及的是数据处理。
    总的而言,前端这么难倒不是很难,是一个很相当需要一些经验的领域。
    LancerEvo
        86
    LancerEvo  
       2020-07-23 13:30:54 +08:00 via iPhone
    我看逼乎著名回复很适合这个贴:先问是不是 再问为什么
    我认为楼主的问题就是个伪命题 可能由于你所在的环境的局限性碰到的都是那样的人吧
    ppphp
        87
    ppphp  
       2020-07-23 13:31:50 +08:00
    css 的思维方式和编程不太一样,用了现代框架反而更难了
    tabris17
        88
    tabris17  
       2020-07-23 13:32:05 +08:00
    因为贵端太乱啊
    sayitagain
        89
    sayitagain  
       2020-07-23 13:35:12 +08:00
    我倒是因为个人工作经历,没觉得难...基本都会
    sayitagain
        90
    sayitagain  
       2020-07-23 13:36:33 +08:00
    @huiyadanli 最早刚工作的时候前端排好版提供一个 html 就完事了...数据都是后端渲染,出了问题我就自己修前端的...然后不知不觉中就会了...
    Egfly
        91
    Egfly  
       2020-07-23 13:38:39 +08:00
    只是单纯的不喜欢写 css
    wangyzj
        92
    wangyzj  
       2020-07-23 13:39:41 +08:00
    因为贵端太乱
    1534853288
        93
    1534853288  
       2020-07-23 13:41:52 +08:00
    我身边的人都是感觉前端 easy 啊 sososososososo easy
    uTuw2C6uf964Kx6o
        94
    uTuw2C6uf964Kx6o  
       2020-07-23 13:44:07 +08:00
    @luckyrayyy #15 老哥在快手了吗
    est
        95
    est  
       2020-07-23 13:46:53 +08:00
    前段不难学,前段的工具总给人一种很绕的感觉。
    so1n
        96
    so1n  
       2020-07-23 13:47:19 +08:00 via Android
    觉得前端太乱了。。
    zhouyun
        97
    zhouyun  
       2020-07-23 13:47:38 +08:00
    相反吧,主要是前端框架太多更新太快,后端都没整明白没时间整前端
    VtoExtension
        98
    VtoExtension  
       2020-07-23 13:49:11 +08:00
    后端习惯了稳定,前端一年就翻一番日新月异。
    如果一开始就搞全栈的不会有这个问题,
    只做其中一个要转,光是学习框架就难思维转变了
    chenyu8674
        99
    chenyu8674  
       2020-07-23 13:51:50 +08:00
    曾经想随手学学 VUE,然后在 webpack 的泥潭里挣扎了一个月
    NjcyNzMzNDQ3
        100
    NjcyNzMzNDQ3  
       2020-07-23 13:53:07 +08:00
    后端被迫学前端,前端被迫学后端,哎
    1  2  3  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1725 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 16:45 · PVG 00:45 · LAX 08:45 · JFK 11:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.