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

大佬们一般都是怎么学习新技术的?

  •  
  •   kikione · 2021-01-22 15:46:09 +08:00 · 7527 次点击
    这是一个创建于 1396 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我一般先找个博文了解一下,然后在 github 上找个源码看,学会使用。 然后找本书看,了解原理。 最后才去看文档。

    第 1 条附言  ·  2021-01-23 17:36:50 +08:00
    在 github 找相关项目学习。。。。 不是看源码,打错了
    45 条回复    2021-01-24 16:42:56 +08:00
    lincya
        1
    lincya  
       2021-01-22 15:51:14 +08:00   ❤️ 3
    bilibili
    AoEiuV020
        2
    AoEiuV020  
       2021-01-22 15:57:27 +08:00   ❤️ 12
    上班后就不怎么学习了,最近想学学 python, 突然发现四年前就学过了,还留了些代码在 github 上,而我完全不记得了,
    raaaaaar
        3
    raaaaaar  
       2021-01-22 15:57:58 +08:00 via Android   ❤️ 1
    要看什么技术,如果是语言,框架什么的,就看点基础,然后直接上项目,边做边学,如果比较深就要看书了
    darknoll
        4
    darknoll  
       2021-01-22 16:17:54 +08:00
    先用起来再说,光看源码有啥用,看了一会就忘了
    luozhiyun
        5
    luozhiyun  
       2021-01-22 16:57:29 +08:00   ❤️ 1
    一般的情况下会先去看文档,然后买书看,最后有不理解的就看源码。然后写下总结,避免忘记。具体的可以去我博客里看看: https://www.luozhiyun.com
    yangchuansheng33
        6
    yangchuansheng33  
       2021-01-22 17:01:45 +08:00
    直接看这里: https://fuckcloudnative.io
    freebird1994
        7
    freebird1994  
       2021-01-22 17:11:00 +08:00 via Android
    @yangchuansheng33 这个域名好评
    paoqi2048
        8
    paoqi2048  
       2021-01-22 17:44:28 +08:00
    进群听人吹💧,讨论新技术,然后就直接开始
    Austin2035
        9
    Austin2035  
       2021-01-22 18:58:40 +08:00   ❤️ 3
    一上来就看源码,学个屁。
    limuyan44
        10
    limuyan44  
       2021-01-22 19:35:50 +08:00
    有官网先看官网找个 quick start 整一波,找找 github 代码看看实践,没官网拉倒不学了。
    boris93
        11
    boris93  
       2021-01-22 19:45:39 +08:00 via Android
    实战
    之前想学 Go 语言,于是就一边看官方教程一边写,做了个小玩意出来
    其他工具也是要么自己用,要么公司项目要用,一边用一边学
    uselessVisitor
        12
    uselessVisitor  
       2021-01-22 20:06:21 +08:00   ❤️ 2
    那你挺牛的,先看源码再看文档
    z7356995
        13
    z7356995  
       2021-01-22 20:14:49 +08:00 via Android
    如果是和现有知识结构跨度不大,先 hello world 整起来,边看文档,示例边撸,如果跨度比较大,如如何用 ae 做一个电影特效,就去看视频教程
    salmon5
        14
    salmon5  
       2021-01-22 20:30:08 +08:00 via Android
    我一般 kernel.org 下代码看
    leafre
        15
    leafre  
       2021-01-22 20:37:50 +08:00
    老了,学不动了 ,等死呢
    killeder
        16
    killeder  
       2021-01-22 20:57:49 +08:00
    啥叫新技术,为啥要学习新技术呢
    Kirsk
        17
    Kirsk  
       2021-01-22 21:01:39 +08:00
    不知道怎样才算学 直接上直接用
    q447643445
        18
    q447643445  
       2021-01-23 00:45:48 +08:00   ❤️ 3
    快 28 了 学不动了, 等死
    easylee
        19
    easylee  
       2021-01-23 00:54:21 +08:00
    博主说的应该是 github 找个使用该技术的项目看源码,我是这么干的
    nightwitch
        20
    nightwitch  
       2021-01-23 01:29:03 +08:00   ❤️ 1
    先找 mit/stanford/cmu 等名校有没有相关课程的公开课,上佳为有视频 + 课件 + 作业;中等是有课件 + 作业;最次是只有课件或者只有作业。这种适合系统学习知识。

    至于某些框架怎么用之类的,一般直接翻文档和 github 上的 example 对着模仿就行,比较好的方法就是试试把多个 example 的内容想办法融合到一个工程里面,慢慢就熟悉了。
    stevefan1999
        21
    stevefan1999  
       2021-01-23 01:46:47 +08:00
    真正的大牛不會學新技術的,ta 們創造新技術,甚至科技
    Mirage09
        22
    Mirage09  
       2021-01-23 07:09:21 +08:00 via iPhone
    不学,偶尔在 knowledge sharing 上听到什么有意思的东西会去看看相关的 doc 。
    下班以后坚决不拿工作的事情折腾自己,这是底线。
    VeryEase
        23
    VeryEase  
       2021-01-23 08:55:25 +08:00
    我学习的新技术全部是被需求逼的,自己从来没主动学过
    VeryEase
        24
    VeryEase  
       2021-01-23 08:56:52 +08:00
    补充一下,“怎么” 学习新技术, 先看官方文档, 再看大神的技术分享, 最后自己实操, 然后各种折腾踩坑
    young1lin
        25
    young1lin  
       2021-01-23 09:41:54 +08:00
    实用类的,先用吧,比如 Docker,你不写个 Dockerfile,不用一些 docker ps 之类的命令。你了解一些概念,还是没用的。这些官方都有教你的,看官方文档就好了。

    要深入了解的,比如 HBase 、Hive 之类的,都已经很成熟的东西了,其实可以直接看书。你会发现很多技术,都是相通的。例如一般的数据库都有 WAL ( Write-ahead-logging,在 MySQL 里面是 redo 、undo )的概念,还有 LRU 缓存到内存的东西,还有选主的 Raft 算法等等。这些都是基本差不多的东西,直接快速阅读就行了。

    我还是觉得看书比看视频好一些,因为看视频是别人嚼碎了,喂到你嘴里的。看书,最起码,你是要主动去思考一些东西。多画图总结,这样记得牢,有空的话,教给不会的人(费曼学习法)。

    没有人他妈用都没用过,上来直接源码的,这不有毒吗?你要知道这个东西是干什么的?解决了什么问题?我该怎么用?然后熟练之后,再去看看书,这样学得快。如果你已经在这些域已经是大牛了(例如你在数据库方面已经是掌握得不错的了,然后看其他数据存储方面的,很快),你可以直接看源码。
    nismison2
        26
    nismison2  
       2021-01-23 10:04:09 +08:00 via iPhone
    bilibili+1,挑个讲课方式比较好的,把课 2 倍速刷完,掌握基本概念,稍微记住一些要点,像什么声明变量的课程啥的可以选择性跳过,刷完直接开始写项目,自己随便想个点子就开始写,碰到不会的可以回去翻翻视频,也可以直接查,差不多就是这么个流程,写多了自然就会了,从来不看书
    xiaomu8
        27
    xiaomu8  
       2021-01-23 10:50:33 +08:00 via iPad   ❤️ 1
    最后发现还是看书最靠谱
    kele1997
        28
    kele1997  
       2021-01-23 11:30:31 +08:00   ❤️ 8
    可以看看陈浩(左耳朵耗子) 的博客说过类似的内容

    我参考后总结了一下
    1. 首先要搞清楚为什么会有这个技术,要不然平白无故多个技术,有毛用?
    2. 其次要明白这个技术,解决了那些问题?怎样解决的?
    3. 然后了解下这个技术在解决了一部分问题的同时,又带来了哪些问题呢?
    4. 最后这项技术底层是用了什么样的设计思想,或者 linux 相关的系统功能呢?
    5. 看文档,了解设计和架构之后,才去看源码。

    PS: 我说的可能有问题,希望各位补充改正
    就 docker 举例

    1. 首先 docker 不是虚拟化,而是容器化,主要解决的问题应该是资源隔离
    2. docker 可以减少运维问题,将运行环境封装到 docker 容器内部,同样地我们也可以对某个容器做精细的资源控制
    3. docker 的本机网络是通过网桥,性能不错。但跨节点的化基本就要通过转发来实现。转发肯定会带来损耗。而且 docker 容器内部最好不要写,要挂卷写。
    4. docker 底层隔离使用了 linux namespace , cgroupfs, 网桥,unionfs 等技术。k8s 跨节点网络使用的 netfilter, vxlan 等技术
    5. 看文档,看看别人的使用实践

    我觉得学习某个技术的底层实现最好落到 os 层面比较好,然后再看这种技术本身的时候,我们可以从底层来思考。比如 docker 本机上的网络通信是通过网桥的,因此本机容器的网络包会发送到网络栈的内核二层交换机上,然后在发送到用户空间。而跨机器的访问,是通过 netfilter 等规则实现的,这个损耗就要大一些。

    很多技术都是基于 os 的,很多技术都是组合使用了多种 os 的功能
    deargodfrey
        29
    deargodfrey  
       2021-01-23 11:55:09 +08:00
    真的不难,看 doc 自己调用演练一下很快就能上手的,尤其语言其实各自之间都是有共通之处的,包括很多人说很难的 rust 我也觉得还好
    justin2018
        30
    justin2018  
       2021-01-23 12:19:22 +08:00
    教英语的同学表示 英语语法这么多年还是那样 每天好枯燥 太没成就感

    我是多么羡慕他~
    fiveelementgid
        31
    fiveelementgid  
       2021-01-23 13:17:12 +08:00 via Android
    不是大佬,刚看到帖子没有回答
    推荐纸质书籍,不过可能知识比较老旧
    没纸质书籍就直接去啃官方的 Documents/Guide/fundamental
    Coding 的时候就对着 Reference 写就行了
    fox0001
        32
    fox0001  
       2021-01-23 14:01:06 +08:00
    @darknoll #4 对,先拿来干点什么。用起来就会去理解、深入~
    lix7
        33
    lix7  
       2021-01-23 14:46:00 +08:00
    先看源码再看文档,牛逼了
    skypyb
        34
    skypyb  
       2021-01-23 15:03:00 +08:00
    球球你们别学了, 我真的赶不上了 😭
    catch
        35
    catch  
       2021-01-23 17:16:14 +08:00 via iPhone
    你们学吧,我主动退出内卷
    CrazyRundong
        36
    CrazyRundong  
       2021-01-23 17:18:16 +08:00 via iPhone
    Google/Wikipedia 搜关键词,看看这项技术是不是有用 /感兴趣 /好玩。然后看官方文档的 get started 或者靠谱的系统性的书籍的 introduction 部分,来对技术和其中的主要概念有个大致的整体了解。之后就可以用到自己的项目中,边实践边探索细节,顺便看看有没有什么可以完善 /回馈社区的部分。

    说实话,学一个 well defined 新技术比摸黑 research 轻松太多了,楼上一堆叫着学不动的活该到时被优化。
    onec
        37
    onec  
       2021-01-23 17:23:42 +08:00
    看官网的快速开始,跑个简单 demo,一步步照着官网例子加功能
    yangchuansheng33
        38
    yangchuansheng33  
       2021-01-23 17:51:01 +08:00
    @freebird1994 嘻嘻😬
    ruyuejun
        39
    ruyuejun  
       2021-01-23 18:23:33 +08:00   ❤️ 1
    边学边写文档,怕忘了,写了三年,居然。。。。。十万多字: https://github.com/overnote
    gowk
        40
    gowk  
       2021-01-23 18:27:32 +08:00 via Android
    @ruyuejun 牛逼
    falcon05
        41
    falcon05  
       2021-01-23 18:40:54 +08:00 via iPhone   ❤️ 1
    四个字:用以致学,某 youtuber 说真正掌握一门语言需要用这门语言至少写五个不同类型的项目。
    felixcode
        42
    felixcode  
       2021-01-23 18:54:20 +08:00 via Android
    @AoEiuV020
    python 升 3.x 后,2.x 的记忆自动删除
    laminux29
        43
    laminux29  
       2021-01-23 20:37:53 +08:00
    王者段位的做法是:

    1.预判:先看特性,猜测它的理论依据与实现思路,然后花点时间想想,如果自己来做,应该如何设计。

    2.验证:去找 Demo,验证一下猜测对不对,查漏补缺。

    3.测试:看文档,做小规模测试。
    xxoolltt
        44
    xxoolltt  
       2021-01-23 20:39:19 +08:00 via iPhone
    大佬一般都是创造新技术
    potatowish
        45
    potatowish  
       2021-01-24 16:42:56 +08:00 via iPhone
    先看源码相当于劝退
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4160 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:30 · PVG 13:30 · LAX 21:30 · JFK 00:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.