Skip to content
On this page

👀 本期看点:

  • 如何学习一门新技术
  • 6个学习习惯和方法
  • 链表题目
  • 对象方法添加异常
  • Prefetch、Preload

📃 文章

👉 如何学习一门技术

作者以其自身学习 WebRTC 这个新技术为例,讲述了一些学习的方法。

  1. 是否要学习这门技术?
    1. 从知识体系出发:学习顶层的技术需要掌握一定的底层技术,如果这个底层技术被很多高层技术依赖,那么就值得学习
    2. 从应用前景出发:有市场需求,能赚钱
  2. 怎么学?
    1. 善用搜索,找到对的资料和对的人。学习本身不是一件复杂的事情,因为它不是做研究(探索未知的东西),只是站在巨人的肩膀上把已经被解决的问题学习一遍。这里的难点在于资料千千万,很容易找到错误的资料,让学习变得很复杂
    2. 主动搜索:多用Google英文搜索,对比选择下要看的资料;多用谷歌图片搜索,图的层次上更容易了解整体架构;多去逛GitHub、YouTube、Twitter等获取开源项目、教学视频、大佬的演讲与动态等;
    3. 技术标准:不必看细节,要更高层次的理解技术特性
    4. 了解技术历史
    5. 做好笔记:搜索而来的资料和自己的总结如果不做整理与记录的话,时间久了就全忘了,最好整理到 Logseq 等这种多个笔记之间有连接关系的软件中,这种链接符合大脑的思考,更方便记忆
    6. 制定学习计划:规划时间消化学习资料
    7. 讲给别人听(写文章也算是一种),这样能使你的知识梳理更全面,还方便你后续整合成文章
    8. 可以在讨论区、社区、issue等寻求帮助
    9. 心里建设:勇敢承认自己不懂,不懂就去学与问,可怕的是不懂却隐藏,会使问题变得更复杂
  3. 怎么用?
    1. 学以致用是学习的最终目的,只有真正去用这个技术,才能真正掌握它,否则花费时间去学习,不用的话很快就忘了
    2. 从一些现有的开源项目中改造,做一个自己的应用(或者从零开始实现应用,但这往往都比较难)

(文章质量很高,作者应该很厉害,可以关注)

👉 新拾取的 6 个习惯和方法

  1. 教给别人是最好的学习方式:可以清空大脑(把资料从大脑转移到文章中),更多的产出文章(好看的简历)
  2. 看的文章多了,自然也有自己的思考,「不要在输入不足的时候强行领悟」(我自己有时想写东西,但有写不出来,可能就是输入不够)
  3. 多解除新技术,多折腾,并愿意为此多花时间,如:别 React 18 出来了,还在用 React 16
  4. 早起工作,要专注(别看无用的消息),先做困难的事情
  5. 思考某些工作是否有十倍效率的解法
  6. 多做本质解,不做或少做现象解(看透本质能举一反三,不要去花很多时间学习三)

👉 双指针技巧秒杀七道链表题目

通俗讲解几道链表力扣题目,在学习完链表理论知识后,可到这里实践一下,刷题顺序推荐:

  1. 合并两个有序链表
  2. 链表的中间节点
  3. 删除链表的倒数第n个节点
  4. 环形链表 和 环形链表2
  5. 相交链表

(你可能觉得有些题目很简单,比如「合并两个有序链表」,这不就是把两个链表都遍历一遍,之后存到数组里,再对数组排个序,之后通过排序的数组在生成新的链表就完事了嘛,为啥要像本文一样搞的这么复杂?因为你的方法时间复杂度、空间复杂度更高,排序需要O(nlogn)时间复杂度,存数组又需要O(m+n)空间复杂度,m和n分别代表两个链表的长度,但如果用本文解法的话,就会高明很多,时间复杂度就只是遍历一遍,是O(m+n),空间复杂度就是两个指针的空间,即O(1),所以面试官想看到的是这样的回答,而且一般真实场景下,你已经使用了链表数据结构,是没有必要再用数组数据结构存储一遍重复数据的)

👉 如何优雅地给对象的所有方法添加异常处理

在每个方法中都使用 try catch 来捕获异常未免有些重复与麻烦,本文通过代理模式的思考方式使用 proxy api 给函数统一添加异常处理,还考虑了异步函数的情况(我也写过很多重复的 try catch,为啥就没想到统一处理下呢😥)

👉 使用 Preload&Prefetch 优化前端页面的资源加载

对于前端页面来说,静态资源的加载对页面性能起着至关重要的作用。本文将介绍浏览器提供的两个资源指令 preload/prefetch,它们能够辅助浏览器优化资源加载的顺序和时机,提升页面性能。

它们都写在link标签上,head标签里,prefetch可以用低优先级预先加载静态资源,列表页能跳转到详情页,详情页有几个固定图片,那么你可以在列表页写上图片的prefetch,那么浏览器在空闲时就能加载这些图片,用户如果跳到了详情页后就能直接使用prefetch的缓存,直接展示图片,而不用再去等待请求时间。

preload,有as属性(有多种类型可选),通过标签显式声明一个高优先级资源,强制浏览器提前请求资源,同时不阻塞文档正常onload。

(这些叫做 Resource Hints,还有preconnect 和 dns-prefetch

👉 关于 Vue 不能 watch 数组 和 对象变化的解决方案

展示了vue什么时候不能监听数组与对象的变化,以及解决方案

(写的简洁清晰,很不错的博客)

🤔 想法

  1. 「我们应该做一个积极行动的悲观主义者,对未来低期望,但只要是值得的,就坚定去做。」来自:科技爱好者周刊(第 200 期):低期望,多尝试
    1. 我在写文章的时候,总高期望的以为自己能获得多少阅读量,多少点赞,如果没有达到预期的话,就会有些失望。其实不应该这样,这是有价值并且值得的事情,坚持去做就可以了,并且降低期望。
  2. 要和理想中的自己比较,不要和别人比较
  3. 微信读书 记笔记的方式很好,划线原文加上感想,最好还能总结出文章来
  4. 学习东西要记笔记,最好把内容记忆背诵下来,熟练使用旧知识,才能思考出新知识。
  5. 一个高效学习方法:教给别人(和别人交流、写文章、做分享)
  6. 学习更适应时机的内容:比如你最近的工作内容是做性能优化,但你最近在提升自己的操作系统相关知识,那你就可以先暂停这部分的提示,转向性能优化方面的学习,这样也能在团队内做出一些成绩,并且能应用在复杂的实际项目中

2022-03-19 ~ 2022-07-03(第 9 期)