V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jingcoco
V2EX  ›  问与答

开发操作系统的底层程序员比前端程序员牛在哪,如何去学习

  •  
  •   jingcoco · 2020-03-28 09:19:16 +08:00 · 5710 次点击
    这是一个创建于 1461 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,最近老感觉写了一堆 react,vue 前端,但是比如:

    • 写动效之类的还是挺郁闷的,捉襟见肘.
    • 有时候感觉需求是在不停的重复一件事情.代码很多黏贴拷贝,写写代码生成器改改就可以了.

    总之就是觉得老有挫败感.然后想问一下是工作决定了能力,还是其他?比如底层程序员 是因为

    • 工作就要考虑一堆算法所以很厉害.
    • 还是你需要有很高的理论基础,本身入门就很难,然后才能做底层的事情?

    是不是有个很牛的师傅很重要.所以知识付费还是挺有必要的,有什么推荐吗?

    32 条回复    2020-03-29 20:24:15 +08:00
    Lax
        1
    Lax  
       2020-03-28 09:30:53 +08:00   ❤️ 1
    系统学习很重要。
    seakingii
        2
    seakingii  
       2020-03-28 09:33:03 +08:00
    牛有智商高
    bottleimp
        3
    bottleimp  
       2020-03-28 09:33:24 +08:00 via iPhone
    1.先找本书静下心看看
    2.大部分知识付费都不能对你有本质提升,地铁上随便看看倒是可以
    3.有个大概了解了去找份相应的工作,可能要跳几次,不可能也不必要追求一步到位。
    seakingii
        4
    seakingii  
       2020-03-28 09:35:26 +08:00   ❤️ 1
    牛在智商高...至少不用问别人就知道怎么学习必要的知识...一般的还是做做普通应用吧
    raymanr
        5
    raymanr  
       2020-03-28 09:36:37 +08:00
    我不咋看好知识付费这玩意儿, 感觉像是割韭菜的
    相比隔着网线传授, 我还是喜欢传统一点的方式, 当面传授, 自行练习
    写底层的或许厉害的地方是在于有练习的地方, 而这个练习的地方需要一定进入的资质吧
    huazhu
        6
    huazhu  
       2020-03-28 09:41:54 +08:00
    自顶向下,看《架构整洁之道》,自底向上,看《重构(第二版)》

    PS.有些朋友可能会对架构这个词有一些异议,但不妨先花 10 分钟看看 github 翻译版的第一章,会值得的: https://github.com/gdut-yy/Clean-Architecture-zh/blob/master/docs/ch1.md

    PPS.我本身就是前端,《架构整洁之道》直接有一句话:web 是一个细节。看着的确会有一些不舒服的感觉,但是看完以后,实践一段时间,现在认为,他这么说的确有他的道理。
    ThanksSirAlex
        7
    ThanksSirAlex  
       2020-03-28 09:42:31 +08:00 via iPhone
    。。。操作系统底层要涉及到很多硬件方面的东西了,知识储备量不在一个层级
    jingcoco
        8
    jingcoco  
    OP
       2020-03-28 09:55:16 +08:00
    嗯,其实我自己也有看很多也有用很多,python,springCloud,nodeJs,shell 之类.为什么提知识付费是
    -我自己有去实现一些功能,花挺长时间的,但是做出来教给别人用其实就一个小时的事情; 总之其实是想问问有经验的
    onehao28
        9
    onehao28  
       2020-03-28 09:55:33 +08:00
    操作系统底层要懂很多,而且知识储备和上层不是一个量级的。 写个简单的应用,你知道调用哪些 API 就好了。 但是你写一个内核模块,你得懂内核的机制
    jingcoco
        10
    jingcoco  
    OP
       2020-03-28 09:56:58 +08:00
    刚才不小心提交了....总之就想问问交流一下.感觉还是挺有收获的.
    jingcoco
        11
    jingcoco  
    OP
       2020-03-28 10:04:17 +08:00
    最近有看机器学习的课 TF2.0 感觉教学的那个人(微软员工)感觉也是老是出错的,然后各种调 bug.....感觉是不是那些底层开发人员也是老是 debug 痛苦的..臆想的........
    Mithril
        12
    Mithril  
       2020-03-28 10:22:45 +08:00
    是的,而且很多 bug 还非常难调。又不是神不可能一次写完就没问题的。
    你觉得开发底层的程序员比较厉害主要是因为前端太容易做出效果。一个纯新手照着 hello world 写一天也能弄出个能看得见的效果。但你要是让一个纯新手去照着 hello world 学开发操作系统,一个礼拜都未必能过得了 boot loader 。
    至于后续的学习也不见得谁会比谁厉害。只是前端开发这种局面导致很多人随便学学自己能弄出来效果就觉得自己水平不错了,一般同等学力的底层码农还在纠结自己这玩意为啥又跑不起来了。
    heiheihei496
        13
    heiheihei496  
       2020-03-28 10:23:03 +08:00
    底层程序员牛逼只是你想像得牛逼而已. java 程序员都是 mybatis-generator 一把梭, C++ 程序员 stackoverflow 复制粘帖者, 汇编程序员都是把以前的代码改几个指令就是一个新的固件了, 说到底,很多旧的底层平台都已经有了成熟的框架了,程序员都只在上面修修改改, 像 linus 那样的大神还只是少数,何况 Linus 现在也不写代码了,只合并代码
    cmdOptionKana
        14
    cmdOptionKana  
       2020-03-28 10:23:15 +08:00
    研究系统底层,其实与研究 react, vue 的源码或 jvm 细节差别不大,操作系统的底层是底层,前端框架的底层也是底层。
    misaka19000
        15
    misaka19000  
       2020-03-28 10:40:41 +08:00
    charlie21
        16
    charlie21  
       2020-03-28 11:00:52 +08:00
    无论是对 ABI 编程 还是对大型机编程 还是对 HTML 编程,都是用 SDK 提供的选项拼拼凑凑而已。
    revalue
        17
    revalue  
       2020-03-28 11:02:58 +08:00
    好问题。但。不是谁能满足市场需求赚到钱才算牛逼么?
    问题是底层搞得再吊也有可能把自己饿死。
    WhatC
        18
    WhatC  
       2020-03-28 11:32:47 +08:00 via Android
    术业有专攻吧
    nevin47
        19
    nevin47  
       2020-03-28 11:33:12 +08:00 via Android   ❤️ 2
    我觉得这个问题是来源于应用层开发的程序员对底层程序员的误解😁😁我过去也有这样的误解,直到我自己从上层跳到底层,游历了一轮,才慢慢有了自己的感受

    就和 @charlie21 说的一样,就算是搞操作系统,那些各类调度的本质上还是依赖体系结构提供的一大堆接口的,硬要说厉害,那也是 kernel 配合各种架构一起厉害,而不单单是某一个领域很厉害

    不过底层开发的领域,相对上层应用而言,冰山之下的东西更多。我近一年在和几个给 kernel 贡献了不少代码的大牛一起工作,我最大的感受就是他们分析问题,从来不会想着怎么调用接口去完成什么事儿,而是想着为了最合理的完成一个事儿,软件怎么改?架构要提供什么能力?硬件要做什么配合?甚至要考虑是否需要推动某个架构下一个版本的指令是否需要演进。这个对于普通的软件开发者来说,门槛就高到天上去了。不过这些大牛很多也是软件出身的,但是经年的积累让他们有了这样的能力
    nevin47
        20
    nevin47  
       2020-03-28 11:35:48 +08:00
    @revalue #17 我觉得你这个说法有点假……

    底层搞得吊的,我就没见过能把自己饿死的。。。
    随便哪个给 Linux Kernel 上过库的,不说全球,国内的头部公司基本随便能去
    cabing
        21
    cabing  
       2020-03-28 11:43:49 +08:00
    @nevin47 涨见识。
    我一直以为所谓的底层,就是各种操作系统的 API 调用。然后就是各类硬件接口调用。。做一些各种权衡(妥协)的设计。
    killeder
        22
    killeder  
       2020-03-28 13:12:47 +08:00 via Android
    需要的基础知识多
    EPr2hh6LADQWqRVH
        23
    EPr2hh6LADQWqRVH  
       2020-03-28 13:24:05 +08:00
    牛个毛线啊,API 不一样而已,哪来那么多优越感。
    huiyifyj
        24
    huiyifyj  
       2020-03-28 13:29:56 +08:00
    @avastms #23
    你说的真的是底层开发?
    底层开发还得精通硬件和电子相关知识的。
    EPr2hh6LADQWqRVH
        25
    EPr2hh6LADQWqRVH  
       2020-03-28 13:31:39 +08:00
    @huiyifyj 你说的那是驱动开发吧,那是和硬件相关,还是 API 不一样,技能上没有太大区别
    nicebird
        26
    nicebird  
       2020-03-28 14:38:19 +08:00
    一般搞过底层的,比较有立体思维,能从最顶层的 api 一路想到硬件的实现,这样设计软件能够做到顶级的性能。不过需要这样要求的环境很少,岗位也少。
    yngzij
        27
    yngzij  
       2020-03-28 16:28:19 +08:00
    我感觉是底层给了一种神秘感,像 React,vue 不是前端的基本也听说过,但是不是搞内核的听说过 KGDB 这种东西吗?
    jackmod
        28
    jackmod  
       2020-03-28 18:26:31 +08:00 via Android
    这俩复杂度不一样啊。
    写个小型的驱动不难,同理,写一套类似 react vue 的框架也困难。
    好老师在免费的视频教程里。知识付费,只买书籍。
    xuanbg
        29
    xuanbg  
       2020-03-28 23:20:08 +08:00
    一个铁匠难道就比木匠厉害吗?写一个自己玩玩的操作系统其实一点都不难,反而写个 react 这样的框架不容易,要解决的问题真是太多了。
    yangzhezjgs
        30
    yangzhezjgs  
       2020-03-29 01:36:21 +08:00 via Android
    区别在于知识深度

    一般的后端程序员知识上只需要会框架,数据库,服务器配置就能基本满足工作需求,聪明人培训班四个月可以速成。

    而一个设计数据库的程序员知识上需要精通数据结构算法,操作系统和系统编程,分布式原理,编译原理,数据库中各种概念和实现方法,需要大量的时间去学习,一般只有少量名校计算机硕博才能做
    alexsunxl
        31
    alexsunxl  
       2020-03-29 11:45:07 +08:00
    说的是后端吧, 后端在系统很多领域可以做到很深,搞中间件,分布式,高并发,秒级监控,内存缺页 DMA 反向映射,流式计算。。。列举不完
    但如果只是一般的 curd 就没啥好说。往深处走肯定要大点的平台才方便,光靠自己很吃力。
    把东西做深,学深度知识,就是抬高自己的护城河,不管前端端都是如此。能想到这点,怎么说也是好事情,所以方向没错,加油。
    linvaux
        32
    linvaux  
       2020-03-29 20:24:15 +08:00
    曾经有个操作系统开发的机会在我面前,我没有珍惜,而是选择了测开,等到失去之后才后悔莫及
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3991 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 10:20 · PVG 18:20 · LAX 03:20 · JFK 06:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.