0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何让你更快速的学习某个领域的新技术

茶棚小二 来源:茶棚小二 作者:茶棚小二 2022-03-31 15:56 次阅读

作为一个 终身学习 的实践者,我经常有学习一些新技术的需求。如何学习这些新技术不同人有不同的做法,早前我也写过一篇 如何快速学习一项新技能? 的文章分享我学习的理论框架,但这篇文章我会以我学习 WebRTC 这个技术为例分享我在学习新技术时用的一些方法。

如何学习某个知识,在我看来,主要矛盾在于解决这三个问题。

要学否

在学习一门新技术前需要解决的第一个问题是要不要投资时间去学这门技术。就像买书最大的成本并不是买书的价格,而是看书的时间。花费大量的时间去看一本没有价值的书,无异于浪费生命。正是方向搞错了,越努力越尴尬。

怎么确定一门技术的价值,可以从以下两个方面来考虑:

从知识体系出发:某门技术经常不是孤立存在的,而是一个积木般搭建的大厦的一部分。要学习顶部的技术,就需要掌握一定的底部技术。如果一个技术很基础很底层,被很多高层的技术所依赖,那学习这门技术就很有价值。

从应用前景出发:如果一门技术很有市场“钱景”,或者有潜在的市场需求,那学习这门技术就很有价值。毕竟我们学习目的很大的一部分在于赚钱解决自己的生活问题。

不过这里的难点在于从我们已知的信息来分析,很难判断某门技术的市场前景。如果分析判断错误,很可能会导致我们学习这门技术的时间被浪费。那最佳的选择的就是尽可能让自己所学的技术都满足这两点,哪怕最后没有市场前景,但如能成为我们知识体系的基础,也值得投入时间去学习。

基于这两方面的考虑,我开始学习了分布式系统的一些底层知识:

之后通过搜索间接找到了基于 WebRTC 技术的语音聊天网站 speakrandom,在分析这个网站技术栈的时候找到了 pion/webrtc 这个框架,最终决定从这个框架入手开始学习 WebRTC。

怎么学

在制定了学习目标之后,剩下的问题是怎么怎么学?学习方法千万条,重要的是找到适合自己的学习方法。

我的方法是善用搜索,找到对的资料和对的人。学习本身不应是一件复杂的事情,因为它不是做研究,不是探索未知的东西,只是站在巨人的肩膀上把已经被解决的问题学习一遍。

但这里的难点在于资料千万份,一不小心就找到错误的资料,让本来简单的学习变得复杂,这就像天龙八部鸠摩智学了段誉给的错误的六脉神剑剑诀,很容易学的走火入魔。

主动搜索

主动获取资料 方式的要点在于从错误少的信息库筛选、交叉对比选择要看的资料。由于很多技术资料都是用英文写的,用 Google 英文搜索更容易获取高质量的资料。另外使用 Google 图片关键词搜索可以快速获得架构方面的资料,方便从高层次理解这个技术。

一般我会从 Google、YouTube 和 GitHub 上搜索某个技术相关的资料、视频教程和开源库。以搜索切入,找到合适的开源项目或者技术标准,然后制定学习计划。很容易通过 webrtc 关键词在这些平台上搜索得到这些资料和教程

GitHub

  • https://github.com/pion/webrtc

YouTube

  • WebRTC Crash Course

Google

  • Build the backend services needed for a WebRTC app: STUN, TURN, and signaling - HTML5 Rocks

从 pion/webrtc 这个库上了解到作者是 @Sean DuBois,GitHub 关注一波然后去 YouTube 搜索下他的演讲,又收获了一波高质量的教程:

技术标准

另外一个高质量的资料是协议标准,比如 IETF RFC 文档。搜索一番后找到 WebRTC 相关的标准:

  • https://www.w3.org/TR/webrtc/

从这个 W3C 制定的标准里又可以看到很多 IETF RFC 的资料。了解这些技术标准有助于我从高层次理解这个技术的一些特性。当然这些标准的细节我暂时不会去看,等到需要了解细节的时候再去看。

另外还可以从标准中梳理出这个技术的一些历史背景知识。

技术历史

复杂的技术不是横空出世的,而是从简单的技术逐渐根据需求而演变来的。很多时候一个技术的复杂是因为其有很多历史性而导致的,比如 Java 的范型之所以使用复杂并具备很多限制性是因为其为兼容老的库而妥协设计出的产物。了解这个技术的历史背景有助于降低理解这个技术的复杂度。

做好笔记

搜索而来的资料如果不做整理和记录的话,时间久了就全忘了。我把这些资料整理到了 Logseq 这个双链笔记中。

从下面这个笔记拓扑图中可以看出我记录的分布式知识(Distributed System)和 WebRTC 间的关联关系。众所周知,学习在大脑的体现就是神经元突触之间建立新的连接,笔记间的知识通过这种方式也能帮助我们快速建立知识间的联系。

学习计划

记录完笔记后,我要做的就是规划时间把整理得来的资料学习消化。在这个环节可用 时间管理 的方法制定该项技术的学习计划。

学习技巧

学习技巧千万条,但有一条是我觉得很重要的,那就是把你所学的说给别人听,从别人的反馈中了解自己对该知识掌握薄弱的点。很多时候大脑在学习的过程中会有很多模糊不清的点,如果不说出来的话,这些不清楚的点会被忽略掉,但如果要让别人听得懂,那需要我们懂的更多才行。

写文章其实也是说给别人听,只不过比单纯的说要更为系统。所以我一般在学习某个技术的时候会去写文章分享。一方面让自己的知识梳理的更清晰,另外一方面可以与读者交流,掌握更多的知识,这也可以解决掉那个经典的我不知道我不知道的知识,当我写出来时,会有看到的人帮我发现我不知道的知识。

当然也可以在社交网站上分享一些学习中梳理的知识点,之后方便整合成文章:

寻求帮助

找对的人解决学习中的困惑无异于能加速整个学习过程。这方面很多开源项目都有自己的讨论区,比如我在理解 WebRTC SFU 的过程中就有很多困惑甚至错误的理解,在社区中与作者沟通后才得到了正确的答案:

当然我们还可以在论坛、GitHub Issue、邮件组或交流群等地方中寻求帮助。

心理建设

学习里的一大难点可能是不好意思说出自己不懂的点,尤其是工作多年后,要承认自己不懂是件困难的事情。但如果你以终身学习为目标,那么这方面就没什么障碍。不懂就去学,不懂就去问。无知并不可怕,年龄大不懂也不可怕,可怕的是不懂却隐藏这一点。

怎么用

在掌握了技术的理论后,可以通过技术的实践来提高自己的技术水平,比如做一个开源项目。对技术的应用有两种方式:

从零开始,一步步实现自己的系统。这种方式的问题在于,刚开始我们对技术的应用不是很熟悉,完全自己做可能无法应用一些最佳实践,摸着石头过河的成本比较高。

从现有的应用中改造。开源项目有很多好的应用,可以直接用来学习并改造。一方面可以加速应用的开发,另外还可以学习别人成熟的经验。

通过一番搜索,我找到了两个不错的学习项目:

  • webtrc-voice-chat
  • kraken

这两个都是基于 pion/webrtc 库开发的语音聊天网站。基于这两个开源项目,我可以逐渐学习并开发自己的开源项目。

在学习完这两个开源项目(读完源码)后,我制定了基于 WebRTC 的应用开发目标:做一个隐私与本地优先的语音聊天的网站 Free for Chat。

这个目标有点大,我会把这个业余项目作为技术试验田,把需要学习应用的技术都应用到这里。

学以致用,是学习的最终目的。只有真正去用这个技术,才能真正掌握它。否则花费时间去学习,不用的话很快就忘了。

最后,能看到这里的话,希望这篇文章里提到的一些方法能让你更快速的学习某个领域的技术。

审核编辑:符乾江

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 技术
    +关注

    关注

    0

    文章

    419

    浏览量

    58328
  • 开源
    +关注

    关注

    3

    文章

    2985

    浏览量

    41719
  • 源码
    +关注

    关注

    8

    文章

    573

    浏览量

    28589
收藏 人收藏

    评论

    相关推荐

    喜欢用ERP新技术的人能发挥管理创造性思维

    喜欢用ERP新技术的人能发挥管理创造性思维我们知道“兴趣是最好的老师”,这是一句比较经典的话,那么我想表达的是如果某人对自己所在的领域感兴趣,只要有长期坚持下去的信念,一般会激发他的创造性思维,这是
    发表于 08-09 10:11

    教是最好的学,相信吗?

    这种方式。但遗憾的是,并不是每家公司都愿意将费用花在外部培训师上,特别是在无法准确计算出投资回报率的情况下更是如此。2. 有经验的员工成为讲师如果有员工在某个领域具备很强的背景,那么
    发表于 12-17 16:36

    如何高效学习一门新技术

    积极开放的心态最重要 学习新技术,就如探索一片新的领域,一般在心态上来说,都会有两种典型的心态,一种是恐慌和抗拒的,一种是积极和开放的,不同的心态会造成不同的结果。比如对我自己来说,对于编程技术
    发表于 06-16 15:51

    快速学习C语言的途径,少走弯路

    `快速学习C语言的途径,少走弯路 标准C语言能干什么? 坦白讲,在今天软件已经发展了半个多世纪,单纯的C语言什么都干不了。标准C语言库只提供了一些通用的逻辑运算方法以及字符串处理,
    发表于 10-19 10:51

    本章的目的是了解和运行 TensorFlow!

    ]为了进一步激发学习欲望, 我们想先看一下 TensorFlow 是如何解决一个经典的机器 学习问题的. 在神经网络
    发表于 03-30 19:58

    linux标准学习教程,学习linux有方法

    本帖最后由 一只耳朵怪 于 2018-5-24 17:38 编辑 新手看过来,华清远见linux标准学习教程,比较具体,快速学习l
    发表于 05-24 15:06

    【免费名额30个】手把手教你快速学习和应用人工智能技术

    和应用人工智能技术,分享关于深度学习、自动驾驶等新技术进展及产品演示。参加此次活动,您将了解 MathWorks 产品的最新技术进展,有机会与相关
    发表于 09-12 11:21

    新产品·新技术·新领域 LabVIEW能为我们做什么?

    ,在运动控制领域而言,高速度、高精度无疑将会应用在高端设备和精密仪器制造之上。在大型的自动化设备中,网络化技术将成为主轴,将数据通过网络进行传输和控制,简化控制布线,延长传输距离,增加可控制点数,更易
    发表于 07-29 16:36

    RFID技术在航空领域应用有什么优势?

    作为快速、实时、准确采集与处理信息的新技术,射频识别技术( Radio Frequency Identification,本文以下简称为RFID)通过射频信号来自动识别静态或目标对象,获取数据,操作
    发表于 08-05 07:15

    寻找电源领域的最新技术

    近日,德州仪器Pradeep Shenoy发表文章《寻找电源领域的最新技术?来APEC一探究竟》,以下是全部内容: logo
    发表于 08-05 06:03

    如何寻找电源领域的最新技术

    寻找电源领域的最新技术
    发表于 12-03 06:25

    音频创新技术主要应用在哪些领域

    音频创新技术有哪些优势?音频创新技术主要应用在哪些领域
    发表于 06-16 08:33

    如何更快学习单片机

    学习交流加(可免费帮忙下载CSDN资源):学习交流资源分享:如何更快学习单片机?
    发表于 08-05 07:30

    IP领域一项新技术正在崛起

    IP领域一项新技术正在崛起。SRv6作为IP基础网络领域的重大创新技术,赢得了产业界力捧,有望成为新一代承载网基础协议。
    的头像 发表于 11-03 09:25 1846次阅读

    让新手如何更快速学习Linux技术

    如果你此时还在纠结于如何快速地入门Linux系统,不妨先再思考下自己为什么想要学习Linux技术,是对它感兴趣?还是想要获得高薪?
    的头像 发表于 08-28 15:57 231次阅读
    让新手如何<b class='flag-5'>更快速</b>地<b class='flag-5'>学习</b>Linux<b class='flag-5'>技术</b>